diff --git a/0.json b/0.json deleted file mode 100644 index 20420fb..0000000 --- a/0.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "name": "周日课程01", - "index": 1, - "timeStart": "8:00:00", - "timeEnd": "8:45:00" - }, - { - "name": "周日课程02", - "index": 2, - "timeStart": "8:55:00", - "timeEnd": "9:40:00" - }, - { - "name": "周日课程03", - "index": 3, - "timeStart": "10:20:00", - "timeEnd": "11:05:00" - }, - { - "name": "周日课程04", - "index": 4, - "timeStart": "11:15:00", - "timeEnd": "12:00:00" - }, - { - "name": "周日课程05", - "index": 5, - "timeStart": "13:30:00", - "timeEnd": "14:15:00" - }, - { - "name": "周日课程06", - "index": 6, - "timeStart": "14:25:00", - "timeEnd": "15:10:00" - }, - { - "name": "周日课程07", - "index": 7, - "timeStart": "15:30:00", - "timeEnd": "16:15:00" - }, - { - "name": "周日课程08", - "index": 8, - "timeStart": "16:30:00", - "timeEnd": "17:30:00" - } -] \ No newline at end of file diff --git a/1.json b/1.json deleted file mode 100644 index 75042c8..0000000 --- a/1.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "name": "周一课程1", - "index": 1, - "timeStart": "8:00:00", - "timeEnd": "8:45:00" - }, - { - "name": "周一课程2", - "index": 2, - "timeStart": "8:55:00", - "timeEnd": "9:40:00" - }, - { - "name": "周一课程3", - "index": 3, - "timeStart": "10:30:00", - "timeEnd": "11:15:00" - }, - { - "name": "周一课程4", - "index": 4, - "timeStart": "11:25:00", - "timeEnd": "12:10:00" - }, - { - "name": "周一课程5", - "index": 5, - "timeStart": "13:30:00", - "timeEnd": "14:15:00" - }, - { - "name": "周一课程6", - "index": 6, - "timeStart": "14:25:00", - "timeEnd": "15:10:00" - }, - { - "name": "周一课程7", - "index": 7, - "timeStart": "15:30:00", - "timeEnd": "16:15:00" - }, - { - "name": "周一课程8", - "index": 8, - "timeStart": "16:30:00", - "timeEnd": "17:30:00" - } -] \ No newline at end of file diff --git a/2.json b/2.json deleted file mode 100644 index 6c1a971..0000000 --- a/2.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "name": "周二课程1", - "index": 1, - "timeStart": "8:00:00", - "timeEnd": "8:45:00" - }, - { - "name": "周二课程2", - "index": 2, - "timeStart": "8:55:00", - "timeEnd": "9:40:00" - }, - { - "name": "周二课程3", - "index": 3, - "timeStart": "10:30:00", - "timeEnd": "11:15:00" - }, - { - "name": "周二课程4", - "index": 4, - "timeStart": "11:25:00", - "timeEnd": "12:10:00" - }, - { - "name": "周二课程5", - "index": 5, - "timeStart": "13:30:00", - "timeEnd": "14:15:00" - }, - { - "name": "周二课程6", - "index": 6, - "timeStart": "14:25:00", - "timeEnd": "15:10:00" - }, - { - "name": "周二课程7", - "index": 7, - "timeStart": "15:30:00", - "timeEnd": "16:15:00" - }, - { - "name": "周二课程8", - "index": 8, - "timeStart": "16:30:00", - "timeEnd": "17:30:00" - } -] \ No newline at end of file diff --git a/3.json b/3.json deleted file mode 100644 index 7628370..0000000 --- a/3.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "name": "周三课程1", - "index": 1, - "timeStart": "8:00:00", - "timeEnd": "8:45:00" - }, - { - "name": "周三课程2", - "index": 2, - "timeStart": "8:55:00", - "timeEnd": "9:40:00" - }, - { - "name": "周三课程3", - "index": 3, - "timeStart": "10:30:00", - "timeEnd": "11:15:00" - }, - { - "name": "周三课程4", - "index": 4, - "timeStart": "11:25:00", - "timeEnd": "12:10:00" - }, - { - "name": "周三课程5", - "index": 5, - "timeStart": "13:30:00", - "timeEnd": "14:15:00" - }, - { - "name": "周三课程6", - "index": 6, - "timeStart": "14:25:00", - "timeEnd": "15:10:00" - }, - { - "name": "周三课程7", - "index": 7, - "timeStart": "15:30:00", - "timeEnd": "16:15:00" - }, - { - "name": "周三课程8", - "index": 8, - "timeStart": "16:30:00", - "timeEnd": "17:30:00" - } -] \ No newline at end of file diff --git a/4.json b/4.json deleted file mode 100644 index 6dfe43c..0000000 --- a/4.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "name": "周四课程1", - "index": 1, - "timeStart": "8:00:00", - "timeEnd": "8:45:00" - }, - { - "name": "周四课程2", - "index": 2, - "timeStart": "8:55:00", - "timeEnd": "9:40:00" - }, - { - "name": "周四课程3", - "index": 3, - "timeStart": "10:30:00", - "timeEnd": "11:15:00" - }, - { - "name": "周四课程4", - "index": 4, - "timeStart": "11:25:00", - "timeEnd": "12:10:00" - }, - { - "name": "周四课程5", - "index": 5, - "timeStart": "13:30:00", - "timeEnd": "14:15:00" - }, - { - "name": "周四课程6", - "index": 6, - "timeStart": "14:25:00", - "timeEnd": "15:10:00" - }, - { - "name": "周四课程7", - "index": 7, - "timeStart": "15:30:00", - "timeEnd": "16:15:00" - }, - { - "name": "周四课程8", - "index": 8, - "timeStart": "16:30:00", - "timeEnd": "17:30:00" - } -] \ No newline at end of file diff --git a/5.json b/5.json deleted file mode 100644 index b2be9ad..0000000 --- a/5.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "name": "周五课程1", - "index": 1, - "timeStart": "8:00:00", - "timeEnd": "8:45:00" - }, - { - "name": "周五课程2", - "index": 2, - "timeStart": "8:55:00", - "timeEnd": "9:40:00" - }, - { - "name": "周五课程3", - "index": 3, - "timeStart": "10:30:00", - "timeEnd": "11:15:00" - }, - { - "name": "周五课程4", - "index": 4, - "timeStart": "11:25:00", - "timeEnd": "12:10:00" - }, - { - "name": "周五课程5", - "index": 5, - "timeStart": "13:30:00", - "timeEnd": "14:15:00" - }, - { - "name": "周五课程6", - "index": 6, - "timeStart": "14:25:00", - "timeEnd": "15:10:00" - }, - { - "name": "周五课程7", - "index": 7, - "timeStart": "15:30:00", - "timeEnd": "16:15:00" - }, - { - "name": "周五课程8", - "index": 8, - "timeStart": "16:30:00", - "timeEnd": "17:30:00" - } -] \ No newline at end of file diff --git a/6.json b/6.json deleted file mode 100644 index 0688d21..0000000 --- a/6.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "name": "周六课程01", - "index": 1, - "timeStart": "8:00:00", - "timeEnd": "8:45:00" - }, - { - "name": "周六课程02", - "index": 2, - "timeStart": "8:55:00", - "timeEnd": "9:40:00" - }, - { - "name": "周六课程03", - "index": 3, - "timeStart": "10:20:00", - "timeEnd": "11:05:00" - }, - { - "name": "周六课程04", - "index": 4, - "timeStart": "11:15:00", - "timeEnd": "12:00:00" - }, - { - "name": "周六课程05", - "index": 5, - "timeStart": "13:30:00", - "timeEnd": "14:15:00" - }, - { - "name": "周六课程06", - "index": 6, - "timeStart": "14:25:00", - "timeEnd": "15:10:00" - }, - { - "name": "周六课程07", - "index": 7, - "timeStart": "15:30:00", - "timeEnd": "16:15:00" - }, - { - "name": "周六课程08", - "index": 8, - "timeStart": "16:30:00", - "timeEnd": "17:30:00" - } -] \ No newline at end of file diff --git a/about.png b/about.png deleted file mode 100644 index 52bf148..0000000 Binary files a/about.png and /dev/null differ diff --git a/config/windowConfig.json b/config/windowConfig.json new file mode 100644 index 0000000..06836d6 --- /dev/null +++ b/config/windowConfig.json @@ -0,0 +1,27716 @@ +{ + "clockFontsize":23, + "countDownDate":7, + "countDownInfo":" 距离 2024 高考 ", + "countDownMonth":6, + "countDownYear":2024, + "enableCountDown":true, + "enableNotice":true, + "enablePoemSuggestion":true, + "height":65, + "lessonFontSize":23, + "nextLessonColor":{ + "RGB":-42929, + "alpha":255, + "blue":79, + "colorSpace":{ + "CS_sRGB":true, + "numComponents":3, + "profile":{ + "PCSType":0, + "colorSpaceType":5, + "data":[ + 0, + 0, + 26, + -36, + 108, + 99, + 109, + 115, + 2, + 48, + 0, + 0, + 109, + 110, + 116, + 114, + 82, + 71, + 66, + 32, + 88, + 89, + 90, + 32, + 7, + -42, + 0, + 12, + 0, + 28, + 0, + 18, + 0, + 7, + 0, + 22, + 97, + 99, + 115, + 112, + 77, + 83, + 70, + 84, + 0, + 0, + 0, + 0, + 108, + 99, + 109, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10, + -42, + 0, + 1, + 0, + 0, + 0, + 0, + -45, + 45, + 108, + 99, + 109, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11, + 100, + 109, + 110, + 100, + 0, + 0, + 1, + 8, + 0, + 0, + 0, + 106, + 100, + 101, + 115, + 99, + 0, + 0, + 1, + 116, + 0, + 0, + 0, + 104, + 100, + 109, + 100, + 100, + 0, + 0, + 1, + -36, + 0, + 0, + 0, + 104, + 119, + 116, + 112, + 116, + 0, + 0, + 2, + 68, + 0, + 0, + 0, + 20, + 114, + 88, + 89, + 90, + 0, + 0, + 2, + 88, + 0, + 0, + 0, + 20, + 98, + 88, + 89, + 90, + 0, + 0, + 2, + 108, + 0, + 0, + 0, + 20, + 103, + 88, + 89, + 90, + 0, + 0, + 2, + -128, + 0, + 0, + 0, + 20, + 114, + 84, + 82, + 67, + 0, + 0, + 2, + -108, + 0, + 0, + 8, + 12, + 103, + 84, + 82, + 67, + 0, + 0, + 10, + -96, + 0, + 0, + 8, + 12, + 98, + 84, + 82, + 67, + 0, + 0, + 18, + -84, + 0, + 0, + 8, + 12, + 99, + 104, + 114, + 109, + 0, + 0, + 26, + -72, + 0, + 0, + 0, + 36, + 100, + 101, + 115, + 99, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16, + 40, + 108, + 99, + 109, + 115, + 32, + 105, + 110, + 116, + 101, + 114, + 110, + 97, + 108, + 41, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 100, + 101, + 115, + 99, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14, + 115, + 82, + 71, + 66, + 32, + 98, + 117, + 105, + 108, + 116, + 45, + 105, + 110, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 100, + 101, + 115, + 99, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14, + 115, + 82, + 71, + 66, + 32, + 98, + 117, + 105, + 108, + 116, + 45, + 105, + 110, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + -13, + 61, + 0, + 1, + 0, + 0, + 0, + 1, + 22, + -104, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 111, + -108, + 0, + 0, + 56, + -18, + 0, + 0, + 3, + -112, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 36, + -99, + 0, + 0, + 15, + -125, + 0, + 0, + -74, + -66, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 98, + -91, + 0, + 0, + -73, + -112, + 0, + 0, + 24, + -34, + 99, + 117, + 114, + 118, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 5, + 0, + 10, + 0, + 15, + 0, + 20, + 0, + 25, + 0, + 30, + 0, + 35, + 0, + 40, + 0, + 45, + 0, + 50, + 0, + 55, + 0, + 59, + 0, + 64, + 0, + 69, + 0, + 74, + 0, + 79, + 0, + 84, + 0, + 89, + 0, + 94, + 0, + 99, + 0, + 104, + 0, + 109, + 0, + 114, + 0, + 119, + 0, + 124, + 0, + -127, + 0, + -122, + 0, + -117, + 0, + -112, + 0, + -107, + 0, + -102, + 0, + -97, + 0, + -92, + 0, + -87, + 0, + -82, + 0, + -78, + 0, + -73, + 0, + -68, + 0, + -63, + 0, + -58, + 0, + -53, + 0, + -48, + 0, + -43, + 0, + -37, + 0, + -32, + 0, + -27, + 0, + -21, + 0, + -16, + 0, + -10, + 0, + -5, + 1, + 1, + 1, + 7, + 1, + 13, + 1, + 19, + 1, + 25, + 1, + 31, + 1, + 37, + 1, + 43, + 1, + 50, + 1, + 56, + 1, + 62, + 1, + 69, + 1, + 76, + 1, + 82, + 1, + 89, + 1, + 96, + 1, + 103, + 1, + 110, + 1, + 117, + 1, + 124, + 1, + -125, + 1, + -117, + 1, + -110, + 1, + -102, + 1, + -95, + 1, + -87, + 1, + -79, + 1, + -71, + 1, + -63, + 1, + -55, + 1, + -47, + 1, + -39, + 1, + -31, + 1, + -23, + 1, + -14, + 1, + -6, + 2, + 3, + 2, + 12, + 2, + 20, + 2, + 29, + 2, + 38, + 2, + 47, + 2, + 56, + 2, + 65, + 2, + 75, + 2, + 84, + 2, + 93, + 2, + 103, + 2, + 113, + 2, + 122, + 2, + -124, + 2, + -114, + 2, + -104, + 2, + -94, + 2, + -84, + 2, + -74, + 2, + -63, + 2, + -53, + 2, + -43, + 2, + -32, + 2, + -21, + 2, + -11, + 3, + 0, + 3, + 11, + 3, + 22, + 3, + 33, + 3, + 45, + 3, + 56, + 3, + 67, + 3, + 79, + 3, + 90, + 3, + 102, + 3, + 114, + 3, + 126, + 3, + -118, + 3, + -106, + 3, + -94, + 3, + -82, + 3, + -70, + 3, + -57, + 3, + -45, + 3, + -32, + 3, + -20, + 3, + -7, + 4, + 6, + 4, + 19, + 4, + 32, + 4, + 45, + 4, + 59, + 4, + 72, + 4, + 85, + 4, + 99, + 4, + 113, + 4, + 126, + 4, + -116, + 4, + -102, + 4, + -88, + 4, + -74, + 4, + -60, + 4, + -45, + 4, + -31, + 4, + -16, + 4, + -2, + 5, + 13, + 5, + 28, + 5, + 43, + 5, + 58, + 5, + 73, + 5, + 88, + 5, + 103, + 5, + 119, + 5, + -122, + 5, + -106, + 5, + -90, + 5, + -75, + 5, + -59, + 5, + -43, + 5, + -27, + 5, + -10, + 6, + 6, + 6, + 22, + 6, + 39, + 6, + 55, + 6, + 72, + 6, + 89, + 6, + 106, + 6, + 123, + 6, + -116, + 6, + -99, + 6, + -81, + 6, + -64, + 6, + -47, + 6, + -29, + 6, + -11, + 7, + 7, + 7, + 25, + 7, + 43, + 7, + 61, + 7, + 79, + 7, + 97, + 7, + 116, + 7, + -122, + 7, + -103, + 7, + -84, + 7, + -65, + 7, + -46, + 7, + -27, + 7, + -8, + 8, + 11, + 8, + 31, + 8, + 50, + 8, + 70, + 8, + 90, + 8, + 110, + 8, + -126, + 8, + -106, + 8, + -86, + 8, + -66, + 8, + -46, + 8, + -25, + 8, + -5, + 9, + 16, + 9, + 37, + 9, + 58, + 9, + 79, + 9, + 100, + 9, + 121, + 9, + -113, + 9, + -92, + 9, + -70, + 9, + -49, + 9, + -27, + 9, + -5, + 10, + 17, + 10, + 39, + 10, + 61, + 10, + 84, + 10, + 106, + 10, + -127, + 10, + -104, + 10, + -82, + 10, + -59, + 10, + -36, + 10, + -13, + 11, + 11, + 11, + 34, + 11, + 57, + 11, + 81, + 11, + 105, + 11, + -128, + 11, + -104, + 11, + -80, + 11, + -56, + 11, + -31, + 11, + -7, + 12, + 18, + 12, + 42, + 12, + 67, + 12, + 92, + 12, + 117, + 12, + -114, + 12, + -89, + 12, + -64, + 12, + -39, + 12, + -13, + 13, + 13, + 13, + 38, + 13, + 64, + 13, + 90, + 13, + 116, + 13, + -114, + 13, + -87, + 13, + -61, + 13, + -34, + 13, + -8, + 14, + 19, + 14, + 46, + 14, + 73, + 14, + 100, + 14, + 127, + 14, + -101, + 14, + -74, + 14, + -46, + 14, + -18, + 15, + 9, + 15, + 37, + 15, + 65, + 15, + 94, + 15, + 122, + 15, + -106, + 15, + -77, + 15, + -49, + 15, + -20, + 16, + 9, + 16, + 38, + 16, + 67, + 16, + 97, + 16, + 126, + 16, + -101, + 16, + -71, + 16, + -41, + 16, + -11, + 17, + 19, + 17, + 49, + 17, + 79, + 17, + 109, + 17, + -116, + 17, + -86, + 17, + -55, + 17, + -24, + 18, + 7, + 18, + 38, + 18, + 69, + 18, + 100, + 18, + -124, + 18, + -93, + 18, + -61, + 18, + -29, + 19, + 3, + 19, + 35, + 19, + 67, + 19, + 99, + 19, + -125, + 19, + -92, + 19, + -59, + 19, + -27, + 20, + 6, + 20, + 39, + 20, + 73, + 20, + 106, + 20, + -117, + 20, + -83, + 20, + -50, + 20, + -16, + 21, + 18, + 21, + 52, + 21, + 86, + 21, + 120, + 21, + -101, + 21, + -67, + 21, + -32, + 22, + 3, + 22, + 38, + 22, + 73, + 22, + 108, + 22, + -113, + 22, + -78, + 22, + -42, + 22, + -6, + 23, + 29, + 23, + 65, + 23, + 101, + 23, + -119, + 23, + -82, + 23, + -46, + 23, + -9, + 24, + 27, + 24, + 64, + 24, + 101, + 24, + -118, + 24, + -81, + 24, + -43, + 24, + -6, + 25, + 32, + 25, + 69, + 25, + 107, + 25, + -111, + 25, + -73, + 25, + -35, + 26, + 4, + 26, + 42, + 26, + 81, + 26, + 119, + 26, + -98, + 26, + -59, + 26, + -20, + 27, + 20, + 27, + 59, + 27, + 99, + 27, + -118, + 27, + -78, + 27, + -38, + 28, + 2, + 28, + 42, + 28, + 82, + 28, + 123, + 28, + -93, + 28, + -52, + 28, + -11, + 29, + 30, + 29, + 71, + 29, + 112, + 29, + -103, + 29, + -61, + 29, + -20, + 30, + 22, + 30, + 64, + 30, + 106, + 30, + -108, + 30, + -66, + 30, + -23, + 31, + 19, + 31, + 62, + 31, + 105, + 31, + -108, + 31, + -65, + 31, + -22, + 32, + 21, + 32, + 65, + 32, + 108, + 32, + -104, + 32, + -60, + 32, + -16, + 33, + 28, + 33, + 72, + 33, + 117, + 33, + -95, + 33, + -50, + 33, + -5, + 34, + 39, + 34, + 85, + 34, + -126, + 34, + -81, + 34, + -35, + 35, + 10, + 35, + 56, + 35, + 102, + 35, + -108, + 35, + -62, + 35, + -16, + 36, + 31, + 36, + 77, + 36, + 124, + 36, + -85, + 36, + -38, + 37, + 9, + 37, + 56, + 37, + 104, + 37, + -105, + 37, + -57, + 37, + -9, + 38, + 39, + 38, + 87, + 38, + -121, + 38, + -73, + 38, + -24, + 39, + 24, + 39, + 73, + 39, + 122, + 39, + -85, + 39, + -36, + 40, + 13, + 40, + 63, + 40, + 113, + 40, + -94, + 40, + -44, + 41, + 6, + 41, + 56, + 41, + 107, + 41, + -99, + 41, + -48, + 42, + 2, + 42, + 53, + 42, + 104, + 42, + -101, + 42, + -49, + 43, + 2, + 43, + 54, + 43, + 105, + 43, + -99, + 43, + -47, + 44, + 5, + 44, + 57, + 44, + 110, + 44, + -94, + 44, + -41, + 45, + 12, + 45, + 65, + 45, + 118, + 45, + -85, + 45, + -31, + 46, + 22, + 46, + 76, + 46, + -126, + 46, + -73, + 46, + -18, + 47, + 36, + 47, + 90, + 47, + -111, + 47, + -57, + 47, + -2, + 48, + 53, + 48, + 108, + 48, + -92, + 48, + -37, + 49, + 18, + 49, + 74, + 49, + -126, + 49, + -70, + 49, + -14, + 50, + 42, + 50, + 99, + 50, + -101, + 50, + -44, + 51, + 13, + 51, + 70, + 51, + 127, + 51, + -72, + 51, + -15, + 52, + 43, + 52, + 101, + 52, + -98, + 52, + -40, + 53, + 19, + 53, + 77, + 53, + -121, + 53, + -62, + 53, + -3, + 54, + 55, + 54, + 114, + 54, + -82, + 54, + -23, + 55, + 36, + 55, + 96, + 55, + -100, + 55, + -41, + 56, + 20, + 56, + 80, + 56, + -116, + 56, + -56, + 57, + 5, + 57, + 66, + 57, + 127, + 57, + -68, + 57, + -7, + 58, + 54, + 58, + 116, + 58, + -78, + 58, + -17, + 59, + 45, + 59, + 107, + 59, + -86, + 59, + -24, + 60, + 39, + 60, + 101, + 60, + -92, + 60, + -29, + 61, + 34, + 61, + 97, + 61, + -95, + 61, + -32, + 62, + 32, + 62, + 96, + 62, + -96, + 62, + -32, + 63, + 33, + 63, + 97, + 63, + -94, + 63, + -30, + 64, + 35, + 64, + 100, + 64, + -90, + 64, + -25, + 65, + 41, + 65, + 106, + 65, + -84, + 65, + -18, + 66, + 48, + 66, + 114, + 66, + -75, + 66, + -9, + 67, + 58, + 67, + 125, + 67, + -64, + 68, + 3, + 68, + 71, + 68, + -118, + 68, + -50, + 69, + 18, + 69, + 85, + 69, + -102, + 69, + -34, + 70, + 34, + 70, + 103, + 70, + -85, + 70, + -16, + 71, + 53, + 71, + 123, + 71, + -64, + 72, + 5, + 72, + 75, + 72, + -111, + 72, + -41, + 73, + 29, + 73, + 99, + 73, + -87, + 73, + -16, + 74, + 55, + 74, + 125, + 74, + -60, + 75, + 12, + 75, + 83, + 75, + -102, + 75, + -30, + 76, + 42, + 76, + 114, + 76, + -70, + 77, + 2, + 77, + 74, + 77, + -109, + 77, + -36, + 78, + 37, + 78, + 110, + 78, + -73, + 79, + 0, + 79, + 73, + 79, + -109, + 79, + -35, + 80, + 39, + 80, + 113, + 80, + -69, + 81, + 6, + 81, + 80, + 81, + -101, + 81, + -26, + 82, + 49, + 82, + 124, + 82, + -57, + 83, + 19, + 83, + 95, + 83, + -86, + 83, + -10, + 84, + 66, + 84, + -113, + 84, + -37, + 85, + 40, + 85, + 117, + 85, + -62, + 86, + 15, + 86, + 92, + 86, + -87, + 86, + -9, + 87, + 68, + 87, + -110, + 87, + -32, + 88, + 47, + 88, + 125, + 88, + -53, + 89, + 26, + 89, + 105, + 89, + -72, + 90, + 7, + 90, + 86, + 90, + -90, + 90, + -11, + 91, + 69, + 91, + -107, + 91, + -27, + 92, + 53, + 92, + -122, + 92, + -42, + 93, + 39, + 93, + 120, + 93, + -55, + 94, + 26, + 94, + 108, + 94, + -67, + 95, + 15, + 95, + 97, + 95, + -77, + 96, + 5, + 96, + 87, + 96, + -86, + 96, + -4, + 97, + 79, + 97, + -94, + 97, + -11, + 98, + 73, + 98, + -100, + 98, + -16, + 99, + 67, + 99, + -105, + 99, + -21, + 100, + 64, + 100, + -108, + 100, + -23, + 101, + 61, + 101, + -110, + 101, + -25, + 102, + 61, + 102, + -110, + 102, + -24, + 103, + 61, + 103, + -109, + 103, + -23, + 104, + 63, + 104, + -106, + 104, + -20, + 105, + 67, + 105, + -102, + 105, + -15, + 106, + 72, + 106, + -97, + 106, + -9, + 107, + 79, + 107, + -89, + 107, + -1, + 108, + 87, + 108, + -81, + 109, + 8, + 109, + 96, + 109, + -71, + 110, + 18, + 110, + 107, + 110, + -60, + 111, + 30, + 111, + 120, + 111, + -47, + 112, + 43, + 112, + -122, + 112, + -32, + 113, + 58, + 113, + -107, + 113, + -16, + 114, + 75, + 114, + -90, + 115, + 1, + 115, + 93, + 115, + -72, + 116, + 20, + 116, + 112, + 116, + -52, + 117, + 40, + 117, + -123, + 117, + -31, + 118, + 62, + 118, + -101, + 118, + -8, + 119, + 86, + 119, + -77, + 120, + 17, + 120, + 110, + 120, + -52, + 121, + 42, + 121, + -119, + 121, + -25, + 122, + 70, + 122, + -91, + 123, + 4, + 123, + 99, + 123, + -62, + 124, + 33, + 124, + -127, + 124, + -31, + 125, + 65, + 125, + -95, + 126, + 1, + 126, + 98, + 126, + -62, + 127, + 35, + 127, + -124, + 127, + -27, + -128, + 71, + -128, + -88, + -127, + 10, + -127, + 107, + -127, + -51, + -126, + 48, + -126, + -110, + -126, + -12, + -125, + 87, + -125, + -70, + -124, + 29, + -124, + -128, + -124, + -29, + -123, + 71, + -123, + -85, + -122, + 14, + -122, + 114, + -122, + -41, + -121, + 59, + -121, + -97, + -120, + 4, + -120, + 105, + -120, + -50, + -119, + 51, + -119, + -103, + -119, + -2, + -118, + 100, + -118, + -54, + -117, + 48, + -117, + -106, + -117, + -4, + -116, + 99, + -116, + -54, + -115, + 49, + -115, + -104, + -115, + -1, + -114, + 102, + -114, + -50, + -113, + 54, + -113, + -98, + -112, + 6, + -112, + 110, + -112, + -42, + -111, + 63, + -111, + -88, + -110, + 17, + -110, + 122, + -110, + -29, + -109, + 77, + -109, + -74, + -108, + 32, + -108, + -118, + -108, + -12, + -107, + 95, + -107, + -55, + -106, + 52, + -106, + -97, + -105, + 10, + -105, + 117, + -105, + -32, + -104, + 76, + -104, + -72, + -103, + 36, + -103, + -112, + -103, + -4, + -102, + 104, + -102, + -43, + -101, + 66, + -101, + -81, + -100, + 28, + -100, + -119, + -100, + -9, + -99, + 100, + -99, + -46, + -98, + 64, + -98, + -82, + -97, + 29, + -97, + -117, + -97, + -6, + -96, + 105, + -96, + -40, + -95, + 71, + -95, + -74, + -94, + 38, + -94, + -106, + -93, + 6, + -93, + 118, + -93, + -26, + -92, + 86, + -92, + -57, + -91, + 56, + -91, + -87, + -90, + 26, + -90, + -117, + -90, + -3, + -89, + 110, + -89, + -32, + -88, + 82, + -88, + -60, + -87, + 55, + -87, + -87, + -86, + 28, + -86, + -113, + -85, + 2, + -85, + 117, + -85, + -23, + -84, + 92, + -84, + -48, + -83, + 68, + -83, + -72, + -82, + 45, + -82, + -95, + -81, + 22, + -81, + -117, + -80, + 0, + -80, + 117, + -80, + -22, + -79, + 96, + -79, + -42, + -78, + 75, + -78, + -62, + -77, + 56, + -77, + -82, + -76, + 37, + -76, + -100, + -75, + 19, + -75, + -118, + -74, + 1, + -74, + 121, + -74, + -16, + -73, + 104, + -73, + -32, + -72, + 89, + -72, + -47, + -71, + 74, + -71, + -62, + -70, + 59, + -70, + -75, + -69, + 46, + -69, + -89, + -68, + 33, + -68, + -101, + -67, + 21, + -67, + -113, + -66, + 10, + -66, + -124, + -66, + -1, + -65, + 122, + -65, + -11, + -64, + 112, + -64, + -20, + -63, + 103, + -63, + -29, + -62, + 95, + -62, + -37, + -61, + 88, + -61, + -44, + -60, + 81, + -60, + -50, + -59, + 75, + -59, + -56, + -58, + 70, + -58, + -61, + -57, + 65, + -57, + -65, + -56, + 61, + -56, + -68, + -55, + 58, + -55, + -71, + -54, + 56, + -54, + -73, + -53, + 54, + -53, + -74, + -52, + 53, + -52, + -75, + -51, + 53, + -51, + -75, + -50, + 54, + -50, + -74, + -49, + 55, + -49, + -72, + -48, + 57, + -48, + -70, + -47, + 60, + -47, + -66, + -46, + 63, + -46, + -63, + -45, + 68, + -45, + -58, + -44, + 73, + -44, + -53, + -43, + 78, + -43, + -47, + -42, + 85, + -42, + -40, + -41, + 92, + -41, + -32, + -40, + 100, + -40, + -24, + -39, + 108, + -39, + -15, + -38, + 118, + -38, + -5, + -37, + -128, + -36, + 5, + -36, + -118, + -35, + 16, + -35, + -106, + -34, + 28, + -34, + -94, + -33, + 41, + -33, + -81, + -32, + 54, + -32, + -67, + -31, + 68, + -31, + -52, + -30, + 83, + -30, + -37, + -29, + 99, + -29, + -21, + -28, + 115, + -28, + -4, + -27, + -124, + -26, + 13, + -26, + -106, + -25, + 31, + -25, + -87, + -24, + 50, + -24, + -68, + -23, + 70, + -23, + -48, + -22, + 91, + -22, + -27, + -21, + 112, + -21, + -5, + -20, + -122, + -19, + 17, + -19, + -100, + -18, + 40, + -18, + -76, + -17, + 64, + -17, + -52, + -16, + 88, + -16, + -27, + -15, + 114, + -15, + -1, + -14, + -116, + -13, + 25, + -13, + -89, + -12, + 52, + -12, + -62, + -11, + 80, + -11, + -34, + -10, + 109, + -10, + -5, + -9, + -118, + -8, + 25, + -8, + -88, + -7, + 56, + -7, + -57, + -6, + 87, + -6, + -25, + -5, + 119, + -4, + 7, + -4, + -104, + -3, + 41, + -3, + -70, + -2, + 75, + -2, + -36, + -1, + 109, + -1, + -1, + 99, + 117, + 114, + 118, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 5, + 0, + 10, + 0, + 15, + 0, + 20, + 0, + 25, + 0, + 30, + 0, + 35, + 0, + 40, + 0, + 45, + 0, + 50, + 0, + 55, + 0, + 59, + 0, + 64, + 0, + 69, + 0, + 74, + 0, + 79, + 0, + 84, + 0, + 89, + 0, + 94, + 0, + 99, + 0, + 104, + 0, + 109, + 0, + 114, + 0, + 119, + 0, + 124, + 0, + -127, + 0, + -122, + 0, + -117, + 0, + -112, + 0, + -107, + 0, + -102, + 0, + -97, + 0, + -92, + 0, + -87, + 0, + -82, + 0, + -78, + 0, + -73, + 0, + -68, + 0, + -63, + 0, + -58, + 0, + -53, + 0, + -48, + 0, + -43, + 0, + -37, + 0, + -32, + 0, + -27, + 0, + -21, + 0, + -16, + 0, + -10, + 0, + -5, + 1, + 1, + 1, + 7, + 1, + 13, + 1, + 19, + 1, + 25, + 1, + 31, + 1, + 37, + 1, + 43, + 1, + 50, + 1, + 56, + 1, + 62, + 1, + 69, + 1, + 76, + 1, + 82, + 1, + 89, + 1, + 96, + 1, + 103, + 1, + 110, + 1, + 117, + 1, + 124, + 1, + -125, + 1, + -117, + 1, + -110, + 1, + -102, + 1, + -95, + 1, + -87, + 1, + -79, + 1, + -71, + 1, + -63, + 1, + -55, + 1, + -47, + 1, + -39, + 1, + -31, + 1, + -23, + 1, + -14, + 1, + -6, + 2, + 3, + 2, + 12, + 2, + 20, + 2, + 29, + 2, + 38, + 2, + 47, + 2, + 56, + 2, + 65, + 2, + 75, + 2, + 84, + 2, + 93, + 2, + 103, + 2, + 113, + 2, + 122, + 2, + -124, + 2, + -114, + 2, + -104, + 2, + -94, + 2, + -84, + 2, + -74, + 2, + -63, + 2, + -53, + 2, + -43, + 2, + -32, + 2, + -21, + 2, + -11, + 3, + 0, + 3, + 11, + 3, + 22, + 3, + 33, + 3, + 45, + 3, + 56, + 3, + 67, + 3, + 79, + 3, + 90, + 3, + 102, + 3, + 114, + 3, + 126, + 3, + -118, + 3, + -106, + 3, + -94, + 3, + -82, + 3, + -70, + 3, + -57, + 3, + -45, + 3, + -32, + 3, + -20, + 3, + -7, + 4, + 6, + 4, + 19, + 4, + 32, + 4, + 45, + 4, + 59, + 4, + 72, + 4, + 85, + 4, + 99, + 4, + 113, + 4, + 126, + 4, + -116, + 4, + -102, + 4, + -88, + 4, + -74, + 4, + -60, + 4, + -45, + 4, + -31, + 4, + -16, + 4, + -2, + 5, + 13, + 5, + 28, + 5, + 43, + 5, + 58, + 5, + 73, + 5, + 88, + 5, + 103, + 5, + 119, + 5, + -122, + 5, + -106, + 5, + -90, + 5, + -75, + 5, + -59, + 5, + -43, + 5, + -27, + 5, + -10, + 6, + 6, + 6, + 22, + 6, + 39, + 6, + 55, + 6, + 72, + 6, + 89, + 6, + 106, + 6, + 123, + 6, + -116, + 6, + -99, + 6, + -81, + 6, + -64, + 6, + -47, + 6, + -29, + 6, + -11, + 7, + 7, + 7, + 25, + 7, + 43, + 7, + 61, + 7, + 79, + 7, + 97, + 7, + 116, + 7, + -122, + 7, + -103, + 7, + -84, + 7, + -65, + 7, + -46, + 7, + -27, + 7, + -8, + 8, + 11, + 8, + 31, + 8, + 50, + 8, + 70, + 8, + 90, + 8, + 110, + 8, + -126, + 8, + -106, + 8, + -86, + 8, + -66, + 8, + -46, + 8, + -25, + 8, + -5, + 9, + 16, + 9, + 37, + 9, + 58, + 9, + 79, + 9, + 100, + 9, + 121, + 9, + -113, + 9, + -92, + 9, + -70, + 9, + -49, + 9, + -27, + 9, + -5, + 10, + 17, + 10, + 39, + 10, + 61, + 10, + 84, + 10, + 106, + 10, + -127, + 10, + -104, + 10, + -82, + 10, + -59, + 10, + -36, + 10, + -13, + 11, + 11, + 11, + 34, + 11, + 57, + 11, + 81, + 11, + 105, + 11, + -128, + 11, + -104, + 11, + -80, + 11, + -56, + 11, + -31, + 11, + -7, + 12, + 18, + 12, + 42, + 12, + 67, + 12, + 92, + 12, + 117, + 12, + -114, + 12, + -89, + 12, + -64, + 12, + -39, + 12, + -13, + 13, + 13, + 13, + 38, + 13, + 64, + 13, + 90, + 13, + 116, + 13, + -114, + 13, + -87, + 13, + -61, + 13, + -34, + 13, + -8, + 14, + 19, + 14, + 46, + 14, + 73, + 14, + 100, + 14, + 127, + 14, + -101, + 14, + -74, + 14, + -46, + 14, + -18, + 15, + 9, + 15, + 37, + 15, + 65, + 15, + 94, + 15, + 122, + 15, + -106, + 15, + -77, + 15, + -49, + 15, + -20, + 16, + 9, + 16, + 38, + 16, + 67, + 16, + 97, + 16, + 126, + 16, + -101, + 16, + -71, + 16, + -41, + 16, + -11, + 17, + 19, + 17, + 49, + 17, + 79, + 17, + 109, + 17, + -116, + 17, + -86, + 17, + -55, + 17, + -24, + 18, + 7, + 18, + 38, + 18, + 69, + 18, + 100, + 18, + -124, + 18, + -93, + 18, + -61, + 18, + -29, + 19, + 3, + 19, + 35, + 19, + 67, + 19, + 99, + 19, + -125, + 19, + -92, + 19, + -59, + 19, + -27, + 20, + 6, + 20, + 39, + 20, + 73, + 20, + 106, + 20, + -117, + 20, + -83, + 20, + -50, + 20, + -16, + 21, + 18, + 21, + 52, + 21, + 86, + 21, + 120, + 21, + -101, + 21, + -67, + 21, + -32, + 22, + 3, + 22, + 38, + 22, + 73, + 22, + 108, + 22, + -113, + 22, + -78, + 22, + -42, + 22, + -6, + 23, + 29, + 23, + 65, + 23, + 101, + 23, + -119, + 23, + -82, + 23, + -46, + 23, + -9, + 24, + 27, + 24, + 64, + 24, + 101, + 24, + -118, + 24, + -81, + 24, + -43, + 24, + -6, + 25, + 32, + 25, + 69, + 25, + 107, + 25, + -111, + 25, + -73, + 25, + -35, + 26, + 4, + 26, + 42, + 26, + 81, + 26, + 119, + 26, + -98, + 26, + -59, + 26, + -20, + 27, + 20, + 27, + 59, + 27, + 99, + 27, + -118, + 27, + -78, + 27, + -38, + 28, + 2, + 28, + 42, + 28, + 82, + 28, + 123, + 28, + -93, + 28, + -52, + 28, + -11, + 29, + 30, + 29, + 71, + 29, + 112, + 29, + -103, + 29, + -61, + 29, + -20, + 30, + 22, + 30, + 64, + 30, + 106, + 30, + -108, + 30, + -66, + 30, + -23, + 31, + 19, + 31, + 62, + 31, + 105, + 31, + -108, + 31, + -65, + 31, + -22, + 32, + 21, + 32, + 65, + 32, + 108, + 32, + -104, + 32, + -60, + 32, + -16, + 33, + 28, + 33, + 72, + 33, + 117, + 33, + -95, + 33, + -50, + 33, + -5, + 34, + 39, + 34, + 85, + 34, + -126, + 34, + -81, + 34, + -35, + 35, + 10, + 35, + 56, + 35, + 102, + 35, + -108, + 35, + -62, + 35, + -16, + 36, + 31, + 36, + 77, + 36, + 124, + 36, + -85, + 36, + -38, + 37, + 9, + 37, + 56, + 37, + 104, + 37, + -105, + 37, + -57, + 37, + -9, + 38, + 39, + 38, + 87, + 38, + -121, + 38, + -73, + 38, + -24, + 39, + 24, + 39, + 73, + 39, + 122, + 39, + -85, + 39, + -36, + 40, + 13, + 40, + 63, + 40, + 113, + 40, + -94, + 40, + -44, + 41, + 6, + 41, + 56, + 41, + 107, + 41, + -99, + 41, + -48, + 42, + 2, + 42, + 53, + 42, + 104, + 42, + -101, + 42, + -49, + 43, + 2, + 43, + 54, + 43, + 105, + 43, + -99, + 43, + -47, + 44, + 5, + 44, + 57, + 44, + 110, + 44, + -94, + 44, + -41, + 45, + 12, + 45, + 65, + 45, + 118, + 45, + -85, + 45, + -31, + 46, + 22, + 46, + 76, + 46, + -126, + 46, + -73, + 46, + -18, + 47, + 36, + 47, + 90, + 47, + -111, + 47, + -57, + 47, + -2, + 48, + 53, + 48, + 108, + 48, + -92, + 48, + -37, + 49, + 18, + 49, + 74, + 49, + -126, + 49, + -70, + 49, + -14, + 50, + 42, + 50, + 99, + 50, + -101, + 50, + -44, + 51, + 13, + 51, + 70, + 51, + 127, + 51, + -72, + 51, + -15, + 52, + 43, + 52, + 101, + 52, + -98, + 52, + -40, + 53, + 19, + 53, + 77, + 53, + -121, + 53, + -62, + 53, + -3, + 54, + 55, + 54, + 114, + 54, + -82, + 54, + -23, + 55, + 36, + 55, + 96, + 55, + -100, + 55, + -41, + 56, + 20, + 56, + 80, + 56, + -116, + 56, + -56, + 57, + 5, + 57, + 66, + 57, + 127, + 57, + -68, + 57, + -7, + 58, + 54, + 58, + 116, + 58, + -78, + 58, + -17, + 59, + 45, + 59, + 107, + 59, + -86, + 59, + -24, + 60, + 39, + 60, + 101, + 60, + -92, + 60, + -29, + 61, + 34, + 61, + 97, + 61, + -95, + 61, + -32, + 62, + 32, + 62, + 96, + 62, + -96, + 62, + -32, + 63, + 33, + 63, + 97, + 63, + -94, + 63, + -30, + 64, + 35, + 64, + 100, + 64, + -90, + 64, + -25, + 65, + 41, + 65, + 106, + 65, + -84, + 65, + -18, + 66, + 48, + 66, + 114, + 66, + -75, + 66, + -9, + 67, + 58, + 67, + 125, + 67, + -64, + 68, + 3, + 68, + 71, + 68, + -118, + 68, + -50, + 69, + 18, + 69, + 85, + 69, + -102, + 69, + -34, + 70, + 34, + 70, + 103, + 70, + -85, + 70, + -16, + 71, + 53, + 71, + 123, + 71, + -64, + 72, + 5, + 72, + 75, + 72, + -111, + 72, + -41, + 73, + 29, + 73, + 99, + 73, + -87, + 73, + -16, + 74, + 55, + 74, + 125, + 74, + -60, + 75, + 12, + 75, + 83, + 75, + -102, + 75, + -30, + 76, + 42, + 76, + 114, + 76, + -70, + 77, + 2, + 77, + 74, + 77, + -109, + 77, + -36, + 78, + 37, + 78, + 110, + 78, + -73, + 79, + 0, + 79, + 73, + 79, + -109, + 79, + -35, + 80, + 39, + 80, + 113, + 80, + -69, + 81, + 6, + 81, + 80, + 81, + -101, + 81, + -26, + 82, + 49, + 82, + 124, + 82, + -57, + 83, + 19, + 83, + 95, + 83, + -86, + 83, + -10, + 84, + 66, + 84, + -113, + 84, + -37, + 85, + 40, + 85, + 117, + 85, + -62, + 86, + 15, + 86, + 92, + 86, + -87, + 86, + -9, + 87, + 68, + 87, + -110, + 87, + -32, + 88, + 47, + 88, + 125, + 88, + -53, + 89, + 26, + 89, + 105, + 89, + -72, + 90, + 7, + 90, + 86, + 90, + -90, + 90, + -11, + 91, + 69, + 91, + -107, + 91, + -27, + 92, + 53, + 92, + -122, + 92, + -42, + 93, + 39, + 93, + 120, + 93, + -55, + 94, + 26, + 94, + 108, + 94, + -67, + 95, + 15, + 95, + 97, + 95, + -77, + 96, + 5, + 96, + 87, + 96, + -86, + 96, + -4, + 97, + 79, + 97, + -94, + 97, + -11, + 98, + 73, + 98, + -100, + 98, + -16, + 99, + 67, + 99, + -105, + 99, + -21, + 100, + 64, + 100, + -108, + 100, + -23, + 101, + 61, + 101, + -110, + 101, + -25, + 102, + 61, + 102, + -110, + 102, + -24, + 103, + 61, + 103, + -109, + 103, + -23, + 104, + 63, + 104, + -106, + 104, + -20, + 105, + 67, + 105, + -102, + 105, + -15, + 106, + 72, + 106, + -97, + 106, + -9, + 107, + 79, + 107, + -89, + 107, + -1, + 108, + 87, + 108, + -81, + 109, + 8, + 109, + 96, + 109, + -71, + 110, + 18, + 110, + 107, + 110, + -60, + 111, + 30, + 111, + 120, + 111, + -47, + 112, + 43, + 112, + -122, + 112, + -32, + 113, + 58, + 113, + -107, + 113, + -16, + 114, + 75, + 114, + -90, + 115, + 1, + 115, + 93, + 115, + -72, + 116, + 20, + 116, + 112, + 116, + -52, + 117, + 40, + 117, + -123, + 117, + -31, + 118, + 62, + 118, + -101, + 118, + -8, + 119, + 86, + 119, + -77, + 120, + 17, + 120, + 110, + 120, + -52, + 121, + 42, + 121, + -119, + 121, + -25, + 122, + 70, + 122, + -91, + 123, + 4, + 123, + 99, + 123, + -62, + 124, + 33, + 124, + -127, + 124, + -31, + 125, + 65, + 125, + -95, + 126, + 1, + 126, + 98, + 126, + -62, + 127, + 35, + 127, + -124, + 127, + -27, + -128, + 71, + -128, + -88, + -127, + 10, + -127, + 107, + -127, + -51, + -126, + 48, + -126, + -110, + -126, + -12, + -125, + 87, + -125, + -70, + -124, + 29, + -124, + -128, + -124, + -29, + -123, + 71, + -123, + -85, + -122, + 14, + -122, + 114, + -122, + -41, + -121, + 59, + -121, + -97, + -120, + 4, + -120, + 105, + -120, + -50, + -119, + 51, + -119, + -103, + -119, + -2, + -118, + 100, + -118, + -54, + -117, + 48, + -117, + -106, + -117, + -4, + -116, + 99, + -116, + -54, + -115, + 49, + -115, + -104, + -115, + -1, + -114, + 102, + -114, + -50, + -113, + 54, + -113, + -98, + -112, + 6, + -112, + 110, + -112, + -42, + -111, + 63, + -111, + -88, + -110, + 17, + -110, + 122, + -110, + -29, + -109, + 77, + -109, + -74, + -108, + 32, + -108, + -118, + -108, + -12, + -107, + 95, + -107, + -55, + -106, + 52, + -106, + -97, + -105, + 10, + -105, + 117, + -105, + -32, + -104, + 76, + -104, + -72, + -103, + 36, + -103, + -112, + -103, + -4, + -102, + 104, + -102, + -43, + -101, + 66, + -101, + -81, + -100, + 28, + -100, + -119, + -100, + -9, + -99, + 100, + -99, + -46, + -98, + 64, + -98, + -82, + -97, + 29, + -97, + -117, + -97, + -6, + -96, + 105, + -96, + -40, + -95, + 71, + -95, + -74, + -94, + 38, + -94, + -106, + -93, + 6, + -93, + 118, + -93, + -26, + -92, + 86, + -92, + -57, + -91, + 56, + -91, + -87, + -90, + 26, + -90, + -117, + -90, + -3, + -89, + 110, + -89, + -32, + -88, + 82, + -88, + -60, + -87, + 55, + -87, + -87, + -86, + 28, + -86, + -113, + -85, + 2, + -85, + 117, + -85, + -23, + -84, + 92, + -84, + -48, + -83, + 68, + -83, + -72, + -82, + 45, + -82, + -95, + -81, + 22, + -81, + -117, + -80, + 0, + -80, + 117, + -80, + -22, + -79, + 96, + -79, + -42, + -78, + 75, + -78, + -62, + -77, + 56, + -77, + -82, + -76, + 37, + -76, + -100, + -75, + 19, + -75, + -118, + -74, + 1, + -74, + 121, + -74, + -16, + -73, + 104, + -73, + -32, + -72, + 89, + -72, + -47, + -71, + 74, + -71, + -62, + -70, + 59, + -70, + -75, + -69, + 46, + -69, + -89, + -68, + 33, + -68, + -101, + -67, + 21, + -67, + -113, + -66, + 10, + -66, + -124, + -66, + -1, + -65, + 122, + -65, + -11, + -64, + 112, + -64, + -20, + -63, + 103, + -63, + -29, + -62, + 95, + -62, + -37, + -61, + 88, + -61, + -44, + -60, + 81, + -60, + -50, + -59, + 75, + -59, + -56, + -58, + 70, + -58, + -61, + -57, + 65, + -57, + -65, + -56, + 61, + -56, + -68, + -55, + 58, + -55, + -71, + -54, + 56, + -54, + -73, + -53, + 54, + -53, + -74, + -52, + 53, + -52, + -75, + -51, + 53, + -51, + -75, + -50, + 54, + -50, + -74, + -49, + 55, + -49, + -72, + -48, + 57, + -48, + -70, + -47, + 60, + -47, + -66, + -46, + 63, + -46, + -63, + -45, + 68, + -45, + -58, + -44, + 73, + -44, + -53, + -43, + 78, + -43, + -47, + -42, + 85, + -42, + -40, + -41, + 92, + -41, + -32, + -40, + 100, + -40, + -24, + -39, + 108, + -39, + -15, + -38, + 118, + -38, + -5, + -37, + -128, + -36, + 5, + -36, + -118, + -35, + 16, + -35, + -106, + -34, + 28, + -34, + -94, + -33, + 41, + -33, + -81, + -32, + 54, + -32, + -67, + -31, + 68, + -31, + -52, + -30, + 83, + -30, + -37, + -29, + 99, + -29, + -21, + -28, + 115, + -28, + -4, + -27, + -124, + -26, + 13, + -26, + -106, + -25, + 31, + -25, + -87, + -24, + 50, + -24, + -68, + -23, + 70, + -23, + -48, + -22, + 91, + -22, + -27, + -21, + 112, + -21, + -5, + -20, + -122, + -19, + 17, + -19, + -100, + -18, + 40, + -18, + -76, + -17, + 64, + -17, + -52, + -16, + 88, + -16, + -27, + -15, + 114, + -15, + -1, + -14, + -116, + -13, + 25, + -13, + -89, + -12, + 52, + -12, + -62, + -11, + 80, + -11, + -34, + -10, + 109, + -10, + -5, + -9, + -118, + -8, + 25, + -8, + -88, + -7, + 56, + -7, + -57, + -6, + 87, + -6, + -25, + -5, + 119, + -4, + 7, + -4, + -104, + -3, + 41, + -3, + -70, + -2, + 75, + -2, + -36, + -1, + 109, + -1, + -1, + 99, + 117, + 114, + 118, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 5, + 0, + 10, + 0, + 15, + 0, + 20, + 0, + 25, + 0, + 30, + 0, + 35, + 0, + 40, + 0, + 45, + 0, + 50, + 0, + 55, + 0, + 59, + 0, + 64, + 0, + 69, + 0, + 74, + 0, + 79, + 0, + 84, + 0, + 89, + 0, + 94, + 0, + 99, + 0, + 104, + 0, + 109, + 0, + 114, + 0, + 119, + 0, + 124, + 0, + -127, + 0, + -122, + 0, + -117, + 0, + -112, + 0, + -107, + 0, + -102, + 0, + -97, + 0, + -92, + 0, + -87, + 0, + -82, + 0, + -78, + 0, + -73, + 0, + -68, + 0, + -63, + 0, + -58, + 0, + -53, + 0, + -48, + 0, + -43, + 0, + -37, + 0, + -32, + 0, + -27, + 0, + -21, + 0, + -16, + 0, + -10, + 0, + -5, + 1, + 1, + 1, + 7, + 1, + 13, + 1, + 19, + 1, + 25, + 1, + 31, + 1, + 37, + 1, + 43, + 1, + 50, + 1, + 56, + 1, + 62, + 1, + 69, + 1, + 76, + 1, + 82, + 1, + 89, + 1, + 96, + 1, + 103, + 1, + 110, + 1, + 117, + 1, + 124, + 1, + -125, + 1, + -117, + 1, + -110, + 1, + -102, + 1, + -95, + 1, + -87, + 1, + -79, + 1, + -71, + 1, + -63, + 1, + -55, + 1, + -47, + 1, + -39, + 1, + -31, + 1, + -23, + 1, + -14, + 1, + -6, + 2, + 3, + 2, + 12, + 2, + 20, + 2, + 29, + 2, + 38, + 2, + 47, + 2, + 56, + 2, + 65, + 2, + 75, + 2, + 84, + 2, + 93, + 2, + 103, + 2, + 113, + 2, + 122, + 2, + -124, + 2, + -114, + 2, + -104, + 2, + -94, + 2, + -84, + 2, + -74, + 2, + -63, + 2, + -53, + 2, + -43, + 2, + -32, + 2, + -21, + 2, + -11, + 3, + 0, + 3, + 11, + 3, + 22, + 3, + 33, + 3, + 45, + 3, + 56, + 3, + 67, + 3, + 79, + 3, + 90, + 3, + 102, + 3, + 114, + 3, + 126, + 3, + -118, + 3, + -106, + 3, + -94, + 3, + -82, + 3, + -70, + 3, + -57, + 3, + -45, + 3, + -32, + 3, + -20, + 3, + -7, + 4, + 6, + 4, + 19, + 4, + 32, + 4, + 45, + 4, + 59, + 4, + 72, + 4, + 85, + 4, + 99, + 4, + 113, + 4, + 126, + 4, + -116, + 4, + -102, + 4, + -88, + 4, + -74, + 4, + -60, + 4, + -45, + 4, + -31, + 4, + -16, + 4, + -2, + 5, + 13, + 5, + 28, + 5, + 43, + 5, + 58, + 5, + 73, + 5, + 88, + 5, + 103, + 5, + 119, + 5, + -122, + 5, + -106, + 5, + -90, + 5, + -75, + 5, + -59, + 5, + -43, + 5, + -27, + 5, + -10, + 6, + 6, + 6, + 22, + 6, + 39, + 6, + 55, + 6, + 72, + 6, + 89, + 6, + 106, + 6, + 123, + 6, + -116, + 6, + -99, + 6, + -81, + 6, + -64, + 6, + -47, + 6, + -29, + 6, + -11, + 7, + 7, + 7, + 25, + 7, + 43, + 7, + 61, + 7, + 79, + 7, + 97, + 7, + 116, + 7, + -122, + 7, + -103, + 7, + -84, + 7, + -65, + 7, + -46, + 7, + -27, + 7, + -8, + 8, + 11, + 8, + 31, + 8, + 50, + 8, + 70, + 8, + 90, + 8, + 110, + 8, + -126, + 8, + -106, + 8, + -86, + 8, + -66, + 8, + -46, + 8, + -25, + 8, + -5, + 9, + 16, + 9, + 37, + 9, + 58, + 9, + 79, + 9, + 100, + 9, + 121, + 9, + -113, + 9, + -92, + 9, + -70, + 9, + -49, + 9, + -27, + 9, + -5, + 10, + 17, + 10, + 39, + 10, + 61, + 10, + 84, + 10, + 106, + 10, + -127, + 10, + -104, + 10, + -82, + 10, + -59, + 10, + -36, + 10, + -13, + 11, + 11, + 11, + 34, + 11, + 57, + 11, + 81, + 11, + 105, + 11, + -128, + 11, + -104, + 11, + -80, + 11, + -56, + 11, + -31, + 11, + -7, + 12, + 18, + 12, + 42, + 12, + 67, + 12, + 92, + 12, + 117, + 12, + -114, + 12, + -89, + 12, + -64, + 12, + -39, + 12, + -13, + 13, + 13, + 13, + 38, + 13, + 64, + 13, + 90, + 13, + 116, + 13, + -114, + 13, + -87, + 13, + -61, + 13, + -34, + 13, + -8, + 14, + 19, + 14, + 46, + 14, + 73, + 14, + 100, + 14, + 127, + 14, + -101, + 14, + -74, + 14, + -46, + 14, + -18, + 15, + 9, + 15, + 37, + 15, + 65, + 15, + 94, + 15, + 122, + 15, + -106, + 15, + -77, + 15, + -49, + 15, + -20, + 16, + 9, + 16, + 38, + 16, + 67, + 16, + 97, + 16, + 126, + 16, + -101, + 16, + -71, + 16, + -41, + 16, + -11, + 17, + 19, + 17, + 49, + 17, + 79, + 17, + 109, + 17, + -116, + 17, + -86, + 17, + -55, + 17, + -24, + 18, + 7, + 18, + 38, + 18, + 69, + 18, + 100, + 18, + -124, + 18, + -93, + 18, + -61, + 18, + -29, + 19, + 3, + 19, + 35, + 19, + 67, + 19, + 99, + 19, + -125, + 19, + -92, + 19, + -59, + 19, + -27, + 20, + 6, + 20, + 39, + 20, + 73, + 20, + 106, + 20, + -117, + 20, + -83, + 20, + -50, + 20, + -16, + 21, + 18, + 21, + 52, + 21, + 86, + 21, + 120, + 21, + -101, + 21, + -67, + 21, + -32, + 22, + 3, + 22, + 38, + 22, + 73, + 22, + 108, + 22, + -113, + 22, + -78, + 22, + -42, + 22, + -6, + 23, + 29, + 23, + 65, + 23, + 101, + 23, + -119, + 23, + -82, + 23, + -46, + 23, + -9, + 24, + 27, + 24, + 64, + 24, + 101, + 24, + -118, + 24, + -81, + 24, + -43, + 24, + -6, + 25, + 32, + 25, + 69, + 25, + 107, + 25, + -111, + 25, + -73, + 25, + -35, + 26, + 4, + 26, + 42, + 26, + 81, + 26, + 119, + 26, + -98, + 26, + -59, + 26, + -20, + 27, + 20, + 27, + 59, + 27, + 99, + 27, + -118, + 27, + -78, + 27, + -38, + 28, + 2, + 28, + 42, + 28, + 82, + 28, + 123, + 28, + -93, + 28, + -52, + 28, + -11, + 29, + 30, + 29, + 71, + 29, + 112, + 29, + -103, + 29, + -61, + 29, + -20, + 30, + 22, + 30, + 64, + 30, + 106, + 30, + -108, + 30, + -66, + 30, + -23, + 31, + 19, + 31, + 62, + 31, + 105, + 31, + -108, + 31, + -65, + 31, + -22, + 32, + 21, + 32, + 65, + 32, + 108, + 32, + -104, + 32, + -60, + 32, + -16, + 33, + 28, + 33, + 72, + 33, + 117, + 33, + -95, + 33, + -50, + 33, + -5, + 34, + 39, + 34, + 85, + 34, + -126, + 34, + -81, + 34, + -35, + 35, + 10, + 35, + 56, + 35, + 102, + 35, + -108, + 35, + -62, + 35, + -16, + 36, + 31, + 36, + 77, + 36, + 124, + 36, + -85, + 36, + -38, + 37, + 9, + 37, + 56, + 37, + 104, + 37, + -105, + 37, + -57, + 37, + -9, + 38, + 39, + 38, + 87, + 38, + -121, + 38, + -73, + 38, + -24, + 39, + 24, + 39, + 73, + 39, + 122, + 39, + -85, + 39, + -36, + 40, + 13, + 40, + 63, + 40, + 113, + 40, + -94, + 40, + -44, + 41, + 6, + 41, + 56, + 41, + 107, + 41, + -99, + 41, + -48, + 42, + 2, + 42, + 53, + 42, + 104, + 42, + -101, + 42, + -49, + 43, + 2, + 43, + 54, + 43, + 105, + 43, + -99, + 43, + -47, + 44, + 5, + 44, + 57, + 44, + 110, + 44, + -94, + 44, + -41, + 45, + 12, + 45, + 65, + 45, + 118, + 45, + -85, + 45, + -31, + 46, + 22, + 46, + 76, + 46, + -126, + 46, + -73, + 46, + -18, + 47, + 36, + 47, + 90, + 47, + -111, + 47, + -57, + 47, + -2, + 48, + 53, + 48, + 108, + 48, + -92, + 48, + -37, + 49, + 18, + 49, + 74, + 49, + -126, + 49, + -70, + 49, + -14, + 50, + 42, + 50, + 99, + 50, + -101, + 50, + -44, + 51, + 13, + 51, + 70, + 51, + 127, + 51, + -72, + 51, + -15, + 52, + 43, + 52, + 101, + 52, + -98, + 52, + -40, + 53, + 19, + 53, + 77, + 53, + -121, + 53, + -62, + 53, + -3, + 54, + 55, + 54, + 114, + 54, + -82, + 54, + -23, + 55, + 36, + 55, + 96, + 55, + -100, + 55, + -41, + 56, + 20, + 56, + 80, + 56, + -116, + 56, + -56, + 57, + 5, + 57, + 66, + 57, + 127, + 57, + -68, + 57, + -7, + 58, + 54, + 58, + 116, + 58, + -78, + 58, + -17, + 59, + 45, + 59, + 107, + 59, + -86, + 59, + -24, + 60, + 39, + 60, + 101, + 60, + -92, + 60, + -29, + 61, + 34, + 61, + 97, + 61, + -95, + 61, + -32, + 62, + 32, + 62, + 96, + 62, + -96, + 62, + -32, + 63, + 33, + 63, + 97, + 63, + -94, + 63, + -30, + 64, + 35, + 64, + 100, + 64, + -90, + 64, + -25, + 65, + 41, + 65, + 106, + 65, + -84, + 65, + -18, + 66, + 48, + 66, + 114, + 66, + -75, + 66, + -9, + 67, + 58, + 67, + 125, + 67, + -64, + 68, + 3, + 68, + 71, + 68, + -118, + 68, + -50, + 69, + 18, + 69, + 85, + 69, + -102, + 69, + -34, + 70, + 34, + 70, + 103, + 70, + -85, + 70, + -16, + 71, + 53, + 71, + 123, + 71, + -64, + 72, + 5, + 72, + 75, + 72, + -111, + 72, + -41, + 73, + 29, + 73, + 99, + 73, + -87, + 73, + -16, + 74, + 55, + 74, + 125, + 74, + -60, + 75, + 12, + 75, + 83, + 75, + -102, + 75, + -30, + 76, + 42, + 76, + 114, + 76, + -70, + 77, + 2, + 77, + 74, + 77, + -109, + 77, + -36, + 78, + 37, + 78, + 110, + 78, + -73, + 79, + 0, + 79, + 73, + 79, + -109, + 79, + -35, + 80, + 39, + 80, + 113, + 80, + -69, + 81, + 6, + 81, + 80, + 81, + -101, + 81, + -26, + 82, + 49, + 82, + 124, + 82, + -57, + 83, + 19, + 83, + 95, + 83, + -86, + 83, + -10, + 84, + 66, + 84, + -113, + 84, + -37, + 85, + 40, + 85, + 117, + 85, + -62, + 86, + 15, + 86, + 92, + 86, + -87, + 86, + -9, + 87, + 68, + 87, + -110, + 87, + -32, + 88, + 47, + 88, + 125, + 88, + -53, + 89, + 26, + 89, + 105, + 89, + -72, + 90, + 7, + 90, + 86, + 90, + -90, + 90, + -11, + 91, + 69, + 91, + -107, + 91, + -27, + 92, + 53, + 92, + -122, + 92, + -42, + 93, + 39, + 93, + 120, + 93, + -55, + 94, + 26, + 94, + 108, + 94, + -67, + 95, + 15, + 95, + 97, + 95, + -77, + 96, + 5, + 96, + 87, + 96, + -86, + 96, + -4, + 97, + 79, + 97, + -94, + 97, + -11, + 98, + 73, + 98, + -100, + 98, + -16, + 99, + 67, + 99, + -105, + 99, + -21, + 100, + 64, + 100, + -108, + 100, + -23, + 101, + 61, + 101, + -110, + 101, + -25, + 102, + 61, + 102, + -110, + 102, + -24, + 103, + 61, + 103, + -109, + 103, + -23, + 104, + 63, + 104, + -106, + 104, + -20, + 105, + 67, + 105, + -102, + 105, + -15, + 106, + 72, + 106, + -97, + 106, + -9, + 107, + 79, + 107, + -89, + 107, + -1, + 108, + 87, + 108, + -81, + 109, + 8, + 109, + 96, + 109, + -71, + 110, + 18, + 110, + 107, + 110, + -60, + 111, + 30, + 111, + 120, + 111, + -47, + 112, + 43, + 112, + -122, + 112, + -32, + 113, + 58, + 113, + -107, + 113, + -16, + 114, + 75, + 114, + -90, + 115, + 1, + 115, + 93, + 115, + -72, + 116, + 20, + 116, + 112, + 116, + -52, + 117, + 40, + 117, + -123, + 117, + -31, + 118, + 62, + 118, + -101, + 118, + -8, + 119, + 86, + 119, + -77, + 120, + 17, + 120, + 110, + 120, + -52, + 121, + 42, + 121, + -119, + 121, + -25, + 122, + 70, + 122, + -91, + 123, + 4, + 123, + 99, + 123, + -62, + 124, + 33, + 124, + -127, + 124, + -31, + 125, + 65, + 125, + -95, + 126, + 1, + 126, + 98, + 126, + -62, + 127, + 35, + 127, + -124, + 127, + -27, + -128, + 71, + -128, + -88, + -127, + 10, + -127, + 107, + -127, + -51, + -126, + 48, + -126, + -110, + -126, + -12, + -125, + 87, + -125, + -70, + -124, + 29, + -124, + -128, + -124, + -29, + -123, + 71, + -123, + -85, + -122, + 14, + -122, + 114, + -122, + -41, + -121, + 59, + -121, + -97, + -120, + 4, + -120, + 105, + -120, + -50, + -119, + 51, + -119, + -103, + -119, + -2, + -118, + 100, + -118, + -54, + -117, + 48, + -117, + -106, + -117, + -4, + -116, + 99, + -116, + -54, + -115, + 49, + -115, + -104, + -115, + -1, + -114, + 102, + -114, + -50, + -113, + 54, + -113, + -98, + -112, + 6, + -112, + 110, + -112, + -42, + -111, + 63, + -111, + -88, + -110, + 17, + -110, + 122, + -110, + -29, + -109, + 77, + -109, + -74, + -108, + 32, + -108, + -118, + -108, + -12, + -107, + 95, + -107, + -55, + -106, + 52, + -106, + -97, + -105, + 10, + -105, + 117, + -105, + -32, + -104, + 76, + -104, + -72, + -103, + 36, + -103, + -112, + -103, + -4, + -102, + 104, + -102, + -43, + -101, + 66, + -101, + -81, + -100, + 28, + -100, + -119, + -100, + -9, + -99, + 100, + -99, + -46, + -98, + 64, + -98, + -82, + -97, + 29, + -97, + -117, + -97, + -6, + -96, + 105, + -96, + -40, + -95, + 71, + -95, + -74, + -94, + 38, + -94, + -106, + -93, + 6, + -93, + 118, + -93, + -26, + -92, + 86, + -92, + -57, + -91, + 56, + -91, + -87, + -90, + 26, + -90, + -117, + -90, + -3, + -89, + 110, + -89, + -32, + -88, + 82, + -88, + -60, + -87, + 55, + -87, + -87, + -86, + 28, + -86, + -113, + -85, + 2, + -85, + 117, + -85, + -23, + -84, + 92, + -84, + -48, + -83, + 68, + -83, + -72, + -82, + 45, + -82, + -95, + -81, + 22, + -81, + -117, + -80, + 0, + -80, + 117, + -80, + -22, + -79, + 96, + -79, + -42, + -78, + 75, + -78, + -62, + -77, + 56, + -77, + -82, + -76, + 37, + -76, + -100, + -75, + 19, + -75, + -118, + -74, + 1, + -74, + 121, + -74, + -16, + -73, + 104, + -73, + -32, + -72, + 89, + -72, + -47, + -71, + 74, + -71, + -62, + -70, + 59, + -70, + -75, + -69, + 46, + -69, + -89, + -68, + 33, + -68, + -101, + -67, + 21, + -67, + -113, + -66, + 10, + -66, + -124, + -66, + -1, + -65, + 122, + -65, + -11, + -64, + 112, + -64, + -20, + -63, + 103, + -63, + -29, + -62, + 95, + -62, + -37, + -61, + 88, + -61, + -44, + -60, + 81, + -60, + -50, + -59, + 75, + -59, + -56, + -58, + 70, + -58, + -61, + -57, + 65, + -57, + -65, + -56, + 61, + -56, + -68, + -55, + 58, + -55, + -71, + -54, + 56, + -54, + -73, + -53, + 54, + -53, + -74, + -52, + 53, + -52, + -75, + -51, + 53, + -51, + -75, + -50, + 54, + -50, + -74, + -49, + 55, + -49, + -72, + -48, + 57, + -48, + -70, + -47, + 60, + -47, + -66, + -46, + 63, + -46, + -63, + -45, + 68, + -45, + -58, + -44, + 73, + -44, + -53, + -43, + 78, + -43, + -47, + -42, + 85, + -42, + -40, + -41, + 92, + -41, + -32, + -40, + 100, + -40, + -24, + -39, + 108, + -39, + -15, + -38, + 118, + -38, + -5, + -37, + -128, + -36, + 5, + -36, + -118, + -35, + 16, + -35, + -106, + -34, + 28, + -34, + -94, + -33, + 41, + -33, + -81, + -32, + 54, + -32, + -67, + -31, + 68, + -31, + -52, + -30, + 83, + -30, + -37, + -29, + 99, + -29, + -21, + -28, + 115, + -28, + -4, + -27, + -124, + -26, + 13, + -26, + -106, + -25, + 31, + -25, + -87, + -24, + 50, + -24, + -68, + -23, + 70, + -23, + -48, + -22, + 91, + -22, + -27, + -21, + 112, + -21, + -5, + -20, + -122, + -19, + 17, + -19, + -100, + -18, + 40, + -18, + -76, + -17, + 64, + -17, + -52, + -16, + 88, + -16, + -27, + -15, + 114, + -15, + -1, + -14, + -116, + -13, + 25, + -13, + -89, + -12, + 52, + -12, + -62, + -11, + 80, + -11, + -34, + -10, + 109, + -10, + -5, + -9, + -118, + -8, + 25, + -8, + -88, + -7, + 56, + -7, + -57, + -6, + 87, + -6, + -25, + -5, + 119, + -4, + 7, + -4, + -104, + -3, + 41, + -3, + -70, + -2, + 75, + -2, + -36, + -1, + 109, + -1, + -1, + 99, + 104, + 114, + 109, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + -93, + -41, + 0, + 0, + 84, + 123, + 0, + 0, + 76, + -51, + 0, + 0, + -103, + -102, + 0, + 0, + 38, + 102, + 0, + 0, + 15, + 92 + ], + "majorVersion":2, + "matrix":[ + [ + 0.43585205, + 0.3853302, + 0.14302063 + ], + [ + 0.22238159, + 0.717041, + 0.06059265 + ], + [ + 0.013916016, + 0.09713745, + 0.71383667 + ] + ], + "mediaWhitePoint":[ + 0.95014954, + 1.0, + 1.0882568 + ], + "minorVersion":48, + "numComponents":3, + "profileClass":1 + }, + "type":5 + }, + "green":88, + "red":255, + "transparency":1 + }, + "nextLessonColorB":79, + "nextLessonColorG":88, + "nextLessonColorR":255, + "noticeFontSize":23, + "noticeHeight":350, + "noticeWeight":250, + "pastLessonColor":{ + "RGB":-7014275, + "alpha":255, + "blue":125, + "colorSpace":{ + "CS_sRGB":true, + "numComponents":3, + "profile":{ + "PCSType":0, + "colorSpaceType":5, + "data":[ + 0, + 0, + 26, + -36, + 108, + 99, + 109, + 115, + 2, + 48, + 0, + 0, + 109, + 110, + 116, + 114, + 82, + 71, + 66, + 32, + 88, + 89, + 90, + 32, + 7, + -42, + 0, + 12, + 0, + 28, + 0, + 18, + 0, + 7, + 0, + 22, + 97, + 99, + 115, + 112, + 77, + 83, + 70, + 84, + 0, + 0, + 0, + 0, + 108, + 99, + 109, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10, + -42, + 0, + 1, + 0, + 0, + 0, + 0, + -45, + 45, + 108, + 99, + 109, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11, + 100, + 109, + 110, + 100, + 0, + 0, + 1, + 8, + 0, + 0, + 0, + 106, + 100, + 101, + 115, + 99, + 0, + 0, + 1, + 116, + 0, + 0, + 0, + 104, + 100, + 109, + 100, + 100, + 0, + 0, + 1, + -36, + 0, + 0, + 0, + 104, + 119, + 116, + 112, + 116, + 0, + 0, + 2, + 68, + 0, + 0, + 0, + 20, + 114, + 88, + 89, + 90, + 0, + 0, + 2, + 88, + 0, + 0, + 0, + 20, + 98, + 88, + 89, + 90, + 0, + 0, + 2, + 108, + 0, + 0, + 0, + 20, + 103, + 88, + 89, + 90, + 0, + 0, + 2, + -128, + 0, + 0, + 0, + 20, + 114, + 84, + 82, + 67, + 0, + 0, + 2, + -108, + 0, + 0, + 8, + 12, + 103, + 84, + 82, + 67, + 0, + 0, + 10, + -96, + 0, + 0, + 8, + 12, + 98, + 84, + 82, + 67, + 0, + 0, + 18, + -84, + 0, + 0, + 8, + 12, + 99, + 104, + 114, + 109, + 0, + 0, + 26, + -72, + 0, + 0, + 0, + 36, + 100, + 101, + 115, + 99, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16, + 40, + 108, + 99, + 109, + 115, + 32, + 105, + 110, + 116, + 101, + 114, + 110, + 97, + 108, + 41, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 100, + 101, + 115, + 99, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14, + 115, + 82, + 71, + 66, + 32, + 98, + 117, + 105, + 108, + 116, + 45, + 105, + 110, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 100, + 101, + 115, + 99, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14, + 115, + 82, + 71, + 66, + 32, + 98, + 117, + 105, + 108, + 116, + 45, + 105, + 110, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + -13, + 61, + 0, + 1, + 0, + 0, + 0, + 1, + 22, + -104, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 111, + -108, + 0, + 0, + 56, + -18, + 0, + 0, + 3, + -112, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 36, + -99, + 0, + 0, + 15, + -125, + 0, + 0, + -74, + -66, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 98, + -91, + 0, + 0, + -73, + -112, + 0, + 0, + 24, + -34, + 99, + 117, + 114, + 118, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 5, + 0, + 10, + 0, + 15, + 0, + 20, + 0, + 25, + 0, + 30, + 0, + 35, + 0, + 40, + 0, + 45, + 0, + 50, + 0, + 55, + 0, + 59, + 0, + 64, + 0, + 69, + 0, + 74, + 0, + 79, + 0, + 84, + 0, + 89, + 0, + 94, + 0, + 99, + 0, + 104, + 0, + 109, + 0, + 114, + 0, + 119, + 0, + 124, + 0, + -127, + 0, + -122, + 0, + -117, + 0, + -112, + 0, + -107, + 0, + -102, + 0, + -97, + 0, + -92, + 0, + -87, + 0, + -82, + 0, + -78, + 0, + -73, + 0, + -68, + 0, + -63, + 0, + -58, + 0, + -53, + 0, + -48, + 0, + -43, + 0, + -37, + 0, + -32, + 0, + -27, + 0, + -21, + 0, + -16, + 0, + -10, + 0, + -5, + 1, + 1, + 1, + 7, + 1, + 13, + 1, + 19, + 1, + 25, + 1, + 31, + 1, + 37, + 1, + 43, + 1, + 50, + 1, + 56, + 1, + 62, + 1, + 69, + 1, + 76, + 1, + 82, + 1, + 89, + 1, + 96, + 1, + 103, + 1, + 110, + 1, + 117, + 1, + 124, + 1, + -125, + 1, + -117, + 1, + -110, + 1, + -102, + 1, + -95, + 1, + -87, + 1, + -79, + 1, + -71, + 1, + -63, + 1, + -55, + 1, + -47, + 1, + -39, + 1, + -31, + 1, + -23, + 1, + -14, + 1, + -6, + 2, + 3, + 2, + 12, + 2, + 20, + 2, + 29, + 2, + 38, + 2, + 47, + 2, + 56, + 2, + 65, + 2, + 75, + 2, + 84, + 2, + 93, + 2, + 103, + 2, + 113, + 2, + 122, + 2, + -124, + 2, + -114, + 2, + -104, + 2, + -94, + 2, + -84, + 2, + -74, + 2, + -63, + 2, + -53, + 2, + -43, + 2, + -32, + 2, + -21, + 2, + -11, + 3, + 0, + 3, + 11, + 3, + 22, + 3, + 33, + 3, + 45, + 3, + 56, + 3, + 67, + 3, + 79, + 3, + 90, + 3, + 102, + 3, + 114, + 3, + 126, + 3, + -118, + 3, + -106, + 3, + -94, + 3, + -82, + 3, + -70, + 3, + -57, + 3, + -45, + 3, + -32, + 3, + -20, + 3, + -7, + 4, + 6, + 4, + 19, + 4, + 32, + 4, + 45, + 4, + 59, + 4, + 72, + 4, + 85, + 4, + 99, + 4, + 113, + 4, + 126, + 4, + -116, + 4, + -102, + 4, + -88, + 4, + -74, + 4, + -60, + 4, + -45, + 4, + -31, + 4, + -16, + 4, + -2, + 5, + 13, + 5, + 28, + 5, + 43, + 5, + 58, + 5, + 73, + 5, + 88, + 5, + 103, + 5, + 119, + 5, + -122, + 5, + -106, + 5, + -90, + 5, + -75, + 5, + -59, + 5, + -43, + 5, + -27, + 5, + -10, + 6, + 6, + 6, + 22, + 6, + 39, + 6, + 55, + 6, + 72, + 6, + 89, + 6, + 106, + 6, + 123, + 6, + -116, + 6, + -99, + 6, + -81, + 6, + -64, + 6, + -47, + 6, + -29, + 6, + -11, + 7, + 7, + 7, + 25, + 7, + 43, + 7, + 61, + 7, + 79, + 7, + 97, + 7, + 116, + 7, + -122, + 7, + -103, + 7, + -84, + 7, + -65, + 7, + -46, + 7, + -27, + 7, + -8, + 8, + 11, + 8, + 31, + 8, + 50, + 8, + 70, + 8, + 90, + 8, + 110, + 8, + -126, + 8, + -106, + 8, + -86, + 8, + -66, + 8, + -46, + 8, + -25, + 8, + -5, + 9, + 16, + 9, + 37, + 9, + 58, + 9, + 79, + 9, + 100, + 9, + 121, + 9, + -113, + 9, + -92, + 9, + -70, + 9, + -49, + 9, + -27, + 9, + -5, + 10, + 17, + 10, + 39, + 10, + 61, + 10, + 84, + 10, + 106, + 10, + -127, + 10, + -104, + 10, + -82, + 10, + -59, + 10, + -36, + 10, + -13, + 11, + 11, + 11, + 34, + 11, + 57, + 11, + 81, + 11, + 105, + 11, + -128, + 11, + -104, + 11, + -80, + 11, + -56, + 11, + -31, + 11, + -7, + 12, + 18, + 12, + 42, + 12, + 67, + 12, + 92, + 12, + 117, + 12, + -114, + 12, + -89, + 12, + -64, + 12, + -39, + 12, + -13, + 13, + 13, + 13, + 38, + 13, + 64, + 13, + 90, + 13, + 116, + 13, + -114, + 13, + -87, + 13, + -61, + 13, + -34, + 13, + -8, + 14, + 19, + 14, + 46, + 14, + 73, + 14, + 100, + 14, + 127, + 14, + -101, + 14, + -74, + 14, + -46, + 14, + -18, + 15, + 9, + 15, + 37, + 15, + 65, + 15, + 94, + 15, + 122, + 15, + -106, + 15, + -77, + 15, + -49, + 15, + -20, + 16, + 9, + 16, + 38, + 16, + 67, + 16, + 97, + 16, + 126, + 16, + -101, + 16, + -71, + 16, + -41, + 16, + -11, + 17, + 19, + 17, + 49, + 17, + 79, + 17, + 109, + 17, + -116, + 17, + -86, + 17, + -55, + 17, + -24, + 18, + 7, + 18, + 38, + 18, + 69, + 18, + 100, + 18, + -124, + 18, + -93, + 18, + -61, + 18, + -29, + 19, + 3, + 19, + 35, + 19, + 67, + 19, + 99, + 19, + -125, + 19, + -92, + 19, + -59, + 19, + -27, + 20, + 6, + 20, + 39, + 20, + 73, + 20, + 106, + 20, + -117, + 20, + -83, + 20, + -50, + 20, + -16, + 21, + 18, + 21, + 52, + 21, + 86, + 21, + 120, + 21, + -101, + 21, + -67, + 21, + -32, + 22, + 3, + 22, + 38, + 22, + 73, + 22, + 108, + 22, + -113, + 22, + -78, + 22, + -42, + 22, + -6, + 23, + 29, + 23, + 65, + 23, + 101, + 23, + -119, + 23, + -82, + 23, + -46, + 23, + -9, + 24, + 27, + 24, + 64, + 24, + 101, + 24, + -118, + 24, + -81, + 24, + -43, + 24, + -6, + 25, + 32, + 25, + 69, + 25, + 107, + 25, + -111, + 25, + -73, + 25, + -35, + 26, + 4, + 26, + 42, + 26, + 81, + 26, + 119, + 26, + -98, + 26, + -59, + 26, + -20, + 27, + 20, + 27, + 59, + 27, + 99, + 27, + -118, + 27, + -78, + 27, + -38, + 28, + 2, + 28, + 42, + 28, + 82, + 28, + 123, + 28, + -93, + 28, + -52, + 28, + -11, + 29, + 30, + 29, + 71, + 29, + 112, + 29, + -103, + 29, + -61, + 29, + -20, + 30, + 22, + 30, + 64, + 30, + 106, + 30, + -108, + 30, + -66, + 30, + -23, + 31, + 19, + 31, + 62, + 31, + 105, + 31, + -108, + 31, + -65, + 31, + -22, + 32, + 21, + 32, + 65, + 32, + 108, + 32, + -104, + 32, + -60, + 32, + -16, + 33, + 28, + 33, + 72, + 33, + 117, + 33, + -95, + 33, + -50, + 33, + -5, + 34, + 39, + 34, + 85, + 34, + -126, + 34, + -81, + 34, + -35, + 35, + 10, + 35, + 56, + 35, + 102, + 35, + -108, + 35, + -62, + 35, + -16, + 36, + 31, + 36, + 77, + 36, + 124, + 36, + -85, + 36, + -38, + 37, + 9, + 37, + 56, + 37, + 104, + 37, + -105, + 37, + -57, + 37, + -9, + 38, + 39, + 38, + 87, + 38, + -121, + 38, + -73, + 38, + -24, + 39, + 24, + 39, + 73, + 39, + 122, + 39, + -85, + 39, + -36, + 40, + 13, + 40, + 63, + 40, + 113, + 40, + -94, + 40, + -44, + 41, + 6, + 41, + 56, + 41, + 107, + 41, + -99, + 41, + -48, + 42, + 2, + 42, + 53, + 42, + 104, + 42, + -101, + 42, + -49, + 43, + 2, + 43, + 54, + 43, + 105, + 43, + -99, + 43, + -47, + 44, + 5, + 44, + 57, + 44, + 110, + 44, + -94, + 44, + -41, + 45, + 12, + 45, + 65, + 45, + 118, + 45, + -85, + 45, + -31, + 46, + 22, + 46, + 76, + 46, + -126, + 46, + -73, + 46, + -18, + 47, + 36, + 47, + 90, + 47, + -111, + 47, + -57, + 47, + -2, + 48, + 53, + 48, + 108, + 48, + -92, + 48, + -37, + 49, + 18, + 49, + 74, + 49, + -126, + 49, + -70, + 49, + -14, + 50, + 42, + 50, + 99, + 50, + -101, + 50, + -44, + 51, + 13, + 51, + 70, + 51, + 127, + 51, + -72, + 51, + -15, + 52, + 43, + 52, + 101, + 52, + -98, + 52, + -40, + 53, + 19, + 53, + 77, + 53, + -121, + 53, + -62, + 53, + -3, + 54, + 55, + 54, + 114, + 54, + -82, + 54, + -23, + 55, + 36, + 55, + 96, + 55, + -100, + 55, + -41, + 56, + 20, + 56, + 80, + 56, + -116, + 56, + -56, + 57, + 5, + 57, + 66, + 57, + 127, + 57, + -68, + 57, + -7, + 58, + 54, + 58, + 116, + 58, + -78, + 58, + -17, + 59, + 45, + 59, + 107, + 59, + -86, + 59, + -24, + 60, + 39, + 60, + 101, + 60, + -92, + 60, + -29, + 61, + 34, + 61, + 97, + 61, + -95, + 61, + -32, + 62, + 32, + 62, + 96, + 62, + -96, + 62, + -32, + 63, + 33, + 63, + 97, + 63, + -94, + 63, + -30, + 64, + 35, + 64, + 100, + 64, + -90, + 64, + -25, + 65, + 41, + 65, + 106, + 65, + -84, + 65, + -18, + 66, + 48, + 66, + 114, + 66, + -75, + 66, + -9, + 67, + 58, + 67, + 125, + 67, + -64, + 68, + 3, + 68, + 71, + 68, + -118, + 68, + -50, + 69, + 18, + 69, + 85, + 69, + -102, + 69, + -34, + 70, + 34, + 70, + 103, + 70, + -85, + 70, + -16, + 71, + 53, + 71, + 123, + 71, + -64, + 72, + 5, + 72, + 75, + 72, + -111, + 72, + -41, + 73, + 29, + 73, + 99, + 73, + -87, + 73, + -16, + 74, + 55, + 74, + 125, + 74, + -60, + 75, + 12, + 75, + 83, + 75, + -102, + 75, + -30, + 76, + 42, + 76, + 114, + 76, + -70, + 77, + 2, + 77, + 74, + 77, + -109, + 77, + -36, + 78, + 37, + 78, + 110, + 78, + -73, + 79, + 0, + 79, + 73, + 79, + -109, + 79, + -35, + 80, + 39, + 80, + 113, + 80, + -69, + 81, + 6, + 81, + 80, + 81, + -101, + 81, + -26, + 82, + 49, + 82, + 124, + 82, + -57, + 83, + 19, + 83, + 95, + 83, + -86, + 83, + -10, + 84, + 66, + 84, + -113, + 84, + -37, + 85, + 40, + 85, + 117, + 85, + -62, + 86, + 15, + 86, + 92, + 86, + -87, + 86, + -9, + 87, + 68, + 87, + -110, + 87, + -32, + 88, + 47, + 88, + 125, + 88, + -53, + 89, + 26, + 89, + 105, + 89, + -72, + 90, + 7, + 90, + 86, + 90, + -90, + 90, + -11, + 91, + 69, + 91, + -107, + 91, + -27, + 92, + 53, + 92, + -122, + 92, + -42, + 93, + 39, + 93, + 120, + 93, + -55, + 94, + 26, + 94, + 108, + 94, + -67, + 95, + 15, + 95, + 97, + 95, + -77, + 96, + 5, + 96, + 87, + 96, + -86, + 96, + -4, + 97, + 79, + 97, + -94, + 97, + -11, + 98, + 73, + 98, + -100, + 98, + -16, + 99, + 67, + 99, + -105, + 99, + -21, + 100, + 64, + 100, + -108, + 100, + -23, + 101, + 61, + 101, + -110, + 101, + -25, + 102, + 61, + 102, + -110, + 102, + -24, + 103, + 61, + 103, + -109, + 103, + -23, + 104, + 63, + 104, + -106, + 104, + -20, + 105, + 67, + 105, + -102, + 105, + -15, + 106, + 72, + 106, + -97, + 106, + -9, + 107, + 79, + 107, + -89, + 107, + -1, + 108, + 87, + 108, + -81, + 109, + 8, + 109, + 96, + 109, + -71, + 110, + 18, + 110, + 107, + 110, + -60, + 111, + 30, + 111, + 120, + 111, + -47, + 112, + 43, + 112, + -122, + 112, + -32, + 113, + 58, + 113, + -107, + 113, + -16, + 114, + 75, + 114, + -90, + 115, + 1, + 115, + 93, + 115, + -72, + 116, + 20, + 116, + 112, + 116, + -52, + 117, + 40, + 117, + -123, + 117, + -31, + 118, + 62, + 118, + -101, + 118, + -8, + 119, + 86, + 119, + -77, + 120, + 17, + 120, + 110, + 120, + -52, + 121, + 42, + 121, + -119, + 121, + -25, + 122, + 70, + 122, + -91, + 123, + 4, + 123, + 99, + 123, + -62, + 124, + 33, + 124, + -127, + 124, + -31, + 125, + 65, + 125, + -95, + 126, + 1, + 126, + 98, + 126, + -62, + 127, + 35, + 127, + -124, + 127, + -27, + -128, + 71, + -128, + -88, + -127, + 10, + -127, + 107, + -127, + -51, + -126, + 48, + -126, + -110, + -126, + -12, + -125, + 87, + -125, + -70, + -124, + 29, + -124, + -128, + -124, + -29, + -123, + 71, + -123, + -85, + -122, + 14, + -122, + 114, + -122, + -41, + -121, + 59, + -121, + -97, + -120, + 4, + -120, + 105, + -120, + -50, + -119, + 51, + -119, + -103, + -119, + -2, + -118, + 100, + -118, + -54, + -117, + 48, + -117, + -106, + -117, + -4, + -116, + 99, + -116, + -54, + -115, + 49, + -115, + -104, + -115, + -1, + -114, + 102, + -114, + -50, + -113, + 54, + -113, + -98, + -112, + 6, + -112, + 110, + -112, + -42, + -111, + 63, + -111, + -88, + -110, + 17, + -110, + 122, + -110, + -29, + -109, + 77, + -109, + -74, + -108, + 32, + -108, + -118, + -108, + -12, + -107, + 95, + -107, + -55, + -106, + 52, + -106, + -97, + -105, + 10, + -105, + 117, + -105, + -32, + -104, + 76, + -104, + -72, + -103, + 36, + -103, + -112, + -103, + -4, + -102, + 104, + -102, + -43, + -101, + 66, + -101, + -81, + -100, + 28, + -100, + -119, + -100, + -9, + -99, + 100, + -99, + -46, + -98, + 64, + -98, + -82, + -97, + 29, + -97, + -117, + -97, + -6, + -96, + 105, + -96, + -40, + -95, + 71, + -95, + -74, + -94, + 38, + -94, + -106, + -93, + 6, + -93, + 118, + -93, + -26, + -92, + 86, + -92, + -57, + -91, + 56, + -91, + -87, + -90, + 26, + -90, + -117, + -90, + -3, + -89, + 110, + -89, + -32, + -88, + 82, + -88, + -60, + -87, + 55, + -87, + -87, + -86, + 28, + -86, + -113, + -85, + 2, + -85, + 117, + -85, + -23, + -84, + 92, + -84, + -48, + -83, + 68, + -83, + -72, + -82, + 45, + -82, + -95, + -81, + 22, + -81, + -117, + -80, + 0, + -80, + 117, + -80, + -22, + -79, + 96, + -79, + -42, + -78, + 75, + -78, + -62, + -77, + 56, + -77, + -82, + -76, + 37, + -76, + -100, + -75, + 19, + -75, + -118, + -74, + 1, + -74, + 121, + -74, + -16, + -73, + 104, + -73, + -32, + -72, + 89, + -72, + -47, + -71, + 74, + -71, + -62, + -70, + 59, + -70, + -75, + -69, + 46, + -69, + -89, + -68, + 33, + -68, + -101, + -67, + 21, + -67, + -113, + -66, + 10, + -66, + -124, + -66, + -1, + -65, + 122, + -65, + -11, + -64, + 112, + -64, + -20, + -63, + 103, + -63, + -29, + -62, + 95, + -62, + -37, + -61, + 88, + -61, + -44, + -60, + 81, + -60, + -50, + -59, + 75, + -59, + -56, + -58, + 70, + -58, + -61, + -57, + 65, + -57, + -65, + -56, + 61, + -56, + -68, + -55, + 58, + -55, + -71, + -54, + 56, + -54, + -73, + -53, + 54, + -53, + -74, + -52, + 53, + -52, + -75, + -51, + 53, + -51, + -75, + -50, + 54, + -50, + -74, + -49, + 55, + -49, + -72, + -48, + 57, + -48, + -70, + -47, + 60, + -47, + -66, + -46, + 63, + -46, + -63, + -45, + 68, + -45, + -58, + -44, + 73, + -44, + -53, + -43, + 78, + -43, + -47, + -42, + 85, + -42, + -40, + -41, + 92, + -41, + -32, + -40, + 100, + -40, + -24, + -39, + 108, + -39, + -15, + -38, + 118, + -38, + -5, + -37, + -128, + -36, + 5, + -36, + -118, + -35, + 16, + -35, + -106, + -34, + 28, + -34, + -94, + -33, + 41, + -33, + -81, + -32, + 54, + -32, + -67, + -31, + 68, + -31, + -52, + -30, + 83, + -30, + -37, + -29, + 99, + -29, + -21, + -28, + 115, + -28, + -4, + -27, + -124, + -26, + 13, + -26, + -106, + -25, + 31, + -25, + -87, + -24, + 50, + -24, + -68, + -23, + 70, + -23, + -48, + -22, + 91, + -22, + -27, + -21, + 112, + -21, + -5, + -20, + -122, + -19, + 17, + -19, + -100, + -18, + 40, + -18, + -76, + -17, + 64, + -17, + -52, + -16, + 88, + -16, + -27, + -15, + 114, + -15, + -1, + -14, + -116, + -13, + 25, + -13, + -89, + -12, + 52, + -12, + -62, + -11, + 80, + -11, + -34, + -10, + 109, + -10, + -5, + -9, + -118, + -8, + 25, + -8, + -88, + -7, + 56, + -7, + -57, + -6, + 87, + -6, + -25, + -5, + 119, + -4, + 7, + -4, + -104, + -3, + 41, + -3, + -70, + -2, + 75, + -2, + -36, + -1, + 109, + -1, + -1, + 99, + 117, + 114, + 118, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 5, + 0, + 10, + 0, + 15, + 0, + 20, + 0, + 25, + 0, + 30, + 0, + 35, + 0, + 40, + 0, + 45, + 0, + 50, + 0, + 55, + 0, + 59, + 0, + 64, + 0, + 69, + 0, + 74, + 0, + 79, + 0, + 84, + 0, + 89, + 0, + 94, + 0, + 99, + 0, + 104, + 0, + 109, + 0, + 114, + 0, + 119, + 0, + 124, + 0, + -127, + 0, + -122, + 0, + -117, + 0, + -112, + 0, + -107, + 0, + -102, + 0, + -97, + 0, + -92, + 0, + -87, + 0, + -82, + 0, + -78, + 0, + -73, + 0, + -68, + 0, + -63, + 0, + -58, + 0, + -53, + 0, + -48, + 0, + -43, + 0, + -37, + 0, + -32, + 0, + -27, + 0, + -21, + 0, + -16, + 0, + -10, + 0, + -5, + 1, + 1, + 1, + 7, + 1, + 13, + 1, + 19, + 1, + 25, + 1, + 31, + 1, + 37, + 1, + 43, + 1, + 50, + 1, + 56, + 1, + 62, + 1, + 69, + 1, + 76, + 1, + 82, + 1, + 89, + 1, + 96, + 1, + 103, + 1, + 110, + 1, + 117, + 1, + 124, + 1, + -125, + 1, + -117, + 1, + -110, + 1, + -102, + 1, + -95, + 1, + -87, + 1, + -79, + 1, + -71, + 1, + -63, + 1, + -55, + 1, + -47, + 1, + -39, + 1, + -31, + 1, + -23, + 1, + -14, + 1, + -6, + 2, + 3, + 2, + 12, + 2, + 20, + 2, + 29, + 2, + 38, + 2, + 47, + 2, + 56, + 2, + 65, + 2, + 75, + 2, + 84, + 2, + 93, + 2, + 103, + 2, + 113, + 2, + 122, + 2, + -124, + 2, + -114, + 2, + -104, + 2, + -94, + 2, + -84, + 2, + -74, + 2, + -63, + 2, + -53, + 2, + -43, + 2, + -32, + 2, + -21, + 2, + -11, + 3, + 0, + 3, + 11, + 3, + 22, + 3, + 33, + 3, + 45, + 3, + 56, + 3, + 67, + 3, + 79, + 3, + 90, + 3, + 102, + 3, + 114, + 3, + 126, + 3, + -118, + 3, + -106, + 3, + -94, + 3, + -82, + 3, + -70, + 3, + -57, + 3, + -45, + 3, + -32, + 3, + -20, + 3, + -7, + 4, + 6, + 4, + 19, + 4, + 32, + 4, + 45, + 4, + 59, + 4, + 72, + 4, + 85, + 4, + 99, + 4, + 113, + 4, + 126, + 4, + -116, + 4, + -102, + 4, + -88, + 4, + -74, + 4, + -60, + 4, + -45, + 4, + -31, + 4, + -16, + 4, + -2, + 5, + 13, + 5, + 28, + 5, + 43, + 5, + 58, + 5, + 73, + 5, + 88, + 5, + 103, + 5, + 119, + 5, + -122, + 5, + -106, + 5, + -90, + 5, + -75, + 5, + -59, + 5, + -43, + 5, + -27, + 5, + -10, + 6, + 6, + 6, + 22, + 6, + 39, + 6, + 55, + 6, + 72, + 6, + 89, + 6, + 106, + 6, + 123, + 6, + -116, + 6, + -99, + 6, + -81, + 6, + -64, + 6, + -47, + 6, + -29, + 6, + -11, + 7, + 7, + 7, + 25, + 7, + 43, + 7, + 61, + 7, + 79, + 7, + 97, + 7, + 116, + 7, + -122, + 7, + -103, + 7, + -84, + 7, + -65, + 7, + -46, + 7, + -27, + 7, + -8, + 8, + 11, + 8, + 31, + 8, + 50, + 8, + 70, + 8, + 90, + 8, + 110, + 8, + -126, + 8, + -106, + 8, + -86, + 8, + -66, + 8, + -46, + 8, + -25, + 8, + -5, + 9, + 16, + 9, + 37, + 9, + 58, + 9, + 79, + 9, + 100, + 9, + 121, + 9, + -113, + 9, + -92, + 9, + -70, + 9, + -49, + 9, + -27, + 9, + -5, + 10, + 17, + 10, + 39, + 10, + 61, + 10, + 84, + 10, + 106, + 10, + -127, + 10, + -104, + 10, + -82, + 10, + -59, + 10, + -36, + 10, + -13, + 11, + 11, + 11, + 34, + 11, + 57, + 11, + 81, + 11, + 105, + 11, + -128, + 11, + -104, + 11, + -80, + 11, + -56, + 11, + -31, + 11, + -7, + 12, + 18, + 12, + 42, + 12, + 67, + 12, + 92, + 12, + 117, + 12, + -114, + 12, + -89, + 12, + -64, + 12, + -39, + 12, + -13, + 13, + 13, + 13, + 38, + 13, + 64, + 13, + 90, + 13, + 116, + 13, + -114, + 13, + -87, + 13, + -61, + 13, + -34, + 13, + -8, + 14, + 19, + 14, + 46, + 14, + 73, + 14, + 100, + 14, + 127, + 14, + -101, + 14, + -74, + 14, + -46, + 14, + -18, + 15, + 9, + 15, + 37, + 15, + 65, + 15, + 94, + 15, + 122, + 15, + -106, + 15, + -77, + 15, + -49, + 15, + -20, + 16, + 9, + 16, + 38, + 16, + 67, + 16, + 97, + 16, + 126, + 16, + -101, + 16, + -71, + 16, + -41, + 16, + -11, + 17, + 19, + 17, + 49, + 17, + 79, + 17, + 109, + 17, + -116, + 17, + -86, + 17, + -55, + 17, + -24, + 18, + 7, + 18, + 38, + 18, + 69, + 18, + 100, + 18, + -124, + 18, + -93, + 18, + -61, + 18, + -29, + 19, + 3, + 19, + 35, + 19, + 67, + 19, + 99, + 19, + -125, + 19, + -92, + 19, + -59, + 19, + -27, + 20, + 6, + 20, + 39, + 20, + 73, + 20, + 106, + 20, + -117, + 20, + -83, + 20, + -50, + 20, + -16, + 21, + 18, + 21, + 52, + 21, + 86, + 21, + 120, + 21, + -101, + 21, + -67, + 21, + -32, + 22, + 3, + 22, + 38, + 22, + 73, + 22, + 108, + 22, + -113, + 22, + -78, + 22, + -42, + 22, + -6, + 23, + 29, + 23, + 65, + 23, + 101, + 23, + -119, + 23, + -82, + 23, + -46, + 23, + -9, + 24, + 27, + 24, + 64, + 24, + 101, + 24, + -118, + 24, + -81, + 24, + -43, + 24, + -6, + 25, + 32, + 25, + 69, + 25, + 107, + 25, + -111, + 25, + -73, + 25, + -35, + 26, + 4, + 26, + 42, + 26, + 81, + 26, + 119, + 26, + -98, + 26, + -59, + 26, + -20, + 27, + 20, + 27, + 59, + 27, + 99, + 27, + -118, + 27, + -78, + 27, + -38, + 28, + 2, + 28, + 42, + 28, + 82, + 28, + 123, + 28, + -93, + 28, + -52, + 28, + -11, + 29, + 30, + 29, + 71, + 29, + 112, + 29, + -103, + 29, + -61, + 29, + -20, + 30, + 22, + 30, + 64, + 30, + 106, + 30, + -108, + 30, + -66, + 30, + -23, + 31, + 19, + 31, + 62, + 31, + 105, + 31, + -108, + 31, + -65, + 31, + -22, + 32, + 21, + 32, + 65, + 32, + 108, + 32, + -104, + 32, + -60, + 32, + -16, + 33, + 28, + 33, + 72, + 33, + 117, + 33, + -95, + 33, + -50, + 33, + -5, + 34, + 39, + 34, + 85, + 34, + -126, + 34, + -81, + 34, + -35, + 35, + 10, + 35, + 56, + 35, + 102, + 35, + -108, + 35, + -62, + 35, + -16, + 36, + 31, + 36, + 77, + 36, + 124, + 36, + -85, + 36, + -38, + 37, + 9, + 37, + 56, + 37, + 104, + 37, + -105, + 37, + -57, + 37, + -9, + 38, + 39, + 38, + 87, + 38, + -121, + 38, + -73, + 38, + -24, + 39, + 24, + 39, + 73, + 39, + 122, + 39, + -85, + 39, + -36, + 40, + 13, + 40, + 63, + 40, + 113, + 40, + -94, + 40, + -44, + 41, + 6, + 41, + 56, + 41, + 107, + 41, + -99, + 41, + -48, + 42, + 2, + 42, + 53, + 42, + 104, + 42, + -101, + 42, + -49, + 43, + 2, + 43, + 54, + 43, + 105, + 43, + -99, + 43, + -47, + 44, + 5, + 44, + 57, + 44, + 110, + 44, + -94, + 44, + -41, + 45, + 12, + 45, + 65, + 45, + 118, + 45, + -85, + 45, + -31, + 46, + 22, + 46, + 76, + 46, + -126, + 46, + -73, + 46, + -18, + 47, + 36, + 47, + 90, + 47, + -111, + 47, + -57, + 47, + -2, + 48, + 53, + 48, + 108, + 48, + -92, + 48, + -37, + 49, + 18, + 49, + 74, + 49, + -126, + 49, + -70, + 49, + -14, + 50, + 42, + 50, + 99, + 50, + -101, + 50, + -44, + 51, + 13, + 51, + 70, + 51, + 127, + 51, + -72, + 51, + -15, + 52, + 43, + 52, + 101, + 52, + -98, + 52, + -40, + 53, + 19, + 53, + 77, + 53, + -121, + 53, + -62, + 53, + -3, + 54, + 55, + 54, + 114, + 54, + -82, + 54, + -23, + 55, + 36, + 55, + 96, + 55, + -100, + 55, + -41, + 56, + 20, + 56, + 80, + 56, + -116, + 56, + -56, + 57, + 5, + 57, + 66, + 57, + 127, + 57, + -68, + 57, + -7, + 58, + 54, + 58, + 116, + 58, + -78, + 58, + -17, + 59, + 45, + 59, + 107, + 59, + -86, + 59, + -24, + 60, + 39, + 60, + 101, + 60, + -92, + 60, + -29, + 61, + 34, + 61, + 97, + 61, + -95, + 61, + -32, + 62, + 32, + 62, + 96, + 62, + -96, + 62, + -32, + 63, + 33, + 63, + 97, + 63, + -94, + 63, + -30, + 64, + 35, + 64, + 100, + 64, + -90, + 64, + -25, + 65, + 41, + 65, + 106, + 65, + -84, + 65, + -18, + 66, + 48, + 66, + 114, + 66, + -75, + 66, + -9, + 67, + 58, + 67, + 125, + 67, + -64, + 68, + 3, + 68, + 71, + 68, + -118, + 68, + -50, + 69, + 18, + 69, + 85, + 69, + -102, + 69, + -34, + 70, + 34, + 70, + 103, + 70, + -85, + 70, + -16, + 71, + 53, + 71, + 123, + 71, + -64, + 72, + 5, + 72, + 75, + 72, + -111, + 72, + -41, + 73, + 29, + 73, + 99, + 73, + -87, + 73, + -16, + 74, + 55, + 74, + 125, + 74, + -60, + 75, + 12, + 75, + 83, + 75, + -102, + 75, + -30, + 76, + 42, + 76, + 114, + 76, + -70, + 77, + 2, + 77, + 74, + 77, + -109, + 77, + -36, + 78, + 37, + 78, + 110, + 78, + -73, + 79, + 0, + 79, + 73, + 79, + -109, + 79, + -35, + 80, + 39, + 80, + 113, + 80, + -69, + 81, + 6, + 81, + 80, + 81, + -101, + 81, + -26, + 82, + 49, + 82, + 124, + 82, + -57, + 83, + 19, + 83, + 95, + 83, + -86, + 83, + -10, + 84, + 66, + 84, + -113, + 84, + -37, + 85, + 40, + 85, + 117, + 85, + -62, + 86, + 15, + 86, + 92, + 86, + -87, + 86, + -9, + 87, + 68, + 87, + -110, + 87, + -32, + 88, + 47, + 88, + 125, + 88, + -53, + 89, + 26, + 89, + 105, + 89, + -72, + 90, + 7, + 90, + 86, + 90, + -90, + 90, + -11, + 91, + 69, + 91, + -107, + 91, + -27, + 92, + 53, + 92, + -122, + 92, + -42, + 93, + 39, + 93, + 120, + 93, + -55, + 94, + 26, + 94, + 108, + 94, + -67, + 95, + 15, + 95, + 97, + 95, + -77, + 96, + 5, + 96, + 87, + 96, + -86, + 96, + -4, + 97, + 79, + 97, + -94, + 97, + -11, + 98, + 73, + 98, + -100, + 98, + -16, + 99, + 67, + 99, + -105, + 99, + -21, + 100, + 64, + 100, + -108, + 100, + -23, + 101, + 61, + 101, + -110, + 101, + -25, + 102, + 61, + 102, + -110, + 102, + -24, + 103, + 61, + 103, + -109, + 103, + -23, + 104, + 63, + 104, + -106, + 104, + -20, + 105, + 67, + 105, + -102, + 105, + -15, + 106, + 72, + 106, + -97, + 106, + -9, + 107, + 79, + 107, + -89, + 107, + -1, + 108, + 87, + 108, + -81, + 109, + 8, + 109, + 96, + 109, + -71, + 110, + 18, + 110, + 107, + 110, + -60, + 111, + 30, + 111, + 120, + 111, + -47, + 112, + 43, + 112, + -122, + 112, + -32, + 113, + 58, + 113, + -107, + 113, + -16, + 114, + 75, + 114, + -90, + 115, + 1, + 115, + 93, + 115, + -72, + 116, + 20, + 116, + 112, + 116, + -52, + 117, + 40, + 117, + -123, + 117, + -31, + 118, + 62, + 118, + -101, + 118, + -8, + 119, + 86, + 119, + -77, + 120, + 17, + 120, + 110, + 120, + -52, + 121, + 42, + 121, + -119, + 121, + -25, + 122, + 70, + 122, + -91, + 123, + 4, + 123, + 99, + 123, + -62, + 124, + 33, + 124, + -127, + 124, + -31, + 125, + 65, + 125, + -95, + 126, + 1, + 126, + 98, + 126, + -62, + 127, + 35, + 127, + -124, + 127, + -27, + -128, + 71, + -128, + -88, + -127, + 10, + -127, + 107, + -127, + -51, + -126, + 48, + -126, + -110, + -126, + -12, + -125, + 87, + -125, + -70, + -124, + 29, + -124, + -128, + -124, + -29, + -123, + 71, + -123, + -85, + -122, + 14, + -122, + 114, + -122, + -41, + -121, + 59, + -121, + -97, + -120, + 4, + -120, + 105, + -120, + -50, + -119, + 51, + -119, + -103, + -119, + -2, + -118, + 100, + -118, + -54, + -117, + 48, + -117, + -106, + -117, + -4, + -116, + 99, + -116, + -54, + -115, + 49, + -115, + -104, + -115, + -1, + -114, + 102, + -114, + -50, + -113, + 54, + -113, + -98, + -112, + 6, + -112, + 110, + -112, + -42, + -111, + 63, + -111, + -88, + -110, + 17, + -110, + 122, + -110, + -29, + -109, + 77, + -109, + -74, + -108, + 32, + -108, + -118, + -108, + -12, + -107, + 95, + -107, + -55, + -106, + 52, + -106, + -97, + -105, + 10, + -105, + 117, + -105, + -32, + -104, + 76, + -104, + -72, + -103, + 36, + -103, + -112, + -103, + -4, + -102, + 104, + -102, + -43, + -101, + 66, + -101, + -81, + -100, + 28, + -100, + -119, + -100, + -9, + -99, + 100, + -99, + -46, + -98, + 64, + -98, + -82, + -97, + 29, + -97, + -117, + -97, + -6, + -96, + 105, + -96, + -40, + -95, + 71, + -95, + -74, + -94, + 38, + -94, + -106, + -93, + 6, + -93, + 118, + -93, + -26, + -92, + 86, + -92, + -57, + -91, + 56, + -91, + -87, + -90, + 26, + -90, + -117, + -90, + -3, + -89, + 110, + -89, + -32, + -88, + 82, + -88, + -60, + -87, + 55, + -87, + -87, + -86, + 28, + -86, + -113, + -85, + 2, + -85, + 117, + -85, + -23, + -84, + 92, + -84, + -48, + -83, + 68, + -83, + -72, + -82, + 45, + -82, + -95, + -81, + 22, + -81, + -117, + -80, + 0, + -80, + 117, + -80, + -22, + -79, + 96, + -79, + -42, + -78, + 75, + -78, + -62, + -77, + 56, + -77, + -82, + -76, + 37, + -76, + -100, + -75, + 19, + -75, + -118, + -74, + 1, + -74, + 121, + -74, + -16, + -73, + 104, + -73, + -32, + -72, + 89, + -72, + -47, + -71, + 74, + -71, + -62, + -70, + 59, + -70, + -75, + -69, + 46, + -69, + -89, + -68, + 33, + -68, + -101, + -67, + 21, + -67, + -113, + -66, + 10, + -66, + -124, + -66, + -1, + -65, + 122, + -65, + -11, + -64, + 112, + -64, + -20, + -63, + 103, + -63, + -29, + -62, + 95, + -62, + -37, + -61, + 88, + -61, + -44, + -60, + 81, + -60, + -50, + -59, + 75, + -59, + -56, + -58, + 70, + -58, + -61, + -57, + 65, + -57, + -65, + -56, + 61, + -56, + -68, + -55, + 58, + -55, + -71, + -54, + 56, + -54, + -73, + -53, + 54, + -53, + -74, + -52, + 53, + -52, + -75, + -51, + 53, + -51, + -75, + -50, + 54, + -50, + -74, + -49, + 55, + -49, + -72, + -48, + 57, + -48, + -70, + -47, + 60, + -47, + -66, + -46, + 63, + -46, + -63, + -45, + 68, + -45, + -58, + -44, + 73, + -44, + -53, + -43, + 78, + -43, + -47, + -42, + 85, + -42, + -40, + -41, + 92, + -41, + -32, + -40, + 100, + -40, + -24, + -39, + 108, + -39, + -15, + -38, + 118, + -38, + -5, + -37, + -128, + -36, + 5, + -36, + -118, + -35, + 16, + -35, + -106, + -34, + 28, + -34, + -94, + -33, + 41, + -33, + -81, + -32, + 54, + -32, + -67, + -31, + 68, + -31, + -52, + -30, + 83, + -30, + -37, + -29, + 99, + -29, + -21, + -28, + 115, + -28, + -4, + -27, + -124, + -26, + 13, + -26, + -106, + -25, + 31, + -25, + -87, + -24, + 50, + -24, + -68, + -23, + 70, + -23, + -48, + -22, + 91, + -22, + -27, + -21, + 112, + -21, + -5, + -20, + -122, + -19, + 17, + -19, + -100, + -18, + 40, + -18, + -76, + -17, + 64, + -17, + -52, + -16, + 88, + -16, + -27, + -15, + 114, + -15, + -1, + -14, + -116, + -13, + 25, + -13, + -89, + -12, + 52, + -12, + -62, + -11, + 80, + -11, + -34, + -10, + 109, + -10, + -5, + -9, + -118, + -8, + 25, + -8, + -88, + -7, + 56, + -7, + -57, + -6, + 87, + -6, + -25, + -5, + 119, + -4, + 7, + -4, + -104, + -3, + 41, + -3, + -70, + -2, + 75, + -2, + -36, + -1, + 109, + -1, + -1, + 99, + 117, + 114, + 118, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 5, + 0, + 10, + 0, + 15, + 0, + 20, + 0, + 25, + 0, + 30, + 0, + 35, + 0, + 40, + 0, + 45, + 0, + 50, + 0, + 55, + 0, + 59, + 0, + 64, + 0, + 69, + 0, + 74, + 0, + 79, + 0, + 84, + 0, + 89, + 0, + 94, + 0, + 99, + 0, + 104, + 0, + 109, + 0, + 114, + 0, + 119, + 0, + 124, + 0, + -127, + 0, + -122, + 0, + -117, + 0, + -112, + 0, + -107, + 0, + -102, + 0, + -97, + 0, + -92, + 0, + -87, + 0, + -82, + 0, + -78, + 0, + -73, + 0, + -68, + 0, + -63, + 0, + -58, + 0, + -53, + 0, + -48, + 0, + -43, + 0, + -37, + 0, + -32, + 0, + -27, + 0, + -21, + 0, + -16, + 0, + -10, + 0, + -5, + 1, + 1, + 1, + 7, + 1, + 13, + 1, + 19, + 1, + 25, + 1, + 31, + 1, + 37, + 1, + 43, + 1, + 50, + 1, + 56, + 1, + 62, + 1, + 69, + 1, + 76, + 1, + 82, + 1, + 89, + 1, + 96, + 1, + 103, + 1, + 110, + 1, + 117, + 1, + 124, + 1, + -125, + 1, + -117, + 1, + -110, + 1, + -102, + 1, + -95, + 1, + -87, + 1, + -79, + 1, + -71, + 1, + -63, + 1, + -55, + 1, + -47, + 1, + -39, + 1, + -31, + 1, + -23, + 1, + -14, + 1, + -6, + 2, + 3, + 2, + 12, + 2, + 20, + 2, + 29, + 2, + 38, + 2, + 47, + 2, + 56, + 2, + 65, + 2, + 75, + 2, + 84, + 2, + 93, + 2, + 103, + 2, + 113, + 2, + 122, + 2, + -124, + 2, + -114, + 2, + -104, + 2, + -94, + 2, + -84, + 2, + -74, + 2, + -63, + 2, + -53, + 2, + -43, + 2, + -32, + 2, + -21, + 2, + -11, + 3, + 0, + 3, + 11, + 3, + 22, + 3, + 33, + 3, + 45, + 3, + 56, + 3, + 67, + 3, + 79, + 3, + 90, + 3, + 102, + 3, + 114, + 3, + 126, + 3, + -118, + 3, + -106, + 3, + -94, + 3, + -82, + 3, + -70, + 3, + -57, + 3, + -45, + 3, + -32, + 3, + -20, + 3, + -7, + 4, + 6, + 4, + 19, + 4, + 32, + 4, + 45, + 4, + 59, + 4, + 72, + 4, + 85, + 4, + 99, + 4, + 113, + 4, + 126, + 4, + -116, + 4, + -102, + 4, + -88, + 4, + -74, + 4, + -60, + 4, + -45, + 4, + -31, + 4, + -16, + 4, + -2, + 5, + 13, + 5, + 28, + 5, + 43, + 5, + 58, + 5, + 73, + 5, + 88, + 5, + 103, + 5, + 119, + 5, + -122, + 5, + -106, + 5, + -90, + 5, + -75, + 5, + -59, + 5, + -43, + 5, + -27, + 5, + -10, + 6, + 6, + 6, + 22, + 6, + 39, + 6, + 55, + 6, + 72, + 6, + 89, + 6, + 106, + 6, + 123, + 6, + -116, + 6, + -99, + 6, + -81, + 6, + -64, + 6, + -47, + 6, + -29, + 6, + -11, + 7, + 7, + 7, + 25, + 7, + 43, + 7, + 61, + 7, + 79, + 7, + 97, + 7, + 116, + 7, + -122, + 7, + -103, + 7, + -84, + 7, + -65, + 7, + -46, + 7, + -27, + 7, + -8, + 8, + 11, + 8, + 31, + 8, + 50, + 8, + 70, + 8, + 90, + 8, + 110, + 8, + -126, + 8, + -106, + 8, + -86, + 8, + -66, + 8, + -46, + 8, + -25, + 8, + -5, + 9, + 16, + 9, + 37, + 9, + 58, + 9, + 79, + 9, + 100, + 9, + 121, + 9, + -113, + 9, + -92, + 9, + -70, + 9, + -49, + 9, + -27, + 9, + -5, + 10, + 17, + 10, + 39, + 10, + 61, + 10, + 84, + 10, + 106, + 10, + -127, + 10, + -104, + 10, + -82, + 10, + -59, + 10, + -36, + 10, + -13, + 11, + 11, + 11, + 34, + 11, + 57, + 11, + 81, + 11, + 105, + 11, + -128, + 11, + -104, + 11, + -80, + 11, + -56, + 11, + -31, + 11, + -7, + 12, + 18, + 12, + 42, + 12, + 67, + 12, + 92, + 12, + 117, + 12, + -114, + 12, + -89, + 12, + -64, + 12, + -39, + 12, + -13, + 13, + 13, + 13, + 38, + 13, + 64, + 13, + 90, + 13, + 116, + 13, + -114, + 13, + -87, + 13, + -61, + 13, + -34, + 13, + -8, + 14, + 19, + 14, + 46, + 14, + 73, + 14, + 100, + 14, + 127, + 14, + -101, + 14, + -74, + 14, + -46, + 14, + -18, + 15, + 9, + 15, + 37, + 15, + 65, + 15, + 94, + 15, + 122, + 15, + -106, + 15, + -77, + 15, + -49, + 15, + -20, + 16, + 9, + 16, + 38, + 16, + 67, + 16, + 97, + 16, + 126, + 16, + -101, + 16, + -71, + 16, + -41, + 16, + -11, + 17, + 19, + 17, + 49, + 17, + 79, + 17, + 109, + 17, + -116, + 17, + -86, + 17, + -55, + 17, + -24, + 18, + 7, + 18, + 38, + 18, + 69, + 18, + 100, + 18, + -124, + 18, + -93, + 18, + -61, + 18, + -29, + 19, + 3, + 19, + 35, + 19, + 67, + 19, + 99, + 19, + -125, + 19, + -92, + 19, + -59, + 19, + -27, + 20, + 6, + 20, + 39, + 20, + 73, + 20, + 106, + 20, + -117, + 20, + -83, + 20, + -50, + 20, + -16, + 21, + 18, + 21, + 52, + 21, + 86, + 21, + 120, + 21, + -101, + 21, + -67, + 21, + -32, + 22, + 3, + 22, + 38, + 22, + 73, + 22, + 108, + 22, + -113, + 22, + -78, + 22, + -42, + 22, + -6, + 23, + 29, + 23, + 65, + 23, + 101, + 23, + -119, + 23, + -82, + 23, + -46, + 23, + -9, + 24, + 27, + 24, + 64, + 24, + 101, + 24, + -118, + 24, + -81, + 24, + -43, + 24, + -6, + 25, + 32, + 25, + 69, + 25, + 107, + 25, + -111, + 25, + -73, + 25, + -35, + 26, + 4, + 26, + 42, + 26, + 81, + 26, + 119, + 26, + -98, + 26, + -59, + 26, + -20, + 27, + 20, + 27, + 59, + 27, + 99, + 27, + -118, + 27, + -78, + 27, + -38, + 28, + 2, + 28, + 42, + 28, + 82, + 28, + 123, + 28, + -93, + 28, + -52, + 28, + -11, + 29, + 30, + 29, + 71, + 29, + 112, + 29, + -103, + 29, + -61, + 29, + -20, + 30, + 22, + 30, + 64, + 30, + 106, + 30, + -108, + 30, + -66, + 30, + -23, + 31, + 19, + 31, + 62, + 31, + 105, + 31, + -108, + 31, + -65, + 31, + -22, + 32, + 21, + 32, + 65, + 32, + 108, + 32, + -104, + 32, + -60, + 32, + -16, + 33, + 28, + 33, + 72, + 33, + 117, + 33, + -95, + 33, + -50, + 33, + -5, + 34, + 39, + 34, + 85, + 34, + -126, + 34, + -81, + 34, + -35, + 35, + 10, + 35, + 56, + 35, + 102, + 35, + -108, + 35, + -62, + 35, + -16, + 36, + 31, + 36, + 77, + 36, + 124, + 36, + -85, + 36, + -38, + 37, + 9, + 37, + 56, + 37, + 104, + 37, + -105, + 37, + -57, + 37, + -9, + 38, + 39, + 38, + 87, + 38, + -121, + 38, + -73, + 38, + -24, + 39, + 24, + 39, + 73, + 39, + 122, + 39, + -85, + 39, + -36, + 40, + 13, + 40, + 63, + 40, + 113, + 40, + -94, + 40, + -44, + 41, + 6, + 41, + 56, + 41, + 107, + 41, + -99, + 41, + -48, + 42, + 2, + 42, + 53, + 42, + 104, + 42, + -101, + 42, + -49, + 43, + 2, + 43, + 54, + 43, + 105, + 43, + -99, + 43, + -47, + 44, + 5, + 44, + 57, + 44, + 110, + 44, + -94, + 44, + -41, + 45, + 12, + 45, + 65, + 45, + 118, + 45, + -85, + 45, + -31, + 46, + 22, + 46, + 76, + 46, + -126, + 46, + -73, + 46, + -18, + 47, + 36, + 47, + 90, + 47, + -111, + 47, + -57, + 47, + -2, + 48, + 53, + 48, + 108, + 48, + -92, + 48, + -37, + 49, + 18, + 49, + 74, + 49, + -126, + 49, + -70, + 49, + -14, + 50, + 42, + 50, + 99, + 50, + -101, + 50, + -44, + 51, + 13, + 51, + 70, + 51, + 127, + 51, + -72, + 51, + -15, + 52, + 43, + 52, + 101, + 52, + -98, + 52, + -40, + 53, + 19, + 53, + 77, + 53, + -121, + 53, + -62, + 53, + -3, + 54, + 55, + 54, + 114, + 54, + -82, + 54, + -23, + 55, + 36, + 55, + 96, + 55, + -100, + 55, + -41, + 56, + 20, + 56, + 80, + 56, + -116, + 56, + -56, + 57, + 5, + 57, + 66, + 57, + 127, + 57, + -68, + 57, + -7, + 58, + 54, + 58, + 116, + 58, + -78, + 58, + -17, + 59, + 45, + 59, + 107, + 59, + -86, + 59, + -24, + 60, + 39, + 60, + 101, + 60, + -92, + 60, + -29, + 61, + 34, + 61, + 97, + 61, + -95, + 61, + -32, + 62, + 32, + 62, + 96, + 62, + -96, + 62, + -32, + 63, + 33, + 63, + 97, + 63, + -94, + 63, + -30, + 64, + 35, + 64, + 100, + 64, + -90, + 64, + -25, + 65, + 41, + 65, + 106, + 65, + -84, + 65, + -18, + 66, + 48, + 66, + 114, + 66, + -75, + 66, + -9, + 67, + 58, + 67, + 125, + 67, + -64, + 68, + 3, + 68, + 71, + 68, + -118, + 68, + -50, + 69, + 18, + 69, + 85, + 69, + -102, + 69, + -34, + 70, + 34, + 70, + 103, + 70, + -85, + 70, + -16, + 71, + 53, + 71, + 123, + 71, + -64, + 72, + 5, + 72, + 75, + 72, + -111, + 72, + -41, + 73, + 29, + 73, + 99, + 73, + -87, + 73, + -16, + 74, + 55, + 74, + 125, + 74, + -60, + 75, + 12, + 75, + 83, + 75, + -102, + 75, + -30, + 76, + 42, + 76, + 114, + 76, + -70, + 77, + 2, + 77, + 74, + 77, + -109, + 77, + -36, + 78, + 37, + 78, + 110, + 78, + -73, + 79, + 0, + 79, + 73, + 79, + -109, + 79, + -35, + 80, + 39, + 80, + 113, + 80, + -69, + 81, + 6, + 81, + 80, + 81, + -101, + 81, + -26, + 82, + 49, + 82, + 124, + 82, + -57, + 83, + 19, + 83, + 95, + 83, + -86, + 83, + -10, + 84, + 66, + 84, + -113, + 84, + -37, + 85, + 40, + 85, + 117, + 85, + -62, + 86, + 15, + 86, + 92, + 86, + -87, + 86, + -9, + 87, + 68, + 87, + -110, + 87, + -32, + 88, + 47, + 88, + 125, + 88, + -53, + 89, + 26, + 89, + 105, + 89, + -72, + 90, + 7, + 90, + 86, + 90, + -90, + 90, + -11, + 91, + 69, + 91, + -107, + 91, + -27, + 92, + 53, + 92, + -122, + 92, + -42, + 93, + 39, + 93, + 120, + 93, + -55, + 94, + 26, + 94, + 108, + 94, + -67, + 95, + 15, + 95, + 97, + 95, + -77, + 96, + 5, + 96, + 87, + 96, + -86, + 96, + -4, + 97, + 79, + 97, + -94, + 97, + -11, + 98, + 73, + 98, + -100, + 98, + -16, + 99, + 67, + 99, + -105, + 99, + -21, + 100, + 64, + 100, + -108, + 100, + -23, + 101, + 61, + 101, + -110, + 101, + -25, + 102, + 61, + 102, + -110, + 102, + -24, + 103, + 61, + 103, + -109, + 103, + -23, + 104, + 63, + 104, + -106, + 104, + -20, + 105, + 67, + 105, + -102, + 105, + -15, + 106, + 72, + 106, + -97, + 106, + -9, + 107, + 79, + 107, + -89, + 107, + -1, + 108, + 87, + 108, + -81, + 109, + 8, + 109, + 96, + 109, + -71, + 110, + 18, + 110, + 107, + 110, + -60, + 111, + 30, + 111, + 120, + 111, + -47, + 112, + 43, + 112, + -122, + 112, + -32, + 113, + 58, + 113, + -107, + 113, + -16, + 114, + 75, + 114, + -90, + 115, + 1, + 115, + 93, + 115, + -72, + 116, + 20, + 116, + 112, + 116, + -52, + 117, + 40, + 117, + -123, + 117, + -31, + 118, + 62, + 118, + -101, + 118, + -8, + 119, + 86, + 119, + -77, + 120, + 17, + 120, + 110, + 120, + -52, + 121, + 42, + 121, + -119, + 121, + -25, + 122, + 70, + 122, + -91, + 123, + 4, + 123, + 99, + 123, + -62, + 124, + 33, + 124, + -127, + 124, + -31, + 125, + 65, + 125, + -95, + 126, + 1, + 126, + 98, + 126, + -62, + 127, + 35, + 127, + -124, + 127, + -27, + -128, + 71, + -128, + -88, + -127, + 10, + -127, + 107, + -127, + -51, + -126, + 48, + -126, + -110, + -126, + -12, + -125, + 87, + -125, + -70, + -124, + 29, + -124, + -128, + -124, + -29, + -123, + 71, + -123, + -85, + -122, + 14, + -122, + 114, + -122, + -41, + -121, + 59, + -121, + -97, + -120, + 4, + -120, + 105, + -120, + -50, + -119, + 51, + -119, + -103, + -119, + -2, + -118, + 100, + -118, + -54, + -117, + 48, + -117, + -106, + -117, + -4, + -116, + 99, + -116, + -54, + -115, + 49, + -115, + -104, + -115, + -1, + -114, + 102, + -114, + -50, + -113, + 54, + -113, + -98, + -112, + 6, + -112, + 110, + -112, + -42, + -111, + 63, + -111, + -88, + -110, + 17, + -110, + 122, + -110, + -29, + -109, + 77, + -109, + -74, + -108, + 32, + -108, + -118, + -108, + -12, + -107, + 95, + -107, + -55, + -106, + 52, + -106, + -97, + -105, + 10, + -105, + 117, + -105, + -32, + -104, + 76, + -104, + -72, + -103, + 36, + -103, + -112, + -103, + -4, + -102, + 104, + -102, + -43, + -101, + 66, + -101, + -81, + -100, + 28, + -100, + -119, + -100, + -9, + -99, + 100, + -99, + -46, + -98, + 64, + -98, + -82, + -97, + 29, + -97, + -117, + -97, + -6, + -96, + 105, + -96, + -40, + -95, + 71, + -95, + -74, + -94, + 38, + -94, + -106, + -93, + 6, + -93, + 118, + -93, + -26, + -92, + 86, + -92, + -57, + -91, + 56, + -91, + -87, + -90, + 26, + -90, + -117, + -90, + -3, + -89, + 110, + -89, + -32, + -88, + 82, + -88, + -60, + -87, + 55, + -87, + -87, + -86, + 28, + -86, + -113, + -85, + 2, + -85, + 117, + -85, + -23, + -84, + 92, + -84, + -48, + -83, + 68, + -83, + -72, + -82, + 45, + -82, + -95, + -81, + 22, + -81, + -117, + -80, + 0, + -80, + 117, + -80, + -22, + -79, + 96, + -79, + -42, + -78, + 75, + -78, + -62, + -77, + 56, + -77, + -82, + -76, + 37, + -76, + -100, + -75, + 19, + -75, + -118, + -74, + 1, + -74, + 121, + -74, + -16, + -73, + 104, + -73, + -32, + -72, + 89, + -72, + -47, + -71, + 74, + -71, + -62, + -70, + 59, + -70, + -75, + -69, + 46, + -69, + -89, + -68, + 33, + -68, + -101, + -67, + 21, + -67, + -113, + -66, + 10, + -66, + -124, + -66, + -1, + -65, + 122, + -65, + -11, + -64, + 112, + -64, + -20, + -63, + 103, + -63, + -29, + -62, + 95, + -62, + -37, + -61, + 88, + -61, + -44, + -60, + 81, + -60, + -50, + -59, + 75, + -59, + -56, + -58, + 70, + -58, + -61, + -57, + 65, + -57, + -65, + -56, + 61, + -56, + -68, + -55, + 58, + -55, + -71, + -54, + 56, + -54, + -73, + -53, + 54, + -53, + -74, + -52, + 53, + -52, + -75, + -51, + 53, + -51, + -75, + -50, + 54, + -50, + -74, + -49, + 55, + -49, + -72, + -48, + 57, + -48, + -70, + -47, + 60, + -47, + -66, + -46, + 63, + -46, + -63, + -45, + 68, + -45, + -58, + -44, + 73, + -44, + -53, + -43, + 78, + -43, + -47, + -42, + 85, + -42, + -40, + -41, + 92, + -41, + -32, + -40, + 100, + -40, + -24, + -39, + 108, + -39, + -15, + -38, + 118, + -38, + -5, + -37, + -128, + -36, + 5, + -36, + -118, + -35, + 16, + -35, + -106, + -34, + 28, + -34, + -94, + -33, + 41, + -33, + -81, + -32, + 54, + -32, + -67, + -31, + 68, + -31, + -52, + -30, + 83, + -30, + -37, + -29, + 99, + -29, + -21, + -28, + 115, + -28, + -4, + -27, + -124, + -26, + 13, + -26, + -106, + -25, + 31, + -25, + -87, + -24, + 50, + -24, + -68, + -23, + 70, + -23, + -48, + -22, + 91, + -22, + -27, + -21, + 112, + -21, + -5, + -20, + -122, + -19, + 17, + -19, + -100, + -18, + 40, + -18, + -76, + -17, + 64, + -17, + -52, + -16, + 88, + -16, + -27, + -15, + 114, + -15, + -1, + -14, + -116, + -13, + 25, + -13, + -89, + -12, + 52, + -12, + -62, + -11, + 80, + -11, + -34, + -10, + 109, + -10, + -5, + -9, + -118, + -8, + 25, + -8, + -88, + -7, + 56, + -7, + -57, + -6, + 87, + -6, + -25, + -5, + 119, + -4, + 7, + -4, + -104, + -3, + 41, + -3, + -70, + -2, + 75, + -2, + -36, + -1, + 109, + -1, + -1, + 99, + 104, + 114, + 109, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + -93, + -41, + 0, + 0, + 84, + 123, + 0, + 0, + 76, + -51, + 0, + 0, + -103, + -102, + 0, + 0, + 38, + 102, + 0, + 0, + 15, + 92 + ], + "majorVersion":2, + "matrix":[ + [ + 0.43585205, + 0.3853302, + 0.14302063 + ], + [ + 0.22238159, + 0.717041, + 0.06059265 + ], + [ + 0.013916016, + 0.09713745, + 0.71383667 + ] + ], + "mediaWhitePoint":[ + 0.95014954, + 1.0, + 1.0882568 + ], + "minorVersion":48, + "numComponents":3, + "profileClass":1 + }, + "type":5 + }, + "green":248, + "red":148, + "transparency":1 + }, + "pastLessonColorB":125, + "pastLessonColorG":248, + "pastLessonColorR":148, + "posx":250, + "posy":30, + "presentLessonColor":{ + "RGB":-1398173, + "alpha":255, + "blue":99, + "colorSpace":{ + "CS_sRGB":true, + "numComponents":3, + "profile":{ + "PCSType":0, + "colorSpaceType":5, + "data":[ + 0, + 0, + 26, + -36, + 108, + 99, + 109, + 115, + 2, + 48, + 0, + 0, + 109, + 110, + 116, + 114, + 82, + 71, + 66, + 32, + 88, + 89, + 90, + 32, + 7, + -42, + 0, + 12, + 0, + 28, + 0, + 18, + 0, + 7, + 0, + 22, + 97, + 99, + 115, + 112, + 77, + 83, + 70, + 84, + 0, + 0, + 0, + 0, + 108, + 99, + 109, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10, + -42, + 0, + 1, + 0, + 0, + 0, + 0, + -45, + 45, + 108, + 99, + 109, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11, + 100, + 109, + 110, + 100, + 0, + 0, + 1, + 8, + 0, + 0, + 0, + 106, + 100, + 101, + 115, + 99, + 0, + 0, + 1, + 116, + 0, + 0, + 0, + 104, + 100, + 109, + 100, + 100, + 0, + 0, + 1, + -36, + 0, + 0, + 0, + 104, + 119, + 116, + 112, + 116, + 0, + 0, + 2, + 68, + 0, + 0, + 0, + 20, + 114, + 88, + 89, + 90, + 0, + 0, + 2, + 88, + 0, + 0, + 0, + 20, + 98, + 88, + 89, + 90, + 0, + 0, + 2, + 108, + 0, + 0, + 0, + 20, + 103, + 88, + 89, + 90, + 0, + 0, + 2, + -128, + 0, + 0, + 0, + 20, + 114, + 84, + 82, + 67, + 0, + 0, + 2, + -108, + 0, + 0, + 8, + 12, + 103, + 84, + 82, + 67, + 0, + 0, + 10, + -96, + 0, + 0, + 8, + 12, + 98, + 84, + 82, + 67, + 0, + 0, + 18, + -84, + 0, + 0, + 8, + 12, + 99, + 104, + 114, + 109, + 0, + 0, + 26, + -72, + 0, + 0, + 0, + 36, + 100, + 101, + 115, + 99, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16, + 40, + 108, + 99, + 109, + 115, + 32, + 105, + 110, + 116, + 101, + 114, + 110, + 97, + 108, + 41, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 100, + 101, + 115, + 99, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14, + 115, + 82, + 71, + 66, + 32, + 98, + 117, + 105, + 108, + 116, + 45, + 105, + 110, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 100, + 101, + 115, + 99, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14, + 115, + 82, + 71, + 66, + 32, + 98, + 117, + 105, + 108, + 116, + 45, + 105, + 110, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + -13, + 61, + 0, + 1, + 0, + 0, + 0, + 1, + 22, + -104, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 111, + -108, + 0, + 0, + 56, + -18, + 0, + 0, + 3, + -112, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 36, + -99, + 0, + 0, + 15, + -125, + 0, + 0, + -74, + -66, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 98, + -91, + 0, + 0, + -73, + -112, + 0, + 0, + 24, + -34, + 99, + 117, + 114, + 118, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 5, + 0, + 10, + 0, + 15, + 0, + 20, + 0, + 25, + 0, + 30, + 0, + 35, + 0, + 40, + 0, + 45, + 0, + 50, + 0, + 55, + 0, + 59, + 0, + 64, + 0, + 69, + 0, + 74, + 0, + 79, + 0, + 84, + 0, + 89, + 0, + 94, + 0, + 99, + 0, + 104, + 0, + 109, + 0, + 114, + 0, + 119, + 0, + 124, + 0, + -127, + 0, + -122, + 0, + -117, + 0, + -112, + 0, + -107, + 0, + -102, + 0, + -97, + 0, + -92, + 0, + -87, + 0, + -82, + 0, + -78, + 0, + -73, + 0, + -68, + 0, + -63, + 0, + -58, + 0, + -53, + 0, + -48, + 0, + -43, + 0, + -37, + 0, + -32, + 0, + -27, + 0, + -21, + 0, + -16, + 0, + -10, + 0, + -5, + 1, + 1, + 1, + 7, + 1, + 13, + 1, + 19, + 1, + 25, + 1, + 31, + 1, + 37, + 1, + 43, + 1, + 50, + 1, + 56, + 1, + 62, + 1, + 69, + 1, + 76, + 1, + 82, + 1, + 89, + 1, + 96, + 1, + 103, + 1, + 110, + 1, + 117, + 1, + 124, + 1, + -125, + 1, + -117, + 1, + -110, + 1, + -102, + 1, + -95, + 1, + -87, + 1, + -79, + 1, + -71, + 1, + -63, + 1, + -55, + 1, + -47, + 1, + -39, + 1, + -31, + 1, + -23, + 1, + -14, + 1, + -6, + 2, + 3, + 2, + 12, + 2, + 20, + 2, + 29, + 2, + 38, + 2, + 47, + 2, + 56, + 2, + 65, + 2, + 75, + 2, + 84, + 2, + 93, + 2, + 103, + 2, + 113, + 2, + 122, + 2, + -124, + 2, + -114, + 2, + -104, + 2, + -94, + 2, + -84, + 2, + -74, + 2, + -63, + 2, + -53, + 2, + -43, + 2, + -32, + 2, + -21, + 2, + -11, + 3, + 0, + 3, + 11, + 3, + 22, + 3, + 33, + 3, + 45, + 3, + 56, + 3, + 67, + 3, + 79, + 3, + 90, + 3, + 102, + 3, + 114, + 3, + 126, + 3, + -118, + 3, + -106, + 3, + -94, + 3, + -82, + 3, + -70, + 3, + -57, + 3, + -45, + 3, + -32, + 3, + -20, + 3, + -7, + 4, + 6, + 4, + 19, + 4, + 32, + 4, + 45, + 4, + 59, + 4, + 72, + 4, + 85, + 4, + 99, + 4, + 113, + 4, + 126, + 4, + -116, + 4, + -102, + 4, + -88, + 4, + -74, + 4, + -60, + 4, + -45, + 4, + -31, + 4, + -16, + 4, + -2, + 5, + 13, + 5, + 28, + 5, + 43, + 5, + 58, + 5, + 73, + 5, + 88, + 5, + 103, + 5, + 119, + 5, + -122, + 5, + -106, + 5, + -90, + 5, + -75, + 5, + -59, + 5, + -43, + 5, + -27, + 5, + -10, + 6, + 6, + 6, + 22, + 6, + 39, + 6, + 55, + 6, + 72, + 6, + 89, + 6, + 106, + 6, + 123, + 6, + -116, + 6, + -99, + 6, + -81, + 6, + -64, + 6, + -47, + 6, + -29, + 6, + -11, + 7, + 7, + 7, + 25, + 7, + 43, + 7, + 61, + 7, + 79, + 7, + 97, + 7, + 116, + 7, + -122, + 7, + -103, + 7, + -84, + 7, + -65, + 7, + -46, + 7, + -27, + 7, + -8, + 8, + 11, + 8, + 31, + 8, + 50, + 8, + 70, + 8, + 90, + 8, + 110, + 8, + -126, + 8, + -106, + 8, + -86, + 8, + -66, + 8, + -46, + 8, + -25, + 8, + -5, + 9, + 16, + 9, + 37, + 9, + 58, + 9, + 79, + 9, + 100, + 9, + 121, + 9, + -113, + 9, + -92, + 9, + -70, + 9, + -49, + 9, + -27, + 9, + -5, + 10, + 17, + 10, + 39, + 10, + 61, + 10, + 84, + 10, + 106, + 10, + -127, + 10, + -104, + 10, + -82, + 10, + -59, + 10, + -36, + 10, + -13, + 11, + 11, + 11, + 34, + 11, + 57, + 11, + 81, + 11, + 105, + 11, + -128, + 11, + -104, + 11, + -80, + 11, + -56, + 11, + -31, + 11, + -7, + 12, + 18, + 12, + 42, + 12, + 67, + 12, + 92, + 12, + 117, + 12, + -114, + 12, + -89, + 12, + -64, + 12, + -39, + 12, + -13, + 13, + 13, + 13, + 38, + 13, + 64, + 13, + 90, + 13, + 116, + 13, + -114, + 13, + -87, + 13, + -61, + 13, + -34, + 13, + -8, + 14, + 19, + 14, + 46, + 14, + 73, + 14, + 100, + 14, + 127, + 14, + -101, + 14, + -74, + 14, + -46, + 14, + -18, + 15, + 9, + 15, + 37, + 15, + 65, + 15, + 94, + 15, + 122, + 15, + -106, + 15, + -77, + 15, + -49, + 15, + -20, + 16, + 9, + 16, + 38, + 16, + 67, + 16, + 97, + 16, + 126, + 16, + -101, + 16, + -71, + 16, + -41, + 16, + -11, + 17, + 19, + 17, + 49, + 17, + 79, + 17, + 109, + 17, + -116, + 17, + -86, + 17, + -55, + 17, + -24, + 18, + 7, + 18, + 38, + 18, + 69, + 18, + 100, + 18, + -124, + 18, + -93, + 18, + -61, + 18, + -29, + 19, + 3, + 19, + 35, + 19, + 67, + 19, + 99, + 19, + -125, + 19, + -92, + 19, + -59, + 19, + -27, + 20, + 6, + 20, + 39, + 20, + 73, + 20, + 106, + 20, + -117, + 20, + -83, + 20, + -50, + 20, + -16, + 21, + 18, + 21, + 52, + 21, + 86, + 21, + 120, + 21, + -101, + 21, + -67, + 21, + -32, + 22, + 3, + 22, + 38, + 22, + 73, + 22, + 108, + 22, + -113, + 22, + -78, + 22, + -42, + 22, + -6, + 23, + 29, + 23, + 65, + 23, + 101, + 23, + -119, + 23, + -82, + 23, + -46, + 23, + -9, + 24, + 27, + 24, + 64, + 24, + 101, + 24, + -118, + 24, + -81, + 24, + -43, + 24, + -6, + 25, + 32, + 25, + 69, + 25, + 107, + 25, + -111, + 25, + -73, + 25, + -35, + 26, + 4, + 26, + 42, + 26, + 81, + 26, + 119, + 26, + -98, + 26, + -59, + 26, + -20, + 27, + 20, + 27, + 59, + 27, + 99, + 27, + -118, + 27, + -78, + 27, + -38, + 28, + 2, + 28, + 42, + 28, + 82, + 28, + 123, + 28, + -93, + 28, + -52, + 28, + -11, + 29, + 30, + 29, + 71, + 29, + 112, + 29, + -103, + 29, + -61, + 29, + -20, + 30, + 22, + 30, + 64, + 30, + 106, + 30, + -108, + 30, + -66, + 30, + -23, + 31, + 19, + 31, + 62, + 31, + 105, + 31, + -108, + 31, + -65, + 31, + -22, + 32, + 21, + 32, + 65, + 32, + 108, + 32, + -104, + 32, + -60, + 32, + -16, + 33, + 28, + 33, + 72, + 33, + 117, + 33, + -95, + 33, + -50, + 33, + -5, + 34, + 39, + 34, + 85, + 34, + -126, + 34, + -81, + 34, + -35, + 35, + 10, + 35, + 56, + 35, + 102, + 35, + -108, + 35, + -62, + 35, + -16, + 36, + 31, + 36, + 77, + 36, + 124, + 36, + -85, + 36, + -38, + 37, + 9, + 37, + 56, + 37, + 104, + 37, + -105, + 37, + -57, + 37, + -9, + 38, + 39, + 38, + 87, + 38, + -121, + 38, + -73, + 38, + -24, + 39, + 24, + 39, + 73, + 39, + 122, + 39, + -85, + 39, + -36, + 40, + 13, + 40, + 63, + 40, + 113, + 40, + -94, + 40, + -44, + 41, + 6, + 41, + 56, + 41, + 107, + 41, + -99, + 41, + -48, + 42, + 2, + 42, + 53, + 42, + 104, + 42, + -101, + 42, + -49, + 43, + 2, + 43, + 54, + 43, + 105, + 43, + -99, + 43, + -47, + 44, + 5, + 44, + 57, + 44, + 110, + 44, + -94, + 44, + -41, + 45, + 12, + 45, + 65, + 45, + 118, + 45, + -85, + 45, + -31, + 46, + 22, + 46, + 76, + 46, + -126, + 46, + -73, + 46, + -18, + 47, + 36, + 47, + 90, + 47, + -111, + 47, + -57, + 47, + -2, + 48, + 53, + 48, + 108, + 48, + -92, + 48, + -37, + 49, + 18, + 49, + 74, + 49, + -126, + 49, + -70, + 49, + -14, + 50, + 42, + 50, + 99, + 50, + -101, + 50, + -44, + 51, + 13, + 51, + 70, + 51, + 127, + 51, + -72, + 51, + -15, + 52, + 43, + 52, + 101, + 52, + -98, + 52, + -40, + 53, + 19, + 53, + 77, + 53, + -121, + 53, + -62, + 53, + -3, + 54, + 55, + 54, + 114, + 54, + -82, + 54, + -23, + 55, + 36, + 55, + 96, + 55, + -100, + 55, + -41, + 56, + 20, + 56, + 80, + 56, + -116, + 56, + -56, + 57, + 5, + 57, + 66, + 57, + 127, + 57, + -68, + 57, + -7, + 58, + 54, + 58, + 116, + 58, + -78, + 58, + -17, + 59, + 45, + 59, + 107, + 59, + -86, + 59, + -24, + 60, + 39, + 60, + 101, + 60, + -92, + 60, + -29, + 61, + 34, + 61, + 97, + 61, + -95, + 61, + -32, + 62, + 32, + 62, + 96, + 62, + -96, + 62, + -32, + 63, + 33, + 63, + 97, + 63, + -94, + 63, + -30, + 64, + 35, + 64, + 100, + 64, + -90, + 64, + -25, + 65, + 41, + 65, + 106, + 65, + -84, + 65, + -18, + 66, + 48, + 66, + 114, + 66, + -75, + 66, + -9, + 67, + 58, + 67, + 125, + 67, + -64, + 68, + 3, + 68, + 71, + 68, + -118, + 68, + -50, + 69, + 18, + 69, + 85, + 69, + -102, + 69, + -34, + 70, + 34, + 70, + 103, + 70, + -85, + 70, + -16, + 71, + 53, + 71, + 123, + 71, + -64, + 72, + 5, + 72, + 75, + 72, + -111, + 72, + -41, + 73, + 29, + 73, + 99, + 73, + -87, + 73, + -16, + 74, + 55, + 74, + 125, + 74, + -60, + 75, + 12, + 75, + 83, + 75, + -102, + 75, + -30, + 76, + 42, + 76, + 114, + 76, + -70, + 77, + 2, + 77, + 74, + 77, + -109, + 77, + -36, + 78, + 37, + 78, + 110, + 78, + -73, + 79, + 0, + 79, + 73, + 79, + -109, + 79, + -35, + 80, + 39, + 80, + 113, + 80, + -69, + 81, + 6, + 81, + 80, + 81, + -101, + 81, + -26, + 82, + 49, + 82, + 124, + 82, + -57, + 83, + 19, + 83, + 95, + 83, + -86, + 83, + -10, + 84, + 66, + 84, + -113, + 84, + -37, + 85, + 40, + 85, + 117, + 85, + -62, + 86, + 15, + 86, + 92, + 86, + -87, + 86, + -9, + 87, + 68, + 87, + -110, + 87, + -32, + 88, + 47, + 88, + 125, + 88, + -53, + 89, + 26, + 89, + 105, + 89, + -72, + 90, + 7, + 90, + 86, + 90, + -90, + 90, + -11, + 91, + 69, + 91, + -107, + 91, + -27, + 92, + 53, + 92, + -122, + 92, + -42, + 93, + 39, + 93, + 120, + 93, + -55, + 94, + 26, + 94, + 108, + 94, + -67, + 95, + 15, + 95, + 97, + 95, + -77, + 96, + 5, + 96, + 87, + 96, + -86, + 96, + -4, + 97, + 79, + 97, + -94, + 97, + -11, + 98, + 73, + 98, + -100, + 98, + -16, + 99, + 67, + 99, + -105, + 99, + -21, + 100, + 64, + 100, + -108, + 100, + -23, + 101, + 61, + 101, + -110, + 101, + -25, + 102, + 61, + 102, + -110, + 102, + -24, + 103, + 61, + 103, + -109, + 103, + -23, + 104, + 63, + 104, + -106, + 104, + -20, + 105, + 67, + 105, + -102, + 105, + -15, + 106, + 72, + 106, + -97, + 106, + -9, + 107, + 79, + 107, + -89, + 107, + -1, + 108, + 87, + 108, + -81, + 109, + 8, + 109, + 96, + 109, + -71, + 110, + 18, + 110, + 107, + 110, + -60, + 111, + 30, + 111, + 120, + 111, + -47, + 112, + 43, + 112, + -122, + 112, + -32, + 113, + 58, + 113, + -107, + 113, + -16, + 114, + 75, + 114, + -90, + 115, + 1, + 115, + 93, + 115, + -72, + 116, + 20, + 116, + 112, + 116, + -52, + 117, + 40, + 117, + -123, + 117, + -31, + 118, + 62, + 118, + -101, + 118, + -8, + 119, + 86, + 119, + -77, + 120, + 17, + 120, + 110, + 120, + -52, + 121, + 42, + 121, + -119, + 121, + -25, + 122, + 70, + 122, + -91, + 123, + 4, + 123, + 99, + 123, + -62, + 124, + 33, + 124, + -127, + 124, + -31, + 125, + 65, + 125, + -95, + 126, + 1, + 126, + 98, + 126, + -62, + 127, + 35, + 127, + -124, + 127, + -27, + -128, + 71, + -128, + -88, + -127, + 10, + -127, + 107, + -127, + -51, + -126, + 48, + -126, + -110, + -126, + -12, + -125, + 87, + -125, + -70, + -124, + 29, + -124, + -128, + -124, + -29, + -123, + 71, + -123, + -85, + -122, + 14, + -122, + 114, + -122, + -41, + -121, + 59, + -121, + -97, + -120, + 4, + -120, + 105, + -120, + -50, + -119, + 51, + -119, + -103, + -119, + -2, + -118, + 100, + -118, + -54, + -117, + 48, + -117, + -106, + -117, + -4, + -116, + 99, + -116, + -54, + -115, + 49, + -115, + -104, + -115, + -1, + -114, + 102, + -114, + -50, + -113, + 54, + -113, + -98, + -112, + 6, + -112, + 110, + -112, + -42, + -111, + 63, + -111, + -88, + -110, + 17, + -110, + 122, + -110, + -29, + -109, + 77, + -109, + -74, + -108, + 32, + -108, + -118, + -108, + -12, + -107, + 95, + -107, + -55, + -106, + 52, + -106, + -97, + -105, + 10, + -105, + 117, + -105, + -32, + -104, + 76, + -104, + -72, + -103, + 36, + -103, + -112, + -103, + -4, + -102, + 104, + -102, + -43, + -101, + 66, + -101, + -81, + -100, + 28, + -100, + -119, + -100, + -9, + -99, + 100, + -99, + -46, + -98, + 64, + -98, + -82, + -97, + 29, + -97, + -117, + -97, + -6, + -96, + 105, + -96, + -40, + -95, + 71, + -95, + -74, + -94, + 38, + -94, + -106, + -93, + 6, + -93, + 118, + -93, + -26, + -92, + 86, + -92, + -57, + -91, + 56, + -91, + -87, + -90, + 26, + -90, + -117, + -90, + -3, + -89, + 110, + -89, + -32, + -88, + 82, + -88, + -60, + -87, + 55, + -87, + -87, + -86, + 28, + -86, + -113, + -85, + 2, + -85, + 117, + -85, + -23, + -84, + 92, + -84, + -48, + -83, + 68, + -83, + -72, + -82, + 45, + -82, + -95, + -81, + 22, + -81, + -117, + -80, + 0, + -80, + 117, + -80, + -22, + -79, + 96, + -79, + -42, + -78, + 75, + -78, + -62, + -77, + 56, + -77, + -82, + -76, + 37, + -76, + -100, + -75, + 19, + -75, + -118, + -74, + 1, + -74, + 121, + -74, + -16, + -73, + 104, + -73, + -32, + -72, + 89, + -72, + -47, + -71, + 74, + -71, + -62, + -70, + 59, + -70, + -75, + -69, + 46, + -69, + -89, + -68, + 33, + -68, + -101, + -67, + 21, + -67, + -113, + -66, + 10, + -66, + -124, + -66, + -1, + -65, + 122, + -65, + -11, + -64, + 112, + -64, + -20, + -63, + 103, + -63, + -29, + -62, + 95, + -62, + -37, + -61, + 88, + -61, + -44, + -60, + 81, + -60, + -50, + -59, + 75, + -59, + -56, + -58, + 70, + -58, + -61, + -57, + 65, + -57, + -65, + -56, + 61, + -56, + -68, + -55, + 58, + -55, + -71, + -54, + 56, + -54, + -73, + -53, + 54, + -53, + -74, + -52, + 53, + -52, + -75, + -51, + 53, + -51, + -75, + -50, + 54, + -50, + -74, + -49, + 55, + -49, + -72, + -48, + 57, + -48, + -70, + -47, + 60, + -47, + -66, + -46, + 63, + -46, + -63, + -45, + 68, + -45, + -58, + -44, + 73, + -44, + -53, + -43, + 78, + -43, + -47, + -42, + 85, + -42, + -40, + -41, + 92, + -41, + -32, + -40, + 100, + -40, + -24, + -39, + 108, + -39, + -15, + -38, + 118, + -38, + -5, + -37, + -128, + -36, + 5, + -36, + -118, + -35, + 16, + -35, + -106, + -34, + 28, + -34, + -94, + -33, + 41, + -33, + -81, + -32, + 54, + -32, + -67, + -31, + 68, + -31, + -52, + -30, + 83, + -30, + -37, + -29, + 99, + -29, + -21, + -28, + 115, + -28, + -4, + -27, + -124, + -26, + 13, + -26, + -106, + -25, + 31, + -25, + -87, + -24, + 50, + -24, + -68, + -23, + 70, + -23, + -48, + -22, + 91, + -22, + -27, + -21, + 112, + -21, + -5, + -20, + -122, + -19, + 17, + -19, + -100, + -18, + 40, + -18, + -76, + -17, + 64, + -17, + -52, + -16, + 88, + -16, + -27, + -15, + 114, + -15, + -1, + -14, + -116, + -13, + 25, + -13, + -89, + -12, + 52, + -12, + -62, + -11, + 80, + -11, + -34, + -10, + 109, + -10, + -5, + -9, + -118, + -8, + 25, + -8, + -88, + -7, + 56, + -7, + -57, + -6, + 87, + -6, + -25, + -5, + 119, + -4, + 7, + -4, + -104, + -3, + 41, + -3, + -70, + -2, + 75, + -2, + -36, + -1, + 109, + -1, + -1, + 99, + 117, + 114, + 118, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 5, + 0, + 10, + 0, + 15, + 0, + 20, + 0, + 25, + 0, + 30, + 0, + 35, + 0, + 40, + 0, + 45, + 0, + 50, + 0, + 55, + 0, + 59, + 0, + 64, + 0, + 69, + 0, + 74, + 0, + 79, + 0, + 84, + 0, + 89, + 0, + 94, + 0, + 99, + 0, + 104, + 0, + 109, + 0, + 114, + 0, + 119, + 0, + 124, + 0, + -127, + 0, + -122, + 0, + -117, + 0, + -112, + 0, + -107, + 0, + -102, + 0, + -97, + 0, + -92, + 0, + -87, + 0, + -82, + 0, + -78, + 0, + -73, + 0, + -68, + 0, + -63, + 0, + -58, + 0, + -53, + 0, + -48, + 0, + -43, + 0, + -37, + 0, + -32, + 0, + -27, + 0, + -21, + 0, + -16, + 0, + -10, + 0, + -5, + 1, + 1, + 1, + 7, + 1, + 13, + 1, + 19, + 1, + 25, + 1, + 31, + 1, + 37, + 1, + 43, + 1, + 50, + 1, + 56, + 1, + 62, + 1, + 69, + 1, + 76, + 1, + 82, + 1, + 89, + 1, + 96, + 1, + 103, + 1, + 110, + 1, + 117, + 1, + 124, + 1, + -125, + 1, + -117, + 1, + -110, + 1, + -102, + 1, + -95, + 1, + -87, + 1, + -79, + 1, + -71, + 1, + -63, + 1, + -55, + 1, + -47, + 1, + -39, + 1, + -31, + 1, + -23, + 1, + -14, + 1, + -6, + 2, + 3, + 2, + 12, + 2, + 20, + 2, + 29, + 2, + 38, + 2, + 47, + 2, + 56, + 2, + 65, + 2, + 75, + 2, + 84, + 2, + 93, + 2, + 103, + 2, + 113, + 2, + 122, + 2, + -124, + 2, + -114, + 2, + -104, + 2, + -94, + 2, + -84, + 2, + -74, + 2, + -63, + 2, + -53, + 2, + -43, + 2, + -32, + 2, + -21, + 2, + -11, + 3, + 0, + 3, + 11, + 3, + 22, + 3, + 33, + 3, + 45, + 3, + 56, + 3, + 67, + 3, + 79, + 3, + 90, + 3, + 102, + 3, + 114, + 3, + 126, + 3, + -118, + 3, + -106, + 3, + -94, + 3, + -82, + 3, + -70, + 3, + -57, + 3, + -45, + 3, + -32, + 3, + -20, + 3, + -7, + 4, + 6, + 4, + 19, + 4, + 32, + 4, + 45, + 4, + 59, + 4, + 72, + 4, + 85, + 4, + 99, + 4, + 113, + 4, + 126, + 4, + -116, + 4, + -102, + 4, + -88, + 4, + -74, + 4, + -60, + 4, + -45, + 4, + -31, + 4, + -16, + 4, + -2, + 5, + 13, + 5, + 28, + 5, + 43, + 5, + 58, + 5, + 73, + 5, + 88, + 5, + 103, + 5, + 119, + 5, + -122, + 5, + -106, + 5, + -90, + 5, + -75, + 5, + -59, + 5, + -43, + 5, + -27, + 5, + -10, + 6, + 6, + 6, + 22, + 6, + 39, + 6, + 55, + 6, + 72, + 6, + 89, + 6, + 106, + 6, + 123, + 6, + -116, + 6, + -99, + 6, + -81, + 6, + -64, + 6, + -47, + 6, + -29, + 6, + -11, + 7, + 7, + 7, + 25, + 7, + 43, + 7, + 61, + 7, + 79, + 7, + 97, + 7, + 116, + 7, + -122, + 7, + -103, + 7, + -84, + 7, + -65, + 7, + -46, + 7, + -27, + 7, + -8, + 8, + 11, + 8, + 31, + 8, + 50, + 8, + 70, + 8, + 90, + 8, + 110, + 8, + -126, + 8, + -106, + 8, + -86, + 8, + -66, + 8, + -46, + 8, + -25, + 8, + -5, + 9, + 16, + 9, + 37, + 9, + 58, + 9, + 79, + 9, + 100, + 9, + 121, + 9, + -113, + 9, + -92, + 9, + -70, + 9, + -49, + 9, + -27, + 9, + -5, + 10, + 17, + 10, + 39, + 10, + 61, + 10, + 84, + 10, + 106, + 10, + -127, + 10, + -104, + 10, + -82, + 10, + -59, + 10, + -36, + 10, + -13, + 11, + 11, + 11, + 34, + 11, + 57, + 11, + 81, + 11, + 105, + 11, + -128, + 11, + -104, + 11, + -80, + 11, + -56, + 11, + -31, + 11, + -7, + 12, + 18, + 12, + 42, + 12, + 67, + 12, + 92, + 12, + 117, + 12, + -114, + 12, + -89, + 12, + -64, + 12, + -39, + 12, + -13, + 13, + 13, + 13, + 38, + 13, + 64, + 13, + 90, + 13, + 116, + 13, + -114, + 13, + -87, + 13, + -61, + 13, + -34, + 13, + -8, + 14, + 19, + 14, + 46, + 14, + 73, + 14, + 100, + 14, + 127, + 14, + -101, + 14, + -74, + 14, + -46, + 14, + -18, + 15, + 9, + 15, + 37, + 15, + 65, + 15, + 94, + 15, + 122, + 15, + -106, + 15, + -77, + 15, + -49, + 15, + -20, + 16, + 9, + 16, + 38, + 16, + 67, + 16, + 97, + 16, + 126, + 16, + -101, + 16, + -71, + 16, + -41, + 16, + -11, + 17, + 19, + 17, + 49, + 17, + 79, + 17, + 109, + 17, + -116, + 17, + -86, + 17, + -55, + 17, + -24, + 18, + 7, + 18, + 38, + 18, + 69, + 18, + 100, + 18, + -124, + 18, + -93, + 18, + -61, + 18, + -29, + 19, + 3, + 19, + 35, + 19, + 67, + 19, + 99, + 19, + -125, + 19, + -92, + 19, + -59, + 19, + -27, + 20, + 6, + 20, + 39, + 20, + 73, + 20, + 106, + 20, + -117, + 20, + -83, + 20, + -50, + 20, + -16, + 21, + 18, + 21, + 52, + 21, + 86, + 21, + 120, + 21, + -101, + 21, + -67, + 21, + -32, + 22, + 3, + 22, + 38, + 22, + 73, + 22, + 108, + 22, + -113, + 22, + -78, + 22, + -42, + 22, + -6, + 23, + 29, + 23, + 65, + 23, + 101, + 23, + -119, + 23, + -82, + 23, + -46, + 23, + -9, + 24, + 27, + 24, + 64, + 24, + 101, + 24, + -118, + 24, + -81, + 24, + -43, + 24, + -6, + 25, + 32, + 25, + 69, + 25, + 107, + 25, + -111, + 25, + -73, + 25, + -35, + 26, + 4, + 26, + 42, + 26, + 81, + 26, + 119, + 26, + -98, + 26, + -59, + 26, + -20, + 27, + 20, + 27, + 59, + 27, + 99, + 27, + -118, + 27, + -78, + 27, + -38, + 28, + 2, + 28, + 42, + 28, + 82, + 28, + 123, + 28, + -93, + 28, + -52, + 28, + -11, + 29, + 30, + 29, + 71, + 29, + 112, + 29, + -103, + 29, + -61, + 29, + -20, + 30, + 22, + 30, + 64, + 30, + 106, + 30, + -108, + 30, + -66, + 30, + -23, + 31, + 19, + 31, + 62, + 31, + 105, + 31, + -108, + 31, + -65, + 31, + -22, + 32, + 21, + 32, + 65, + 32, + 108, + 32, + -104, + 32, + -60, + 32, + -16, + 33, + 28, + 33, + 72, + 33, + 117, + 33, + -95, + 33, + -50, + 33, + -5, + 34, + 39, + 34, + 85, + 34, + -126, + 34, + -81, + 34, + -35, + 35, + 10, + 35, + 56, + 35, + 102, + 35, + -108, + 35, + -62, + 35, + -16, + 36, + 31, + 36, + 77, + 36, + 124, + 36, + -85, + 36, + -38, + 37, + 9, + 37, + 56, + 37, + 104, + 37, + -105, + 37, + -57, + 37, + -9, + 38, + 39, + 38, + 87, + 38, + -121, + 38, + -73, + 38, + -24, + 39, + 24, + 39, + 73, + 39, + 122, + 39, + -85, + 39, + -36, + 40, + 13, + 40, + 63, + 40, + 113, + 40, + -94, + 40, + -44, + 41, + 6, + 41, + 56, + 41, + 107, + 41, + -99, + 41, + -48, + 42, + 2, + 42, + 53, + 42, + 104, + 42, + -101, + 42, + -49, + 43, + 2, + 43, + 54, + 43, + 105, + 43, + -99, + 43, + -47, + 44, + 5, + 44, + 57, + 44, + 110, + 44, + -94, + 44, + -41, + 45, + 12, + 45, + 65, + 45, + 118, + 45, + -85, + 45, + -31, + 46, + 22, + 46, + 76, + 46, + -126, + 46, + -73, + 46, + -18, + 47, + 36, + 47, + 90, + 47, + -111, + 47, + -57, + 47, + -2, + 48, + 53, + 48, + 108, + 48, + -92, + 48, + -37, + 49, + 18, + 49, + 74, + 49, + -126, + 49, + -70, + 49, + -14, + 50, + 42, + 50, + 99, + 50, + -101, + 50, + -44, + 51, + 13, + 51, + 70, + 51, + 127, + 51, + -72, + 51, + -15, + 52, + 43, + 52, + 101, + 52, + -98, + 52, + -40, + 53, + 19, + 53, + 77, + 53, + -121, + 53, + -62, + 53, + -3, + 54, + 55, + 54, + 114, + 54, + -82, + 54, + -23, + 55, + 36, + 55, + 96, + 55, + -100, + 55, + -41, + 56, + 20, + 56, + 80, + 56, + -116, + 56, + -56, + 57, + 5, + 57, + 66, + 57, + 127, + 57, + -68, + 57, + -7, + 58, + 54, + 58, + 116, + 58, + -78, + 58, + -17, + 59, + 45, + 59, + 107, + 59, + -86, + 59, + -24, + 60, + 39, + 60, + 101, + 60, + -92, + 60, + -29, + 61, + 34, + 61, + 97, + 61, + -95, + 61, + -32, + 62, + 32, + 62, + 96, + 62, + -96, + 62, + -32, + 63, + 33, + 63, + 97, + 63, + -94, + 63, + -30, + 64, + 35, + 64, + 100, + 64, + -90, + 64, + -25, + 65, + 41, + 65, + 106, + 65, + -84, + 65, + -18, + 66, + 48, + 66, + 114, + 66, + -75, + 66, + -9, + 67, + 58, + 67, + 125, + 67, + -64, + 68, + 3, + 68, + 71, + 68, + -118, + 68, + -50, + 69, + 18, + 69, + 85, + 69, + -102, + 69, + -34, + 70, + 34, + 70, + 103, + 70, + -85, + 70, + -16, + 71, + 53, + 71, + 123, + 71, + -64, + 72, + 5, + 72, + 75, + 72, + -111, + 72, + -41, + 73, + 29, + 73, + 99, + 73, + -87, + 73, + -16, + 74, + 55, + 74, + 125, + 74, + -60, + 75, + 12, + 75, + 83, + 75, + -102, + 75, + -30, + 76, + 42, + 76, + 114, + 76, + -70, + 77, + 2, + 77, + 74, + 77, + -109, + 77, + -36, + 78, + 37, + 78, + 110, + 78, + -73, + 79, + 0, + 79, + 73, + 79, + -109, + 79, + -35, + 80, + 39, + 80, + 113, + 80, + -69, + 81, + 6, + 81, + 80, + 81, + -101, + 81, + -26, + 82, + 49, + 82, + 124, + 82, + -57, + 83, + 19, + 83, + 95, + 83, + -86, + 83, + -10, + 84, + 66, + 84, + -113, + 84, + -37, + 85, + 40, + 85, + 117, + 85, + -62, + 86, + 15, + 86, + 92, + 86, + -87, + 86, + -9, + 87, + 68, + 87, + -110, + 87, + -32, + 88, + 47, + 88, + 125, + 88, + -53, + 89, + 26, + 89, + 105, + 89, + -72, + 90, + 7, + 90, + 86, + 90, + -90, + 90, + -11, + 91, + 69, + 91, + -107, + 91, + -27, + 92, + 53, + 92, + -122, + 92, + -42, + 93, + 39, + 93, + 120, + 93, + -55, + 94, + 26, + 94, + 108, + 94, + -67, + 95, + 15, + 95, + 97, + 95, + -77, + 96, + 5, + 96, + 87, + 96, + -86, + 96, + -4, + 97, + 79, + 97, + -94, + 97, + -11, + 98, + 73, + 98, + -100, + 98, + -16, + 99, + 67, + 99, + -105, + 99, + -21, + 100, + 64, + 100, + -108, + 100, + -23, + 101, + 61, + 101, + -110, + 101, + -25, + 102, + 61, + 102, + -110, + 102, + -24, + 103, + 61, + 103, + -109, + 103, + -23, + 104, + 63, + 104, + -106, + 104, + -20, + 105, + 67, + 105, + -102, + 105, + -15, + 106, + 72, + 106, + -97, + 106, + -9, + 107, + 79, + 107, + -89, + 107, + -1, + 108, + 87, + 108, + -81, + 109, + 8, + 109, + 96, + 109, + -71, + 110, + 18, + 110, + 107, + 110, + -60, + 111, + 30, + 111, + 120, + 111, + -47, + 112, + 43, + 112, + -122, + 112, + -32, + 113, + 58, + 113, + -107, + 113, + -16, + 114, + 75, + 114, + -90, + 115, + 1, + 115, + 93, + 115, + -72, + 116, + 20, + 116, + 112, + 116, + -52, + 117, + 40, + 117, + -123, + 117, + -31, + 118, + 62, + 118, + -101, + 118, + -8, + 119, + 86, + 119, + -77, + 120, + 17, + 120, + 110, + 120, + -52, + 121, + 42, + 121, + -119, + 121, + -25, + 122, + 70, + 122, + -91, + 123, + 4, + 123, + 99, + 123, + -62, + 124, + 33, + 124, + -127, + 124, + -31, + 125, + 65, + 125, + -95, + 126, + 1, + 126, + 98, + 126, + -62, + 127, + 35, + 127, + -124, + 127, + -27, + -128, + 71, + -128, + -88, + -127, + 10, + -127, + 107, + -127, + -51, + -126, + 48, + -126, + -110, + -126, + -12, + -125, + 87, + -125, + -70, + -124, + 29, + -124, + -128, + -124, + -29, + -123, + 71, + -123, + -85, + -122, + 14, + -122, + 114, + -122, + -41, + -121, + 59, + -121, + -97, + -120, + 4, + -120, + 105, + -120, + -50, + -119, + 51, + -119, + -103, + -119, + -2, + -118, + 100, + -118, + -54, + -117, + 48, + -117, + -106, + -117, + -4, + -116, + 99, + -116, + -54, + -115, + 49, + -115, + -104, + -115, + -1, + -114, + 102, + -114, + -50, + -113, + 54, + -113, + -98, + -112, + 6, + -112, + 110, + -112, + -42, + -111, + 63, + -111, + -88, + -110, + 17, + -110, + 122, + -110, + -29, + -109, + 77, + -109, + -74, + -108, + 32, + -108, + -118, + -108, + -12, + -107, + 95, + -107, + -55, + -106, + 52, + -106, + -97, + -105, + 10, + -105, + 117, + -105, + -32, + -104, + 76, + -104, + -72, + -103, + 36, + -103, + -112, + -103, + -4, + -102, + 104, + -102, + -43, + -101, + 66, + -101, + -81, + -100, + 28, + -100, + -119, + -100, + -9, + -99, + 100, + -99, + -46, + -98, + 64, + -98, + -82, + -97, + 29, + -97, + -117, + -97, + -6, + -96, + 105, + -96, + -40, + -95, + 71, + -95, + -74, + -94, + 38, + -94, + -106, + -93, + 6, + -93, + 118, + -93, + -26, + -92, + 86, + -92, + -57, + -91, + 56, + -91, + -87, + -90, + 26, + -90, + -117, + -90, + -3, + -89, + 110, + -89, + -32, + -88, + 82, + -88, + -60, + -87, + 55, + -87, + -87, + -86, + 28, + -86, + -113, + -85, + 2, + -85, + 117, + -85, + -23, + -84, + 92, + -84, + -48, + -83, + 68, + -83, + -72, + -82, + 45, + -82, + -95, + -81, + 22, + -81, + -117, + -80, + 0, + -80, + 117, + -80, + -22, + -79, + 96, + -79, + -42, + -78, + 75, + -78, + -62, + -77, + 56, + -77, + -82, + -76, + 37, + -76, + -100, + -75, + 19, + -75, + -118, + -74, + 1, + -74, + 121, + -74, + -16, + -73, + 104, + -73, + -32, + -72, + 89, + -72, + -47, + -71, + 74, + -71, + -62, + -70, + 59, + -70, + -75, + -69, + 46, + -69, + -89, + -68, + 33, + -68, + -101, + -67, + 21, + -67, + -113, + -66, + 10, + -66, + -124, + -66, + -1, + -65, + 122, + -65, + -11, + -64, + 112, + -64, + -20, + -63, + 103, + -63, + -29, + -62, + 95, + -62, + -37, + -61, + 88, + -61, + -44, + -60, + 81, + -60, + -50, + -59, + 75, + -59, + -56, + -58, + 70, + -58, + -61, + -57, + 65, + -57, + -65, + -56, + 61, + -56, + -68, + -55, + 58, + -55, + -71, + -54, + 56, + -54, + -73, + -53, + 54, + -53, + -74, + -52, + 53, + -52, + -75, + -51, + 53, + -51, + -75, + -50, + 54, + -50, + -74, + -49, + 55, + -49, + -72, + -48, + 57, + -48, + -70, + -47, + 60, + -47, + -66, + -46, + 63, + -46, + -63, + -45, + 68, + -45, + -58, + -44, + 73, + -44, + -53, + -43, + 78, + -43, + -47, + -42, + 85, + -42, + -40, + -41, + 92, + -41, + -32, + -40, + 100, + -40, + -24, + -39, + 108, + -39, + -15, + -38, + 118, + -38, + -5, + -37, + -128, + -36, + 5, + -36, + -118, + -35, + 16, + -35, + -106, + -34, + 28, + -34, + -94, + -33, + 41, + -33, + -81, + -32, + 54, + -32, + -67, + -31, + 68, + -31, + -52, + -30, + 83, + -30, + -37, + -29, + 99, + -29, + -21, + -28, + 115, + -28, + -4, + -27, + -124, + -26, + 13, + -26, + -106, + -25, + 31, + -25, + -87, + -24, + 50, + -24, + -68, + -23, + 70, + -23, + -48, + -22, + 91, + -22, + -27, + -21, + 112, + -21, + -5, + -20, + -122, + -19, + 17, + -19, + -100, + -18, + 40, + -18, + -76, + -17, + 64, + -17, + -52, + -16, + 88, + -16, + -27, + -15, + 114, + -15, + -1, + -14, + -116, + -13, + 25, + -13, + -89, + -12, + 52, + -12, + -62, + -11, + 80, + -11, + -34, + -10, + 109, + -10, + -5, + -9, + -118, + -8, + 25, + -8, + -88, + -7, + 56, + -7, + -57, + -6, + 87, + -6, + -25, + -5, + 119, + -4, + 7, + -4, + -104, + -3, + 41, + -3, + -70, + -2, + 75, + -2, + -36, + -1, + 109, + -1, + -1, + 99, + 117, + 114, + 118, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 5, + 0, + 10, + 0, + 15, + 0, + 20, + 0, + 25, + 0, + 30, + 0, + 35, + 0, + 40, + 0, + 45, + 0, + 50, + 0, + 55, + 0, + 59, + 0, + 64, + 0, + 69, + 0, + 74, + 0, + 79, + 0, + 84, + 0, + 89, + 0, + 94, + 0, + 99, + 0, + 104, + 0, + 109, + 0, + 114, + 0, + 119, + 0, + 124, + 0, + -127, + 0, + -122, + 0, + -117, + 0, + -112, + 0, + -107, + 0, + -102, + 0, + -97, + 0, + -92, + 0, + -87, + 0, + -82, + 0, + -78, + 0, + -73, + 0, + -68, + 0, + -63, + 0, + -58, + 0, + -53, + 0, + -48, + 0, + -43, + 0, + -37, + 0, + -32, + 0, + -27, + 0, + -21, + 0, + -16, + 0, + -10, + 0, + -5, + 1, + 1, + 1, + 7, + 1, + 13, + 1, + 19, + 1, + 25, + 1, + 31, + 1, + 37, + 1, + 43, + 1, + 50, + 1, + 56, + 1, + 62, + 1, + 69, + 1, + 76, + 1, + 82, + 1, + 89, + 1, + 96, + 1, + 103, + 1, + 110, + 1, + 117, + 1, + 124, + 1, + -125, + 1, + -117, + 1, + -110, + 1, + -102, + 1, + -95, + 1, + -87, + 1, + -79, + 1, + -71, + 1, + -63, + 1, + -55, + 1, + -47, + 1, + -39, + 1, + -31, + 1, + -23, + 1, + -14, + 1, + -6, + 2, + 3, + 2, + 12, + 2, + 20, + 2, + 29, + 2, + 38, + 2, + 47, + 2, + 56, + 2, + 65, + 2, + 75, + 2, + 84, + 2, + 93, + 2, + 103, + 2, + 113, + 2, + 122, + 2, + -124, + 2, + -114, + 2, + -104, + 2, + -94, + 2, + -84, + 2, + -74, + 2, + -63, + 2, + -53, + 2, + -43, + 2, + -32, + 2, + -21, + 2, + -11, + 3, + 0, + 3, + 11, + 3, + 22, + 3, + 33, + 3, + 45, + 3, + 56, + 3, + 67, + 3, + 79, + 3, + 90, + 3, + 102, + 3, + 114, + 3, + 126, + 3, + -118, + 3, + -106, + 3, + -94, + 3, + -82, + 3, + -70, + 3, + -57, + 3, + -45, + 3, + -32, + 3, + -20, + 3, + -7, + 4, + 6, + 4, + 19, + 4, + 32, + 4, + 45, + 4, + 59, + 4, + 72, + 4, + 85, + 4, + 99, + 4, + 113, + 4, + 126, + 4, + -116, + 4, + -102, + 4, + -88, + 4, + -74, + 4, + -60, + 4, + -45, + 4, + -31, + 4, + -16, + 4, + -2, + 5, + 13, + 5, + 28, + 5, + 43, + 5, + 58, + 5, + 73, + 5, + 88, + 5, + 103, + 5, + 119, + 5, + -122, + 5, + -106, + 5, + -90, + 5, + -75, + 5, + -59, + 5, + -43, + 5, + -27, + 5, + -10, + 6, + 6, + 6, + 22, + 6, + 39, + 6, + 55, + 6, + 72, + 6, + 89, + 6, + 106, + 6, + 123, + 6, + -116, + 6, + -99, + 6, + -81, + 6, + -64, + 6, + -47, + 6, + -29, + 6, + -11, + 7, + 7, + 7, + 25, + 7, + 43, + 7, + 61, + 7, + 79, + 7, + 97, + 7, + 116, + 7, + -122, + 7, + -103, + 7, + -84, + 7, + -65, + 7, + -46, + 7, + -27, + 7, + -8, + 8, + 11, + 8, + 31, + 8, + 50, + 8, + 70, + 8, + 90, + 8, + 110, + 8, + -126, + 8, + -106, + 8, + -86, + 8, + -66, + 8, + -46, + 8, + -25, + 8, + -5, + 9, + 16, + 9, + 37, + 9, + 58, + 9, + 79, + 9, + 100, + 9, + 121, + 9, + -113, + 9, + -92, + 9, + -70, + 9, + -49, + 9, + -27, + 9, + -5, + 10, + 17, + 10, + 39, + 10, + 61, + 10, + 84, + 10, + 106, + 10, + -127, + 10, + -104, + 10, + -82, + 10, + -59, + 10, + -36, + 10, + -13, + 11, + 11, + 11, + 34, + 11, + 57, + 11, + 81, + 11, + 105, + 11, + -128, + 11, + -104, + 11, + -80, + 11, + -56, + 11, + -31, + 11, + -7, + 12, + 18, + 12, + 42, + 12, + 67, + 12, + 92, + 12, + 117, + 12, + -114, + 12, + -89, + 12, + -64, + 12, + -39, + 12, + -13, + 13, + 13, + 13, + 38, + 13, + 64, + 13, + 90, + 13, + 116, + 13, + -114, + 13, + -87, + 13, + -61, + 13, + -34, + 13, + -8, + 14, + 19, + 14, + 46, + 14, + 73, + 14, + 100, + 14, + 127, + 14, + -101, + 14, + -74, + 14, + -46, + 14, + -18, + 15, + 9, + 15, + 37, + 15, + 65, + 15, + 94, + 15, + 122, + 15, + -106, + 15, + -77, + 15, + -49, + 15, + -20, + 16, + 9, + 16, + 38, + 16, + 67, + 16, + 97, + 16, + 126, + 16, + -101, + 16, + -71, + 16, + -41, + 16, + -11, + 17, + 19, + 17, + 49, + 17, + 79, + 17, + 109, + 17, + -116, + 17, + -86, + 17, + -55, + 17, + -24, + 18, + 7, + 18, + 38, + 18, + 69, + 18, + 100, + 18, + -124, + 18, + -93, + 18, + -61, + 18, + -29, + 19, + 3, + 19, + 35, + 19, + 67, + 19, + 99, + 19, + -125, + 19, + -92, + 19, + -59, + 19, + -27, + 20, + 6, + 20, + 39, + 20, + 73, + 20, + 106, + 20, + -117, + 20, + -83, + 20, + -50, + 20, + -16, + 21, + 18, + 21, + 52, + 21, + 86, + 21, + 120, + 21, + -101, + 21, + -67, + 21, + -32, + 22, + 3, + 22, + 38, + 22, + 73, + 22, + 108, + 22, + -113, + 22, + -78, + 22, + -42, + 22, + -6, + 23, + 29, + 23, + 65, + 23, + 101, + 23, + -119, + 23, + -82, + 23, + -46, + 23, + -9, + 24, + 27, + 24, + 64, + 24, + 101, + 24, + -118, + 24, + -81, + 24, + -43, + 24, + -6, + 25, + 32, + 25, + 69, + 25, + 107, + 25, + -111, + 25, + -73, + 25, + -35, + 26, + 4, + 26, + 42, + 26, + 81, + 26, + 119, + 26, + -98, + 26, + -59, + 26, + -20, + 27, + 20, + 27, + 59, + 27, + 99, + 27, + -118, + 27, + -78, + 27, + -38, + 28, + 2, + 28, + 42, + 28, + 82, + 28, + 123, + 28, + -93, + 28, + -52, + 28, + -11, + 29, + 30, + 29, + 71, + 29, + 112, + 29, + -103, + 29, + -61, + 29, + -20, + 30, + 22, + 30, + 64, + 30, + 106, + 30, + -108, + 30, + -66, + 30, + -23, + 31, + 19, + 31, + 62, + 31, + 105, + 31, + -108, + 31, + -65, + 31, + -22, + 32, + 21, + 32, + 65, + 32, + 108, + 32, + -104, + 32, + -60, + 32, + -16, + 33, + 28, + 33, + 72, + 33, + 117, + 33, + -95, + 33, + -50, + 33, + -5, + 34, + 39, + 34, + 85, + 34, + -126, + 34, + -81, + 34, + -35, + 35, + 10, + 35, + 56, + 35, + 102, + 35, + -108, + 35, + -62, + 35, + -16, + 36, + 31, + 36, + 77, + 36, + 124, + 36, + -85, + 36, + -38, + 37, + 9, + 37, + 56, + 37, + 104, + 37, + -105, + 37, + -57, + 37, + -9, + 38, + 39, + 38, + 87, + 38, + -121, + 38, + -73, + 38, + -24, + 39, + 24, + 39, + 73, + 39, + 122, + 39, + -85, + 39, + -36, + 40, + 13, + 40, + 63, + 40, + 113, + 40, + -94, + 40, + -44, + 41, + 6, + 41, + 56, + 41, + 107, + 41, + -99, + 41, + -48, + 42, + 2, + 42, + 53, + 42, + 104, + 42, + -101, + 42, + -49, + 43, + 2, + 43, + 54, + 43, + 105, + 43, + -99, + 43, + -47, + 44, + 5, + 44, + 57, + 44, + 110, + 44, + -94, + 44, + -41, + 45, + 12, + 45, + 65, + 45, + 118, + 45, + -85, + 45, + -31, + 46, + 22, + 46, + 76, + 46, + -126, + 46, + -73, + 46, + -18, + 47, + 36, + 47, + 90, + 47, + -111, + 47, + -57, + 47, + -2, + 48, + 53, + 48, + 108, + 48, + -92, + 48, + -37, + 49, + 18, + 49, + 74, + 49, + -126, + 49, + -70, + 49, + -14, + 50, + 42, + 50, + 99, + 50, + -101, + 50, + -44, + 51, + 13, + 51, + 70, + 51, + 127, + 51, + -72, + 51, + -15, + 52, + 43, + 52, + 101, + 52, + -98, + 52, + -40, + 53, + 19, + 53, + 77, + 53, + -121, + 53, + -62, + 53, + -3, + 54, + 55, + 54, + 114, + 54, + -82, + 54, + -23, + 55, + 36, + 55, + 96, + 55, + -100, + 55, + -41, + 56, + 20, + 56, + 80, + 56, + -116, + 56, + -56, + 57, + 5, + 57, + 66, + 57, + 127, + 57, + -68, + 57, + -7, + 58, + 54, + 58, + 116, + 58, + -78, + 58, + -17, + 59, + 45, + 59, + 107, + 59, + -86, + 59, + -24, + 60, + 39, + 60, + 101, + 60, + -92, + 60, + -29, + 61, + 34, + 61, + 97, + 61, + -95, + 61, + -32, + 62, + 32, + 62, + 96, + 62, + -96, + 62, + -32, + 63, + 33, + 63, + 97, + 63, + -94, + 63, + -30, + 64, + 35, + 64, + 100, + 64, + -90, + 64, + -25, + 65, + 41, + 65, + 106, + 65, + -84, + 65, + -18, + 66, + 48, + 66, + 114, + 66, + -75, + 66, + -9, + 67, + 58, + 67, + 125, + 67, + -64, + 68, + 3, + 68, + 71, + 68, + -118, + 68, + -50, + 69, + 18, + 69, + 85, + 69, + -102, + 69, + -34, + 70, + 34, + 70, + 103, + 70, + -85, + 70, + -16, + 71, + 53, + 71, + 123, + 71, + -64, + 72, + 5, + 72, + 75, + 72, + -111, + 72, + -41, + 73, + 29, + 73, + 99, + 73, + -87, + 73, + -16, + 74, + 55, + 74, + 125, + 74, + -60, + 75, + 12, + 75, + 83, + 75, + -102, + 75, + -30, + 76, + 42, + 76, + 114, + 76, + -70, + 77, + 2, + 77, + 74, + 77, + -109, + 77, + -36, + 78, + 37, + 78, + 110, + 78, + -73, + 79, + 0, + 79, + 73, + 79, + -109, + 79, + -35, + 80, + 39, + 80, + 113, + 80, + -69, + 81, + 6, + 81, + 80, + 81, + -101, + 81, + -26, + 82, + 49, + 82, + 124, + 82, + -57, + 83, + 19, + 83, + 95, + 83, + -86, + 83, + -10, + 84, + 66, + 84, + -113, + 84, + -37, + 85, + 40, + 85, + 117, + 85, + -62, + 86, + 15, + 86, + 92, + 86, + -87, + 86, + -9, + 87, + 68, + 87, + -110, + 87, + -32, + 88, + 47, + 88, + 125, + 88, + -53, + 89, + 26, + 89, + 105, + 89, + -72, + 90, + 7, + 90, + 86, + 90, + -90, + 90, + -11, + 91, + 69, + 91, + -107, + 91, + -27, + 92, + 53, + 92, + -122, + 92, + -42, + 93, + 39, + 93, + 120, + 93, + -55, + 94, + 26, + 94, + 108, + 94, + -67, + 95, + 15, + 95, + 97, + 95, + -77, + 96, + 5, + 96, + 87, + 96, + -86, + 96, + -4, + 97, + 79, + 97, + -94, + 97, + -11, + 98, + 73, + 98, + -100, + 98, + -16, + 99, + 67, + 99, + -105, + 99, + -21, + 100, + 64, + 100, + -108, + 100, + -23, + 101, + 61, + 101, + -110, + 101, + -25, + 102, + 61, + 102, + -110, + 102, + -24, + 103, + 61, + 103, + -109, + 103, + -23, + 104, + 63, + 104, + -106, + 104, + -20, + 105, + 67, + 105, + -102, + 105, + -15, + 106, + 72, + 106, + -97, + 106, + -9, + 107, + 79, + 107, + -89, + 107, + -1, + 108, + 87, + 108, + -81, + 109, + 8, + 109, + 96, + 109, + -71, + 110, + 18, + 110, + 107, + 110, + -60, + 111, + 30, + 111, + 120, + 111, + -47, + 112, + 43, + 112, + -122, + 112, + -32, + 113, + 58, + 113, + -107, + 113, + -16, + 114, + 75, + 114, + -90, + 115, + 1, + 115, + 93, + 115, + -72, + 116, + 20, + 116, + 112, + 116, + -52, + 117, + 40, + 117, + -123, + 117, + -31, + 118, + 62, + 118, + -101, + 118, + -8, + 119, + 86, + 119, + -77, + 120, + 17, + 120, + 110, + 120, + -52, + 121, + 42, + 121, + -119, + 121, + -25, + 122, + 70, + 122, + -91, + 123, + 4, + 123, + 99, + 123, + -62, + 124, + 33, + 124, + -127, + 124, + -31, + 125, + 65, + 125, + -95, + 126, + 1, + 126, + 98, + 126, + -62, + 127, + 35, + 127, + -124, + 127, + -27, + -128, + 71, + -128, + -88, + -127, + 10, + -127, + 107, + -127, + -51, + -126, + 48, + -126, + -110, + -126, + -12, + -125, + 87, + -125, + -70, + -124, + 29, + -124, + -128, + -124, + -29, + -123, + 71, + -123, + -85, + -122, + 14, + -122, + 114, + -122, + -41, + -121, + 59, + -121, + -97, + -120, + 4, + -120, + 105, + -120, + -50, + -119, + 51, + -119, + -103, + -119, + -2, + -118, + 100, + -118, + -54, + -117, + 48, + -117, + -106, + -117, + -4, + -116, + 99, + -116, + -54, + -115, + 49, + -115, + -104, + -115, + -1, + -114, + 102, + -114, + -50, + -113, + 54, + -113, + -98, + -112, + 6, + -112, + 110, + -112, + -42, + -111, + 63, + -111, + -88, + -110, + 17, + -110, + 122, + -110, + -29, + -109, + 77, + -109, + -74, + -108, + 32, + -108, + -118, + -108, + -12, + -107, + 95, + -107, + -55, + -106, + 52, + -106, + -97, + -105, + 10, + -105, + 117, + -105, + -32, + -104, + 76, + -104, + -72, + -103, + 36, + -103, + -112, + -103, + -4, + -102, + 104, + -102, + -43, + -101, + 66, + -101, + -81, + -100, + 28, + -100, + -119, + -100, + -9, + -99, + 100, + -99, + -46, + -98, + 64, + -98, + -82, + -97, + 29, + -97, + -117, + -97, + -6, + -96, + 105, + -96, + -40, + -95, + 71, + -95, + -74, + -94, + 38, + -94, + -106, + -93, + 6, + -93, + 118, + -93, + -26, + -92, + 86, + -92, + -57, + -91, + 56, + -91, + -87, + -90, + 26, + -90, + -117, + -90, + -3, + -89, + 110, + -89, + -32, + -88, + 82, + -88, + -60, + -87, + 55, + -87, + -87, + -86, + 28, + -86, + -113, + -85, + 2, + -85, + 117, + -85, + -23, + -84, + 92, + -84, + -48, + -83, + 68, + -83, + -72, + -82, + 45, + -82, + -95, + -81, + 22, + -81, + -117, + -80, + 0, + -80, + 117, + -80, + -22, + -79, + 96, + -79, + -42, + -78, + 75, + -78, + -62, + -77, + 56, + -77, + -82, + -76, + 37, + -76, + -100, + -75, + 19, + -75, + -118, + -74, + 1, + -74, + 121, + -74, + -16, + -73, + 104, + -73, + -32, + -72, + 89, + -72, + -47, + -71, + 74, + -71, + -62, + -70, + 59, + -70, + -75, + -69, + 46, + -69, + -89, + -68, + 33, + -68, + -101, + -67, + 21, + -67, + -113, + -66, + 10, + -66, + -124, + -66, + -1, + -65, + 122, + -65, + -11, + -64, + 112, + -64, + -20, + -63, + 103, + -63, + -29, + -62, + 95, + -62, + -37, + -61, + 88, + -61, + -44, + -60, + 81, + -60, + -50, + -59, + 75, + -59, + -56, + -58, + 70, + -58, + -61, + -57, + 65, + -57, + -65, + -56, + 61, + -56, + -68, + -55, + 58, + -55, + -71, + -54, + 56, + -54, + -73, + -53, + 54, + -53, + -74, + -52, + 53, + -52, + -75, + -51, + 53, + -51, + -75, + -50, + 54, + -50, + -74, + -49, + 55, + -49, + -72, + -48, + 57, + -48, + -70, + -47, + 60, + -47, + -66, + -46, + 63, + -46, + -63, + -45, + 68, + -45, + -58, + -44, + 73, + -44, + -53, + -43, + 78, + -43, + -47, + -42, + 85, + -42, + -40, + -41, + 92, + -41, + -32, + -40, + 100, + -40, + -24, + -39, + 108, + -39, + -15, + -38, + 118, + -38, + -5, + -37, + -128, + -36, + 5, + -36, + -118, + -35, + 16, + -35, + -106, + -34, + 28, + -34, + -94, + -33, + 41, + -33, + -81, + -32, + 54, + -32, + -67, + -31, + 68, + -31, + -52, + -30, + 83, + -30, + -37, + -29, + 99, + -29, + -21, + -28, + 115, + -28, + -4, + -27, + -124, + -26, + 13, + -26, + -106, + -25, + 31, + -25, + -87, + -24, + 50, + -24, + -68, + -23, + 70, + -23, + -48, + -22, + 91, + -22, + -27, + -21, + 112, + -21, + -5, + -20, + -122, + -19, + 17, + -19, + -100, + -18, + 40, + -18, + -76, + -17, + 64, + -17, + -52, + -16, + 88, + -16, + -27, + -15, + 114, + -15, + -1, + -14, + -116, + -13, + 25, + -13, + -89, + -12, + 52, + -12, + -62, + -11, + 80, + -11, + -34, + -10, + 109, + -10, + -5, + -9, + -118, + -8, + 25, + -8, + -88, + -7, + 56, + -7, + -57, + -6, + 87, + -6, + -25, + -5, + 119, + -4, + 7, + -4, + -104, + -3, + 41, + -3, + -70, + -2, + 75, + -2, + -36, + -1, + 109, + -1, + -1, + 99, + 104, + 114, + 109, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + -93, + -41, + 0, + 0, + 84, + 123, + 0, + 0, + 76, + -51, + 0, + 0, + -103, + -102, + 0, + 0, + 38, + 102, + 0, + 0, + 15, + 92 + ], + "majorVersion":2, + "matrix":[ + [ + 0.43585205, + 0.3853302, + 0.14302063 + ], + [ + 0.22238159, + 0.717041, + 0.06059265 + ], + [ + 0.013916016, + 0.09713745, + 0.71383667 + ] + ], + "mediaWhitePoint":[ + 0.95014954, + 1.0, + 1.0882568 + ], + "minorVersion":48, + "numComponents":3, + "profileClass":1 + }, + "type":5 + }, + "green":170, + "red":234, + "transparency":1 + }, + "presentLessonColorB":99, + "presentLessonColorG":170, + "presentLessonColorR":234, + "temp_feature_notice":true, + "weight":300, + "windowBgColor":{ + "RGB":32700413, + "alpha":1, + "blue":253, + "colorSpace":{ + "CS_sRGB":true, + "numComponents":3, + "profile":{ + "PCSType":0, + "colorSpaceType":5, + "data":[ + 0, + 0, + 26, + -36, + 108, + 99, + 109, + 115, + 2, + 48, + 0, + 0, + 109, + 110, + 116, + 114, + 82, + 71, + 66, + 32, + 88, + 89, + 90, + 32, + 7, + -42, + 0, + 12, + 0, + 28, + 0, + 18, + 0, + 7, + 0, + 22, + 97, + 99, + 115, + 112, + 77, + 83, + 70, + 84, + 0, + 0, + 0, + 0, + 108, + 99, + 109, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10, + -42, + 0, + 1, + 0, + 0, + 0, + 0, + -45, + 45, + 108, + 99, + 109, + 115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11, + 100, + 109, + 110, + 100, + 0, + 0, + 1, + 8, + 0, + 0, + 0, + 106, + 100, + 101, + 115, + 99, + 0, + 0, + 1, + 116, + 0, + 0, + 0, + 104, + 100, + 109, + 100, + 100, + 0, + 0, + 1, + -36, + 0, + 0, + 0, + 104, + 119, + 116, + 112, + 116, + 0, + 0, + 2, + 68, + 0, + 0, + 0, + 20, + 114, + 88, + 89, + 90, + 0, + 0, + 2, + 88, + 0, + 0, + 0, + 20, + 98, + 88, + 89, + 90, + 0, + 0, + 2, + 108, + 0, + 0, + 0, + 20, + 103, + 88, + 89, + 90, + 0, + 0, + 2, + -128, + 0, + 0, + 0, + 20, + 114, + 84, + 82, + 67, + 0, + 0, + 2, + -108, + 0, + 0, + 8, + 12, + 103, + 84, + 82, + 67, + 0, + 0, + 10, + -96, + 0, + 0, + 8, + 12, + 98, + 84, + 82, + 67, + 0, + 0, + 18, + -84, + 0, + 0, + 8, + 12, + 99, + 104, + 114, + 109, + 0, + 0, + 26, + -72, + 0, + 0, + 0, + 36, + 100, + 101, + 115, + 99, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16, + 40, + 108, + 99, + 109, + 115, + 32, + 105, + 110, + 116, + 101, + 114, + 110, + 97, + 108, + 41, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 100, + 101, + 115, + 99, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14, + 115, + 82, + 71, + 66, + 32, + 98, + 117, + 105, + 108, + 116, + 45, + 105, + 110, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 100, + 101, + 115, + 99, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14, + 115, + 82, + 71, + 66, + 32, + 98, + 117, + 105, + 108, + 116, + 45, + 105, + 110, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + -13, + 61, + 0, + 1, + 0, + 0, + 0, + 1, + 22, + -104, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 111, + -108, + 0, + 0, + 56, + -18, + 0, + 0, + 3, + -112, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 36, + -99, + 0, + 0, + 15, + -125, + 0, + 0, + -74, + -66, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 98, + -91, + 0, + 0, + -73, + -112, + 0, + 0, + 24, + -34, + 99, + 117, + 114, + 118, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 5, + 0, + 10, + 0, + 15, + 0, + 20, + 0, + 25, + 0, + 30, + 0, + 35, + 0, + 40, + 0, + 45, + 0, + 50, + 0, + 55, + 0, + 59, + 0, + 64, + 0, + 69, + 0, + 74, + 0, + 79, + 0, + 84, + 0, + 89, + 0, + 94, + 0, + 99, + 0, + 104, + 0, + 109, + 0, + 114, + 0, + 119, + 0, + 124, + 0, + -127, + 0, + -122, + 0, + -117, + 0, + -112, + 0, + -107, + 0, + -102, + 0, + -97, + 0, + -92, + 0, + -87, + 0, + -82, + 0, + -78, + 0, + -73, + 0, + -68, + 0, + -63, + 0, + -58, + 0, + -53, + 0, + -48, + 0, + -43, + 0, + -37, + 0, + -32, + 0, + -27, + 0, + -21, + 0, + -16, + 0, + -10, + 0, + -5, + 1, + 1, + 1, + 7, + 1, + 13, + 1, + 19, + 1, + 25, + 1, + 31, + 1, + 37, + 1, + 43, + 1, + 50, + 1, + 56, + 1, + 62, + 1, + 69, + 1, + 76, + 1, + 82, + 1, + 89, + 1, + 96, + 1, + 103, + 1, + 110, + 1, + 117, + 1, + 124, + 1, + -125, + 1, + -117, + 1, + -110, + 1, + -102, + 1, + -95, + 1, + -87, + 1, + -79, + 1, + -71, + 1, + -63, + 1, + -55, + 1, + -47, + 1, + -39, + 1, + -31, + 1, + -23, + 1, + -14, + 1, + -6, + 2, + 3, + 2, + 12, + 2, + 20, + 2, + 29, + 2, + 38, + 2, + 47, + 2, + 56, + 2, + 65, + 2, + 75, + 2, + 84, + 2, + 93, + 2, + 103, + 2, + 113, + 2, + 122, + 2, + -124, + 2, + -114, + 2, + -104, + 2, + -94, + 2, + -84, + 2, + -74, + 2, + -63, + 2, + -53, + 2, + -43, + 2, + -32, + 2, + -21, + 2, + -11, + 3, + 0, + 3, + 11, + 3, + 22, + 3, + 33, + 3, + 45, + 3, + 56, + 3, + 67, + 3, + 79, + 3, + 90, + 3, + 102, + 3, + 114, + 3, + 126, + 3, + -118, + 3, + -106, + 3, + -94, + 3, + -82, + 3, + -70, + 3, + -57, + 3, + -45, + 3, + -32, + 3, + -20, + 3, + -7, + 4, + 6, + 4, + 19, + 4, + 32, + 4, + 45, + 4, + 59, + 4, + 72, + 4, + 85, + 4, + 99, + 4, + 113, + 4, + 126, + 4, + -116, + 4, + -102, + 4, + -88, + 4, + -74, + 4, + -60, + 4, + -45, + 4, + -31, + 4, + -16, + 4, + -2, + 5, + 13, + 5, + 28, + 5, + 43, + 5, + 58, + 5, + 73, + 5, + 88, + 5, + 103, + 5, + 119, + 5, + -122, + 5, + -106, + 5, + -90, + 5, + -75, + 5, + -59, + 5, + -43, + 5, + -27, + 5, + -10, + 6, + 6, + 6, + 22, + 6, + 39, + 6, + 55, + 6, + 72, + 6, + 89, + 6, + 106, + 6, + 123, + 6, + -116, + 6, + -99, + 6, + -81, + 6, + -64, + 6, + -47, + 6, + -29, + 6, + -11, + 7, + 7, + 7, + 25, + 7, + 43, + 7, + 61, + 7, + 79, + 7, + 97, + 7, + 116, + 7, + -122, + 7, + -103, + 7, + -84, + 7, + -65, + 7, + -46, + 7, + -27, + 7, + -8, + 8, + 11, + 8, + 31, + 8, + 50, + 8, + 70, + 8, + 90, + 8, + 110, + 8, + -126, + 8, + -106, + 8, + -86, + 8, + -66, + 8, + -46, + 8, + -25, + 8, + -5, + 9, + 16, + 9, + 37, + 9, + 58, + 9, + 79, + 9, + 100, + 9, + 121, + 9, + -113, + 9, + -92, + 9, + -70, + 9, + -49, + 9, + -27, + 9, + -5, + 10, + 17, + 10, + 39, + 10, + 61, + 10, + 84, + 10, + 106, + 10, + -127, + 10, + -104, + 10, + -82, + 10, + -59, + 10, + -36, + 10, + -13, + 11, + 11, + 11, + 34, + 11, + 57, + 11, + 81, + 11, + 105, + 11, + -128, + 11, + -104, + 11, + -80, + 11, + -56, + 11, + -31, + 11, + -7, + 12, + 18, + 12, + 42, + 12, + 67, + 12, + 92, + 12, + 117, + 12, + -114, + 12, + -89, + 12, + -64, + 12, + -39, + 12, + -13, + 13, + 13, + 13, + 38, + 13, + 64, + 13, + 90, + 13, + 116, + 13, + -114, + 13, + -87, + 13, + -61, + 13, + -34, + 13, + -8, + 14, + 19, + 14, + 46, + 14, + 73, + 14, + 100, + 14, + 127, + 14, + -101, + 14, + -74, + 14, + -46, + 14, + -18, + 15, + 9, + 15, + 37, + 15, + 65, + 15, + 94, + 15, + 122, + 15, + -106, + 15, + -77, + 15, + -49, + 15, + -20, + 16, + 9, + 16, + 38, + 16, + 67, + 16, + 97, + 16, + 126, + 16, + -101, + 16, + -71, + 16, + -41, + 16, + -11, + 17, + 19, + 17, + 49, + 17, + 79, + 17, + 109, + 17, + -116, + 17, + -86, + 17, + -55, + 17, + -24, + 18, + 7, + 18, + 38, + 18, + 69, + 18, + 100, + 18, + -124, + 18, + -93, + 18, + -61, + 18, + -29, + 19, + 3, + 19, + 35, + 19, + 67, + 19, + 99, + 19, + -125, + 19, + -92, + 19, + -59, + 19, + -27, + 20, + 6, + 20, + 39, + 20, + 73, + 20, + 106, + 20, + -117, + 20, + -83, + 20, + -50, + 20, + -16, + 21, + 18, + 21, + 52, + 21, + 86, + 21, + 120, + 21, + -101, + 21, + -67, + 21, + -32, + 22, + 3, + 22, + 38, + 22, + 73, + 22, + 108, + 22, + -113, + 22, + -78, + 22, + -42, + 22, + -6, + 23, + 29, + 23, + 65, + 23, + 101, + 23, + -119, + 23, + -82, + 23, + -46, + 23, + -9, + 24, + 27, + 24, + 64, + 24, + 101, + 24, + -118, + 24, + -81, + 24, + -43, + 24, + -6, + 25, + 32, + 25, + 69, + 25, + 107, + 25, + -111, + 25, + -73, + 25, + -35, + 26, + 4, + 26, + 42, + 26, + 81, + 26, + 119, + 26, + -98, + 26, + -59, + 26, + -20, + 27, + 20, + 27, + 59, + 27, + 99, + 27, + -118, + 27, + -78, + 27, + -38, + 28, + 2, + 28, + 42, + 28, + 82, + 28, + 123, + 28, + -93, + 28, + -52, + 28, + -11, + 29, + 30, + 29, + 71, + 29, + 112, + 29, + -103, + 29, + -61, + 29, + -20, + 30, + 22, + 30, + 64, + 30, + 106, + 30, + -108, + 30, + -66, + 30, + -23, + 31, + 19, + 31, + 62, + 31, + 105, + 31, + -108, + 31, + -65, + 31, + -22, + 32, + 21, + 32, + 65, + 32, + 108, + 32, + -104, + 32, + -60, + 32, + -16, + 33, + 28, + 33, + 72, + 33, + 117, + 33, + -95, + 33, + -50, + 33, + -5, + 34, + 39, + 34, + 85, + 34, + -126, + 34, + -81, + 34, + -35, + 35, + 10, + 35, + 56, + 35, + 102, + 35, + -108, + 35, + -62, + 35, + -16, + 36, + 31, + 36, + 77, + 36, + 124, + 36, + -85, + 36, + -38, + 37, + 9, + 37, + 56, + 37, + 104, + 37, + -105, + 37, + -57, + 37, + -9, + 38, + 39, + 38, + 87, + 38, + -121, + 38, + -73, + 38, + -24, + 39, + 24, + 39, + 73, + 39, + 122, + 39, + -85, + 39, + -36, + 40, + 13, + 40, + 63, + 40, + 113, + 40, + -94, + 40, + -44, + 41, + 6, + 41, + 56, + 41, + 107, + 41, + -99, + 41, + -48, + 42, + 2, + 42, + 53, + 42, + 104, + 42, + -101, + 42, + -49, + 43, + 2, + 43, + 54, + 43, + 105, + 43, + -99, + 43, + -47, + 44, + 5, + 44, + 57, + 44, + 110, + 44, + -94, + 44, + -41, + 45, + 12, + 45, + 65, + 45, + 118, + 45, + -85, + 45, + -31, + 46, + 22, + 46, + 76, + 46, + -126, + 46, + -73, + 46, + -18, + 47, + 36, + 47, + 90, + 47, + -111, + 47, + -57, + 47, + -2, + 48, + 53, + 48, + 108, + 48, + -92, + 48, + -37, + 49, + 18, + 49, + 74, + 49, + -126, + 49, + -70, + 49, + -14, + 50, + 42, + 50, + 99, + 50, + -101, + 50, + -44, + 51, + 13, + 51, + 70, + 51, + 127, + 51, + -72, + 51, + -15, + 52, + 43, + 52, + 101, + 52, + -98, + 52, + -40, + 53, + 19, + 53, + 77, + 53, + -121, + 53, + -62, + 53, + -3, + 54, + 55, + 54, + 114, + 54, + -82, + 54, + -23, + 55, + 36, + 55, + 96, + 55, + -100, + 55, + -41, + 56, + 20, + 56, + 80, + 56, + -116, + 56, + -56, + 57, + 5, + 57, + 66, + 57, + 127, + 57, + -68, + 57, + -7, + 58, + 54, + 58, + 116, + 58, + -78, + 58, + -17, + 59, + 45, + 59, + 107, + 59, + -86, + 59, + -24, + 60, + 39, + 60, + 101, + 60, + -92, + 60, + -29, + 61, + 34, + 61, + 97, + 61, + -95, + 61, + -32, + 62, + 32, + 62, + 96, + 62, + -96, + 62, + -32, + 63, + 33, + 63, + 97, + 63, + -94, + 63, + -30, + 64, + 35, + 64, + 100, + 64, + -90, + 64, + -25, + 65, + 41, + 65, + 106, + 65, + -84, + 65, + -18, + 66, + 48, + 66, + 114, + 66, + -75, + 66, + -9, + 67, + 58, + 67, + 125, + 67, + -64, + 68, + 3, + 68, + 71, + 68, + -118, + 68, + -50, + 69, + 18, + 69, + 85, + 69, + -102, + 69, + -34, + 70, + 34, + 70, + 103, + 70, + -85, + 70, + -16, + 71, + 53, + 71, + 123, + 71, + -64, + 72, + 5, + 72, + 75, + 72, + -111, + 72, + -41, + 73, + 29, + 73, + 99, + 73, + -87, + 73, + -16, + 74, + 55, + 74, + 125, + 74, + -60, + 75, + 12, + 75, + 83, + 75, + -102, + 75, + -30, + 76, + 42, + 76, + 114, + 76, + -70, + 77, + 2, + 77, + 74, + 77, + -109, + 77, + -36, + 78, + 37, + 78, + 110, + 78, + -73, + 79, + 0, + 79, + 73, + 79, + -109, + 79, + -35, + 80, + 39, + 80, + 113, + 80, + -69, + 81, + 6, + 81, + 80, + 81, + -101, + 81, + -26, + 82, + 49, + 82, + 124, + 82, + -57, + 83, + 19, + 83, + 95, + 83, + -86, + 83, + -10, + 84, + 66, + 84, + -113, + 84, + -37, + 85, + 40, + 85, + 117, + 85, + -62, + 86, + 15, + 86, + 92, + 86, + -87, + 86, + -9, + 87, + 68, + 87, + -110, + 87, + -32, + 88, + 47, + 88, + 125, + 88, + -53, + 89, + 26, + 89, + 105, + 89, + -72, + 90, + 7, + 90, + 86, + 90, + -90, + 90, + -11, + 91, + 69, + 91, + -107, + 91, + -27, + 92, + 53, + 92, + -122, + 92, + -42, + 93, + 39, + 93, + 120, + 93, + -55, + 94, + 26, + 94, + 108, + 94, + -67, + 95, + 15, + 95, + 97, + 95, + -77, + 96, + 5, + 96, + 87, + 96, + -86, + 96, + -4, + 97, + 79, + 97, + -94, + 97, + -11, + 98, + 73, + 98, + -100, + 98, + -16, + 99, + 67, + 99, + -105, + 99, + -21, + 100, + 64, + 100, + -108, + 100, + -23, + 101, + 61, + 101, + -110, + 101, + -25, + 102, + 61, + 102, + -110, + 102, + -24, + 103, + 61, + 103, + -109, + 103, + -23, + 104, + 63, + 104, + -106, + 104, + -20, + 105, + 67, + 105, + -102, + 105, + -15, + 106, + 72, + 106, + -97, + 106, + -9, + 107, + 79, + 107, + -89, + 107, + -1, + 108, + 87, + 108, + -81, + 109, + 8, + 109, + 96, + 109, + -71, + 110, + 18, + 110, + 107, + 110, + -60, + 111, + 30, + 111, + 120, + 111, + -47, + 112, + 43, + 112, + -122, + 112, + -32, + 113, + 58, + 113, + -107, + 113, + -16, + 114, + 75, + 114, + -90, + 115, + 1, + 115, + 93, + 115, + -72, + 116, + 20, + 116, + 112, + 116, + -52, + 117, + 40, + 117, + -123, + 117, + -31, + 118, + 62, + 118, + -101, + 118, + -8, + 119, + 86, + 119, + -77, + 120, + 17, + 120, + 110, + 120, + -52, + 121, + 42, + 121, + -119, + 121, + -25, + 122, + 70, + 122, + -91, + 123, + 4, + 123, + 99, + 123, + -62, + 124, + 33, + 124, + -127, + 124, + -31, + 125, + 65, + 125, + -95, + 126, + 1, + 126, + 98, + 126, + -62, + 127, + 35, + 127, + -124, + 127, + -27, + -128, + 71, + -128, + -88, + -127, + 10, + -127, + 107, + -127, + -51, + -126, + 48, + -126, + -110, + -126, + -12, + -125, + 87, + -125, + -70, + -124, + 29, + -124, + -128, + -124, + -29, + -123, + 71, + -123, + -85, + -122, + 14, + -122, + 114, + -122, + -41, + -121, + 59, + -121, + -97, + -120, + 4, + -120, + 105, + -120, + -50, + -119, + 51, + -119, + -103, + -119, + -2, + -118, + 100, + -118, + -54, + -117, + 48, + -117, + -106, + -117, + -4, + -116, + 99, + -116, + -54, + -115, + 49, + -115, + -104, + -115, + -1, + -114, + 102, + -114, + -50, + -113, + 54, + -113, + -98, + -112, + 6, + -112, + 110, + -112, + -42, + -111, + 63, + -111, + -88, + -110, + 17, + -110, + 122, + -110, + -29, + -109, + 77, + -109, + -74, + -108, + 32, + -108, + -118, + -108, + -12, + -107, + 95, + -107, + -55, + -106, + 52, + -106, + -97, + -105, + 10, + -105, + 117, + -105, + -32, + -104, + 76, + -104, + -72, + -103, + 36, + -103, + -112, + -103, + -4, + -102, + 104, + -102, + -43, + -101, + 66, + -101, + -81, + -100, + 28, + -100, + -119, + -100, + -9, + -99, + 100, + -99, + -46, + -98, + 64, + -98, + -82, + -97, + 29, + -97, + -117, + -97, + -6, + -96, + 105, + -96, + -40, + -95, + 71, + -95, + -74, + -94, + 38, + -94, + -106, + -93, + 6, + -93, + 118, + -93, + -26, + -92, + 86, + -92, + -57, + -91, + 56, + -91, + -87, + -90, + 26, + -90, + -117, + -90, + -3, + -89, + 110, + -89, + -32, + -88, + 82, + -88, + -60, + -87, + 55, + -87, + -87, + -86, + 28, + -86, + -113, + -85, + 2, + -85, + 117, + -85, + -23, + -84, + 92, + -84, + -48, + -83, + 68, + -83, + -72, + -82, + 45, + -82, + -95, + -81, + 22, + -81, + -117, + -80, + 0, + -80, + 117, + -80, + -22, + -79, + 96, + -79, + -42, + -78, + 75, + -78, + -62, + -77, + 56, + -77, + -82, + -76, + 37, + -76, + -100, + -75, + 19, + -75, + -118, + -74, + 1, + -74, + 121, + -74, + -16, + -73, + 104, + -73, + -32, + -72, + 89, + -72, + -47, + -71, + 74, + -71, + -62, + -70, + 59, + -70, + -75, + -69, + 46, + -69, + -89, + -68, + 33, + -68, + -101, + -67, + 21, + -67, + -113, + -66, + 10, + -66, + -124, + -66, + -1, + -65, + 122, + -65, + -11, + -64, + 112, + -64, + -20, + -63, + 103, + -63, + -29, + -62, + 95, + -62, + -37, + -61, + 88, + -61, + -44, + -60, + 81, + -60, + -50, + -59, + 75, + -59, + -56, + -58, + 70, + -58, + -61, + -57, + 65, + -57, + -65, + -56, + 61, + -56, + -68, + -55, + 58, + -55, + -71, + -54, + 56, + -54, + -73, + -53, + 54, + -53, + -74, + -52, + 53, + -52, + -75, + -51, + 53, + -51, + -75, + -50, + 54, + -50, + -74, + -49, + 55, + -49, + -72, + -48, + 57, + -48, + -70, + -47, + 60, + -47, + -66, + -46, + 63, + -46, + -63, + -45, + 68, + -45, + -58, + -44, + 73, + -44, + -53, + -43, + 78, + -43, + -47, + -42, + 85, + -42, + -40, + -41, + 92, + -41, + -32, + -40, + 100, + -40, + -24, + -39, + 108, + -39, + -15, + -38, + 118, + -38, + -5, + -37, + -128, + -36, + 5, + -36, + -118, + -35, + 16, + -35, + -106, + -34, + 28, + -34, + -94, + -33, + 41, + -33, + -81, + -32, + 54, + -32, + -67, + -31, + 68, + -31, + -52, + -30, + 83, + -30, + -37, + -29, + 99, + -29, + -21, + -28, + 115, + -28, + -4, + -27, + -124, + -26, + 13, + -26, + -106, + -25, + 31, + -25, + -87, + -24, + 50, + -24, + -68, + -23, + 70, + -23, + -48, + -22, + 91, + -22, + -27, + -21, + 112, + -21, + -5, + -20, + -122, + -19, + 17, + -19, + -100, + -18, + 40, + -18, + -76, + -17, + 64, + -17, + -52, + -16, + 88, + -16, + -27, + -15, + 114, + -15, + -1, + -14, + -116, + -13, + 25, + -13, + -89, + -12, + 52, + -12, + -62, + -11, + 80, + -11, + -34, + -10, + 109, + -10, + -5, + -9, + -118, + -8, + 25, + -8, + -88, + -7, + 56, + -7, + -57, + -6, + 87, + -6, + -25, + -5, + 119, + -4, + 7, + -4, + -104, + -3, + 41, + -3, + -70, + -2, + 75, + -2, + -36, + -1, + 109, + -1, + -1, + 99, + 117, + 114, + 118, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 5, + 0, + 10, + 0, + 15, + 0, + 20, + 0, + 25, + 0, + 30, + 0, + 35, + 0, + 40, + 0, + 45, + 0, + 50, + 0, + 55, + 0, + 59, + 0, + 64, + 0, + 69, + 0, + 74, + 0, + 79, + 0, + 84, + 0, + 89, + 0, + 94, + 0, + 99, + 0, + 104, + 0, + 109, + 0, + 114, + 0, + 119, + 0, + 124, + 0, + -127, + 0, + -122, + 0, + -117, + 0, + -112, + 0, + -107, + 0, + -102, + 0, + -97, + 0, + -92, + 0, + -87, + 0, + -82, + 0, + -78, + 0, + -73, + 0, + -68, + 0, + -63, + 0, + -58, + 0, + -53, + 0, + -48, + 0, + -43, + 0, + -37, + 0, + -32, + 0, + -27, + 0, + -21, + 0, + -16, + 0, + -10, + 0, + -5, + 1, + 1, + 1, + 7, + 1, + 13, + 1, + 19, + 1, + 25, + 1, + 31, + 1, + 37, + 1, + 43, + 1, + 50, + 1, + 56, + 1, + 62, + 1, + 69, + 1, + 76, + 1, + 82, + 1, + 89, + 1, + 96, + 1, + 103, + 1, + 110, + 1, + 117, + 1, + 124, + 1, + -125, + 1, + -117, + 1, + -110, + 1, + -102, + 1, + -95, + 1, + -87, + 1, + -79, + 1, + -71, + 1, + -63, + 1, + -55, + 1, + -47, + 1, + -39, + 1, + -31, + 1, + -23, + 1, + -14, + 1, + -6, + 2, + 3, + 2, + 12, + 2, + 20, + 2, + 29, + 2, + 38, + 2, + 47, + 2, + 56, + 2, + 65, + 2, + 75, + 2, + 84, + 2, + 93, + 2, + 103, + 2, + 113, + 2, + 122, + 2, + -124, + 2, + -114, + 2, + -104, + 2, + -94, + 2, + -84, + 2, + -74, + 2, + -63, + 2, + -53, + 2, + -43, + 2, + -32, + 2, + -21, + 2, + -11, + 3, + 0, + 3, + 11, + 3, + 22, + 3, + 33, + 3, + 45, + 3, + 56, + 3, + 67, + 3, + 79, + 3, + 90, + 3, + 102, + 3, + 114, + 3, + 126, + 3, + -118, + 3, + -106, + 3, + -94, + 3, + -82, + 3, + -70, + 3, + -57, + 3, + -45, + 3, + -32, + 3, + -20, + 3, + -7, + 4, + 6, + 4, + 19, + 4, + 32, + 4, + 45, + 4, + 59, + 4, + 72, + 4, + 85, + 4, + 99, + 4, + 113, + 4, + 126, + 4, + -116, + 4, + -102, + 4, + -88, + 4, + -74, + 4, + -60, + 4, + -45, + 4, + -31, + 4, + -16, + 4, + -2, + 5, + 13, + 5, + 28, + 5, + 43, + 5, + 58, + 5, + 73, + 5, + 88, + 5, + 103, + 5, + 119, + 5, + -122, + 5, + -106, + 5, + -90, + 5, + -75, + 5, + -59, + 5, + -43, + 5, + -27, + 5, + -10, + 6, + 6, + 6, + 22, + 6, + 39, + 6, + 55, + 6, + 72, + 6, + 89, + 6, + 106, + 6, + 123, + 6, + -116, + 6, + -99, + 6, + -81, + 6, + -64, + 6, + -47, + 6, + -29, + 6, + -11, + 7, + 7, + 7, + 25, + 7, + 43, + 7, + 61, + 7, + 79, + 7, + 97, + 7, + 116, + 7, + -122, + 7, + -103, + 7, + -84, + 7, + -65, + 7, + -46, + 7, + -27, + 7, + -8, + 8, + 11, + 8, + 31, + 8, + 50, + 8, + 70, + 8, + 90, + 8, + 110, + 8, + -126, + 8, + -106, + 8, + -86, + 8, + -66, + 8, + -46, + 8, + -25, + 8, + -5, + 9, + 16, + 9, + 37, + 9, + 58, + 9, + 79, + 9, + 100, + 9, + 121, + 9, + -113, + 9, + -92, + 9, + -70, + 9, + -49, + 9, + -27, + 9, + -5, + 10, + 17, + 10, + 39, + 10, + 61, + 10, + 84, + 10, + 106, + 10, + -127, + 10, + -104, + 10, + -82, + 10, + -59, + 10, + -36, + 10, + -13, + 11, + 11, + 11, + 34, + 11, + 57, + 11, + 81, + 11, + 105, + 11, + -128, + 11, + -104, + 11, + -80, + 11, + -56, + 11, + -31, + 11, + -7, + 12, + 18, + 12, + 42, + 12, + 67, + 12, + 92, + 12, + 117, + 12, + -114, + 12, + -89, + 12, + -64, + 12, + -39, + 12, + -13, + 13, + 13, + 13, + 38, + 13, + 64, + 13, + 90, + 13, + 116, + 13, + -114, + 13, + -87, + 13, + -61, + 13, + -34, + 13, + -8, + 14, + 19, + 14, + 46, + 14, + 73, + 14, + 100, + 14, + 127, + 14, + -101, + 14, + -74, + 14, + -46, + 14, + -18, + 15, + 9, + 15, + 37, + 15, + 65, + 15, + 94, + 15, + 122, + 15, + -106, + 15, + -77, + 15, + -49, + 15, + -20, + 16, + 9, + 16, + 38, + 16, + 67, + 16, + 97, + 16, + 126, + 16, + -101, + 16, + -71, + 16, + -41, + 16, + -11, + 17, + 19, + 17, + 49, + 17, + 79, + 17, + 109, + 17, + -116, + 17, + -86, + 17, + -55, + 17, + -24, + 18, + 7, + 18, + 38, + 18, + 69, + 18, + 100, + 18, + -124, + 18, + -93, + 18, + -61, + 18, + -29, + 19, + 3, + 19, + 35, + 19, + 67, + 19, + 99, + 19, + -125, + 19, + -92, + 19, + -59, + 19, + -27, + 20, + 6, + 20, + 39, + 20, + 73, + 20, + 106, + 20, + -117, + 20, + -83, + 20, + -50, + 20, + -16, + 21, + 18, + 21, + 52, + 21, + 86, + 21, + 120, + 21, + -101, + 21, + -67, + 21, + -32, + 22, + 3, + 22, + 38, + 22, + 73, + 22, + 108, + 22, + -113, + 22, + -78, + 22, + -42, + 22, + -6, + 23, + 29, + 23, + 65, + 23, + 101, + 23, + -119, + 23, + -82, + 23, + -46, + 23, + -9, + 24, + 27, + 24, + 64, + 24, + 101, + 24, + -118, + 24, + -81, + 24, + -43, + 24, + -6, + 25, + 32, + 25, + 69, + 25, + 107, + 25, + -111, + 25, + -73, + 25, + -35, + 26, + 4, + 26, + 42, + 26, + 81, + 26, + 119, + 26, + -98, + 26, + -59, + 26, + -20, + 27, + 20, + 27, + 59, + 27, + 99, + 27, + -118, + 27, + -78, + 27, + -38, + 28, + 2, + 28, + 42, + 28, + 82, + 28, + 123, + 28, + -93, + 28, + -52, + 28, + -11, + 29, + 30, + 29, + 71, + 29, + 112, + 29, + -103, + 29, + -61, + 29, + -20, + 30, + 22, + 30, + 64, + 30, + 106, + 30, + -108, + 30, + -66, + 30, + -23, + 31, + 19, + 31, + 62, + 31, + 105, + 31, + -108, + 31, + -65, + 31, + -22, + 32, + 21, + 32, + 65, + 32, + 108, + 32, + -104, + 32, + -60, + 32, + -16, + 33, + 28, + 33, + 72, + 33, + 117, + 33, + -95, + 33, + -50, + 33, + -5, + 34, + 39, + 34, + 85, + 34, + -126, + 34, + -81, + 34, + -35, + 35, + 10, + 35, + 56, + 35, + 102, + 35, + -108, + 35, + -62, + 35, + -16, + 36, + 31, + 36, + 77, + 36, + 124, + 36, + -85, + 36, + -38, + 37, + 9, + 37, + 56, + 37, + 104, + 37, + -105, + 37, + -57, + 37, + -9, + 38, + 39, + 38, + 87, + 38, + -121, + 38, + -73, + 38, + -24, + 39, + 24, + 39, + 73, + 39, + 122, + 39, + -85, + 39, + -36, + 40, + 13, + 40, + 63, + 40, + 113, + 40, + -94, + 40, + -44, + 41, + 6, + 41, + 56, + 41, + 107, + 41, + -99, + 41, + -48, + 42, + 2, + 42, + 53, + 42, + 104, + 42, + -101, + 42, + -49, + 43, + 2, + 43, + 54, + 43, + 105, + 43, + -99, + 43, + -47, + 44, + 5, + 44, + 57, + 44, + 110, + 44, + -94, + 44, + -41, + 45, + 12, + 45, + 65, + 45, + 118, + 45, + -85, + 45, + -31, + 46, + 22, + 46, + 76, + 46, + -126, + 46, + -73, + 46, + -18, + 47, + 36, + 47, + 90, + 47, + -111, + 47, + -57, + 47, + -2, + 48, + 53, + 48, + 108, + 48, + -92, + 48, + -37, + 49, + 18, + 49, + 74, + 49, + -126, + 49, + -70, + 49, + -14, + 50, + 42, + 50, + 99, + 50, + -101, + 50, + -44, + 51, + 13, + 51, + 70, + 51, + 127, + 51, + -72, + 51, + -15, + 52, + 43, + 52, + 101, + 52, + -98, + 52, + -40, + 53, + 19, + 53, + 77, + 53, + -121, + 53, + -62, + 53, + -3, + 54, + 55, + 54, + 114, + 54, + -82, + 54, + -23, + 55, + 36, + 55, + 96, + 55, + -100, + 55, + -41, + 56, + 20, + 56, + 80, + 56, + -116, + 56, + -56, + 57, + 5, + 57, + 66, + 57, + 127, + 57, + -68, + 57, + -7, + 58, + 54, + 58, + 116, + 58, + -78, + 58, + -17, + 59, + 45, + 59, + 107, + 59, + -86, + 59, + -24, + 60, + 39, + 60, + 101, + 60, + -92, + 60, + -29, + 61, + 34, + 61, + 97, + 61, + -95, + 61, + -32, + 62, + 32, + 62, + 96, + 62, + -96, + 62, + -32, + 63, + 33, + 63, + 97, + 63, + -94, + 63, + -30, + 64, + 35, + 64, + 100, + 64, + -90, + 64, + -25, + 65, + 41, + 65, + 106, + 65, + -84, + 65, + -18, + 66, + 48, + 66, + 114, + 66, + -75, + 66, + -9, + 67, + 58, + 67, + 125, + 67, + -64, + 68, + 3, + 68, + 71, + 68, + -118, + 68, + -50, + 69, + 18, + 69, + 85, + 69, + -102, + 69, + -34, + 70, + 34, + 70, + 103, + 70, + -85, + 70, + -16, + 71, + 53, + 71, + 123, + 71, + -64, + 72, + 5, + 72, + 75, + 72, + -111, + 72, + -41, + 73, + 29, + 73, + 99, + 73, + -87, + 73, + -16, + 74, + 55, + 74, + 125, + 74, + -60, + 75, + 12, + 75, + 83, + 75, + -102, + 75, + -30, + 76, + 42, + 76, + 114, + 76, + -70, + 77, + 2, + 77, + 74, + 77, + -109, + 77, + -36, + 78, + 37, + 78, + 110, + 78, + -73, + 79, + 0, + 79, + 73, + 79, + -109, + 79, + -35, + 80, + 39, + 80, + 113, + 80, + -69, + 81, + 6, + 81, + 80, + 81, + -101, + 81, + -26, + 82, + 49, + 82, + 124, + 82, + -57, + 83, + 19, + 83, + 95, + 83, + -86, + 83, + -10, + 84, + 66, + 84, + -113, + 84, + -37, + 85, + 40, + 85, + 117, + 85, + -62, + 86, + 15, + 86, + 92, + 86, + -87, + 86, + -9, + 87, + 68, + 87, + -110, + 87, + -32, + 88, + 47, + 88, + 125, + 88, + -53, + 89, + 26, + 89, + 105, + 89, + -72, + 90, + 7, + 90, + 86, + 90, + -90, + 90, + -11, + 91, + 69, + 91, + -107, + 91, + -27, + 92, + 53, + 92, + -122, + 92, + -42, + 93, + 39, + 93, + 120, + 93, + -55, + 94, + 26, + 94, + 108, + 94, + -67, + 95, + 15, + 95, + 97, + 95, + -77, + 96, + 5, + 96, + 87, + 96, + -86, + 96, + -4, + 97, + 79, + 97, + -94, + 97, + -11, + 98, + 73, + 98, + -100, + 98, + -16, + 99, + 67, + 99, + -105, + 99, + -21, + 100, + 64, + 100, + -108, + 100, + -23, + 101, + 61, + 101, + -110, + 101, + -25, + 102, + 61, + 102, + -110, + 102, + -24, + 103, + 61, + 103, + -109, + 103, + -23, + 104, + 63, + 104, + -106, + 104, + -20, + 105, + 67, + 105, + -102, + 105, + -15, + 106, + 72, + 106, + -97, + 106, + -9, + 107, + 79, + 107, + -89, + 107, + -1, + 108, + 87, + 108, + -81, + 109, + 8, + 109, + 96, + 109, + -71, + 110, + 18, + 110, + 107, + 110, + -60, + 111, + 30, + 111, + 120, + 111, + -47, + 112, + 43, + 112, + -122, + 112, + -32, + 113, + 58, + 113, + -107, + 113, + -16, + 114, + 75, + 114, + -90, + 115, + 1, + 115, + 93, + 115, + -72, + 116, + 20, + 116, + 112, + 116, + -52, + 117, + 40, + 117, + -123, + 117, + -31, + 118, + 62, + 118, + -101, + 118, + -8, + 119, + 86, + 119, + -77, + 120, + 17, + 120, + 110, + 120, + -52, + 121, + 42, + 121, + -119, + 121, + -25, + 122, + 70, + 122, + -91, + 123, + 4, + 123, + 99, + 123, + -62, + 124, + 33, + 124, + -127, + 124, + -31, + 125, + 65, + 125, + -95, + 126, + 1, + 126, + 98, + 126, + -62, + 127, + 35, + 127, + -124, + 127, + -27, + -128, + 71, + -128, + -88, + -127, + 10, + -127, + 107, + -127, + -51, + -126, + 48, + -126, + -110, + -126, + -12, + -125, + 87, + -125, + -70, + -124, + 29, + -124, + -128, + -124, + -29, + -123, + 71, + -123, + -85, + -122, + 14, + -122, + 114, + -122, + -41, + -121, + 59, + -121, + -97, + -120, + 4, + -120, + 105, + -120, + -50, + -119, + 51, + -119, + -103, + -119, + -2, + -118, + 100, + -118, + -54, + -117, + 48, + -117, + -106, + -117, + -4, + -116, + 99, + -116, + -54, + -115, + 49, + -115, + -104, + -115, + -1, + -114, + 102, + -114, + -50, + -113, + 54, + -113, + -98, + -112, + 6, + -112, + 110, + -112, + -42, + -111, + 63, + -111, + -88, + -110, + 17, + -110, + 122, + -110, + -29, + -109, + 77, + -109, + -74, + -108, + 32, + -108, + -118, + -108, + -12, + -107, + 95, + -107, + -55, + -106, + 52, + -106, + -97, + -105, + 10, + -105, + 117, + -105, + -32, + -104, + 76, + -104, + -72, + -103, + 36, + -103, + -112, + -103, + -4, + -102, + 104, + -102, + -43, + -101, + 66, + -101, + -81, + -100, + 28, + -100, + -119, + -100, + -9, + -99, + 100, + -99, + -46, + -98, + 64, + -98, + -82, + -97, + 29, + -97, + -117, + -97, + -6, + -96, + 105, + -96, + -40, + -95, + 71, + -95, + -74, + -94, + 38, + -94, + -106, + -93, + 6, + -93, + 118, + -93, + -26, + -92, + 86, + -92, + -57, + -91, + 56, + -91, + -87, + -90, + 26, + -90, + -117, + -90, + -3, + -89, + 110, + -89, + -32, + -88, + 82, + -88, + -60, + -87, + 55, + -87, + -87, + -86, + 28, + -86, + -113, + -85, + 2, + -85, + 117, + -85, + -23, + -84, + 92, + -84, + -48, + -83, + 68, + -83, + -72, + -82, + 45, + -82, + -95, + -81, + 22, + -81, + -117, + -80, + 0, + -80, + 117, + -80, + -22, + -79, + 96, + -79, + -42, + -78, + 75, + -78, + -62, + -77, + 56, + -77, + -82, + -76, + 37, + -76, + -100, + -75, + 19, + -75, + -118, + -74, + 1, + -74, + 121, + -74, + -16, + -73, + 104, + -73, + -32, + -72, + 89, + -72, + -47, + -71, + 74, + -71, + -62, + -70, + 59, + -70, + -75, + -69, + 46, + -69, + -89, + -68, + 33, + -68, + -101, + -67, + 21, + -67, + -113, + -66, + 10, + -66, + -124, + -66, + -1, + -65, + 122, + -65, + -11, + -64, + 112, + -64, + -20, + -63, + 103, + -63, + -29, + -62, + 95, + -62, + -37, + -61, + 88, + -61, + -44, + -60, + 81, + -60, + -50, + -59, + 75, + -59, + -56, + -58, + 70, + -58, + -61, + -57, + 65, + -57, + -65, + -56, + 61, + -56, + -68, + -55, + 58, + -55, + -71, + -54, + 56, + -54, + -73, + -53, + 54, + -53, + -74, + -52, + 53, + -52, + -75, + -51, + 53, + -51, + -75, + -50, + 54, + -50, + -74, + -49, + 55, + -49, + -72, + -48, + 57, + -48, + -70, + -47, + 60, + -47, + -66, + -46, + 63, + -46, + -63, + -45, + 68, + -45, + -58, + -44, + 73, + -44, + -53, + -43, + 78, + -43, + -47, + -42, + 85, + -42, + -40, + -41, + 92, + -41, + -32, + -40, + 100, + -40, + -24, + -39, + 108, + -39, + -15, + -38, + 118, + -38, + -5, + -37, + -128, + -36, + 5, + -36, + -118, + -35, + 16, + -35, + -106, + -34, + 28, + -34, + -94, + -33, + 41, + -33, + -81, + -32, + 54, + -32, + -67, + -31, + 68, + -31, + -52, + -30, + 83, + -30, + -37, + -29, + 99, + -29, + -21, + -28, + 115, + -28, + -4, + -27, + -124, + -26, + 13, + -26, + -106, + -25, + 31, + -25, + -87, + -24, + 50, + -24, + -68, + -23, + 70, + -23, + -48, + -22, + 91, + -22, + -27, + -21, + 112, + -21, + -5, + -20, + -122, + -19, + 17, + -19, + -100, + -18, + 40, + -18, + -76, + -17, + 64, + -17, + -52, + -16, + 88, + -16, + -27, + -15, + 114, + -15, + -1, + -14, + -116, + -13, + 25, + -13, + -89, + -12, + 52, + -12, + -62, + -11, + 80, + -11, + -34, + -10, + 109, + -10, + -5, + -9, + -118, + -8, + 25, + -8, + -88, + -7, + 56, + -7, + -57, + -6, + 87, + -6, + -25, + -5, + 119, + -4, + 7, + -4, + -104, + -3, + 41, + -3, + -70, + -2, + 75, + -2, + -36, + -1, + 109, + -1, + -1, + 99, + 117, + 114, + 118, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 5, + 0, + 10, + 0, + 15, + 0, + 20, + 0, + 25, + 0, + 30, + 0, + 35, + 0, + 40, + 0, + 45, + 0, + 50, + 0, + 55, + 0, + 59, + 0, + 64, + 0, + 69, + 0, + 74, + 0, + 79, + 0, + 84, + 0, + 89, + 0, + 94, + 0, + 99, + 0, + 104, + 0, + 109, + 0, + 114, + 0, + 119, + 0, + 124, + 0, + -127, + 0, + -122, + 0, + -117, + 0, + -112, + 0, + -107, + 0, + -102, + 0, + -97, + 0, + -92, + 0, + -87, + 0, + -82, + 0, + -78, + 0, + -73, + 0, + -68, + 0, + -63, + 0, + -58, + 0, + -53, + 0, + -48, + 0, + -43, + 0, + -37, + 0, + -32, + 0, + -27, + 0, + -21, + 0, + -16, + 0, + -10, + 0, + -5, + 1, + 1, + 1, + 7, + 1, + 13, + 1, + 19, + 1, + 25, + 1, + 31, + 1, + 37, + 1, + 43, + 1, + 50, + 1, + 56, + 1, + 62, + 1, + 69, + 1, + 76, + 1, + 82, + 1, + 89, + 1, + 96, + 1, + 103, + 1, + 110, + 1, + 117, + 1, + 124, + 1, + -125, + 1, + -117, + 1, + -110, + 1, + -102, + 1, + -95, + 1, + -87, + 1, + -79, + 1, + -71, + 1, + -63, + 1, + -55, + 1, + -47, + 1, + -39, + 1, + -31, + 1, + -23, + 1, + -14, + 1, + -6, + 2, + 3, + 2, + 12, + 2, + 20, + 2, + 29, + 2, + 38, + 2, + 47, + 2, + 56, + 2, + 65, + 2, + 75, + 2, + 84, + 2, + 93, + 2, + 103, + 2, + 113, + 2, + 122, + 2, + -124, + 2, + -114, + 2, + -104, + 2, + -94, + 2, + -84, + 2, + -74, + 2, + -63, + 2, + -53, + 2, + -43, + 2, + -32, + 2, + -21, + 2, + -11, + 3, + 0, + 3, + 11, + 3, + 22, + 3, + 33, + 3, + 45, + 3, + 56, + 3, + 67, + 3, + 79, + 3, + 90, + 3, + 102, + 3, + 114, + 3, + 126, + 3, + -118, + 3, + -106, + 3, + -94, + 3, + -82, + 3, + -70, + 3, + -57, + 3, + -45, + 3, + -32, + 3, + -20, + 3, + -7, + 4, + 6, + 4, + 19, + 4, + 32, + 4, + 45, + 4, + 59, + 4, + 72, + 4, + 85, + 4, + 99, + 4, + 113, + 4, + 126, + 4, + -116, + 4, + -102, + 4, + -88, + 4, + -74, + 4, + -60, + 4, + -45, + 4, + -31, + 4, + -16, + 4, + -2, + 5, + 13, + 5, + 28, + 5, + 43, + 5, + 58, + 5, + 73, + 5, + 88, + 5, + 103, + 5, + 119, + 5, + -122, + 5, + -106, + 5, + -90, + 5, + -75, + 5, + -59, + 5, + -43, + 5, + -27, + 5, + -10, + 6, + 6, + 6, + 22, + 6, + 39, + 6, + 55, + 6, + 72, + 6, + 89, + 6, + 106, + 6, + 123, + 6, + -116, + 6, + -99, + 6, + -81, + 6, + -64, + 6, + -47, + 6, + -29, + 6, + -11, + 7, + 7, + 7, + 25, + 7, + 43, + 7, + 61, + 7, + 79, + 7, + 97, + 7, + 116, + 7, + -122, + 7, + -103, + 7, + -84, + 7, + -65, + 7, + -46, + 7, + -27, + 7, + -8, + 8, + 11, + 8, + 31, + 8, + 50, + 8, + 70, + 8, + 90, + 8, + 110, + 8, + -126, + 8, + -106, + 8, + -86, + 8, + -66, + 8, + -46, + 8, + -25, + 8, + -5, + 9, + 16, + 9, + 37, + 9, + 58, + 9, + 79, + 9, + 100, + 9, + 121, + 9, + -113, + 9, + -92, + 9, + -70, + 9, + -49, + 9, + -27, + 9, + -5, + 10, + 17, + 10, + 39, + 10, + 61, + 10, + 84, + 10, + 106, + 10, + -127, + 10, + -104, + 10, + -82, + 10, + -59, + 10, + -36, + 10, + -13, + 11, + 11, + 11, + 34, + 11, + 57, + 11, + 81, + 11, + 105, + 11, + -128, + 11, + -104, + 11, + -80, + 11, + -56, + 11, + -31, + 11, + -7, + 12, + 18, + 12, + 42, + 12, + 67, + 12, + 92, + 12, + 117, + 12, + -114, + 12, + -89, + 12, + -64, + 12, + -39, + 12, + -13, + 13, + 13, + 13, + 38, + 13, + 64, + 13, + 90, + 13, + 116, + 13, + -114, + 13, + -87, + 13, + -61, + 13, + -34, + 13, + -8, + 14, + 19, + 14, + 46, + 14, + 73, + 14, + 100, + 14, + 127, + 14, + -101, + 14, + -74, + 14, + -46, + 14, + -18, + 15, + 9, + 15, + 37, + 15, + 65, + 15, + 94, + 15, + 122, + 15, + -106, + 15, + -77, + 15, + -49, + 15, + -20, + 16, + 9, + 16, + 38, + 16, + 67, + 16, + 97, + 16, + 126, + 16, + -101, + 16, + -71, + 16, + -41, + 16, + -11, + 17, + 19, + 17, + 49, + 17, + 79, + 17, + 109, + 17, + -116, + 17, + -86, + 17, + -55, + 17, + -24, + 18, + 7, + 18, + 38, + 18, + 69, + 18, + 100, + 18, + -124, + 18, + -93, + 18, + -61, + 18, + -29, + 19, + 3, + 19, + 35, + 19, + 67, + 19, + 99, + 19, + -125, + 19, + -92, + 19, + -59, + 19, + -27, + 20, + 6, + 20, + 39, + 20, + 73, + 20, + 106, + 20, + -117, + 20, + -83, + 20, + -50, + 20, + -16, + 21, + 18, + 21, + 52, + 21, + 86, + 21, + 120, + 21, + -101, + 21, + -67, + 21, + -32, + 22, + 3, + 22, + 38, + 22, + 73, + 22, + 108, + 22, + -113, + 22, + -78, + 22, + -42, + 22, + -6, + 23, + 29, + 23, + 65, + 23, + 101, + 23, + -119, + 23, + -82, + 23, + -46, + 23, + -9, + 24, + 27, + 24, + 64, + 24, + 101, + 24, + -118, + 24, + -81, + 24, + -43, + 24, + -6, + 25, + 32, + 25, + 69, + 25, + 107, + 25, + -111, + 25, + -73, + 25, + -35, + 26, + 4, + 26, + 42, + 26, + 81, + 26, + 119, + 26, + -98, + 26, + -59, + 26, + -20, + 27, + 20, + 27, + 59, + 27, + 99, + 27, + -118, + 27, + -78, + 27, + -38, + 28, + 2, + 28, + 42, + 28, + 82, + 28, + 123, + 28, + -93, + 28, + -52, + 28, + -11, + 29, + 30, + 29, + 71, + 29, + 112, + 29, + -103, + 29, + -61, + 29, + -20, + 30, + 22, + 30, + 64, + 30, + 106, + 30, + -108, + 30, + -66, + 30, + -23, + 31, + 19, + 31, + 62, + 31, + 105, + 31, + -108, + 31, + -65, + 31, + -22, + 32, + 21, + 32, + 65, + 32, + 108, + 32, + -104, + 32, + -60, + 32, + -16, + 33, + 28, + 33, + 72, + 33, + 117, + 33, + -95, + 33, + -50, + 33, + -5, + 34, + 39, + 34, + 85, + 34, + -126, + 34, + -81, + 34, + -35, + 35, + 10, + 35, + 56, + 35, + 102, + 35, + -108, + 35, + -62, + 35, + -16, + 36, + 31, + 36, + 77, + 36, + 124, + 36, + -85, + 36, + -38, + 37, + 9, + 37, + 56, + 37, + 104, + 37, + -105, + 37, + -57, + 37, + -9, + 38, + 39, + 38, + 87, + 38, + -121, + 38, + -73, + 38, + -24, + 39, + 24, + 39, + 73, + 39, + 122, + 39, + -85, + 39, + -36, + 40, + 13, + 40, + 63, + 40, + 113, + 40, + -94, + 40, + -44, + 41, + 6, + 41, + 56, + 41, + 107, + 41, + -99, + 41, + -48, + 42, + 2, + 42, + 53, + 42, + 104, + 42, + -101, + 42, + -49, + 43, + 2, + 43, + 54, + 43, + 105, + 43, + -99, + 43, + -47, + 44, + 5, + 44, + 57, + 44, + 110, + 44, + -94, + 44, + -41, + 45, + 12, + 45, + 65, + 45, + 118, + 45, + -85, + 45, + -31, + 46, + 22, + 46, + 76, + 46, + -126, + 46, + -73, + 46, + -18, + 47, + 36, + 47, + 90, + 47, + -111, + 47, + -57, + 47, + -2, + 48, + 53, + 48, + 108, + 48, + -92, + 48, + -37, + 49, + 18, + 49, + 74, + 49, + -126, + 49, + -70, + 49, + -14, + 50, + 42, + 50, + 99, + 50, + -101, + 50, + -44, + 51, + 13, + 51, + 70, + 51, + 127, + 51, + -72, + 51, + -15, + 52, + 43, + 52, + 101, + 52, + -98, + 52, + -40, + 53, + 19, + 53, + 77, + 53, + -121, + 53, + -62, + 53, + -3, + 54, + 55, + 54, + 114, + 54, + -82, + 54, + -23, + 55, + 36, + 55, + 96, + 55, + -100, + 55, + -41, + 56, + 20, + 56, + 80, + 56, + -116, + 56, + -56, + 57, + 5, + 57, + 66, + 57, + 127, + 57, + -68, + 57, + -7, + 58, + 54, + 58, + 116, + 58, + -78, + 58, + -17, + 59, + 45, + 59, + 107, + 59, + -86, + 59, + -24, + 60, + 39, + 60, + 101, + 60, + -92, + 60, + -29, + 61, + 34, + 61, + 97, + 61, + -95, + 61, + -32, + 62, + 32, + 62, + 96, + 62, + -96, + 62, + -32, + 63, + 33, + 63, + 97, + 63, + -94, + 63, + -30, + 64, + 35, + 64, + 100, + 64, + -90, + 64, + -25, + 65, + 41, + 65, + 106, + 65, + -84, + 65, + -18, + 66, + 48, + 66, + 114, + 66, + -75, + 66, + -9, + 67, + 58, + 67, + 125, + 67, + -64, + 68, + 3, + 68, + 71, + 68, + -118, + 68, + -50, + 69, + 18, + 69, + 85, + 69, + -102, + 69, + -34, + 70, + 34, + 70, + 103, + 70, + -85, + 70, + -16, + 71, + 53, + 71, + 123, + 71, + -64, + 72, + 5, + 72, + 75, + 72, + -111, + 72, + -41, + 73, + 29, + 73, + 99, + 73, + -87, + 73, + -16, + 74, + 55, + 74, + 125, + 74, + -60, + 75, + 12, + 75, + 83, + 75, + -102, + 75, + -30, + 76, + 42, + 76, + 114, + 76, + -70, + 77, + 2, + 77, + 74, + 77, + -109, + 77, + -36, + 78, + 37, + 78, + 110, + 78, + -73, + 79, + 0, + 79, + 73, + 79, + -109, + 79, + -35, + 80, + 39, + 80, + 113, + 80, + -69, + 81, + 6, + 81, + 80, + 81, + -101, + 81, + -26, + 82, + 49, + 82, + 124, + 82, + -57, + 83, + 19, + 83, + 95, + 83, + -86, + 83, + -10, + 84, + 66, + 84, + -113, + 84, + -37, + 85, + 40, + 85, + 117, + 85, + -62, + 86, + 15, + 86, + 92, + 86, + -87, + 86, + -9, + 87, + 68, + 87, + -110, + 87, + -32, + 88, + 47, + 88, + 125, + 88, + -53, + 89, + 26, + 89, + 105, + 89, + -72, + 90, + 7, + 90, + 86, + 90, + -90, + 90, + -11, + 91, + 69, + 91, + -107, + 91, + -27, + 92, + 53, + 92, + -122, + 92, + -42, + 93, + 39, + 93, + 120, + 93, + -55, + 94, + 26, + 94, + 108, + 94, + -67, + 95, + 15, + 95, + 97, + 95, + -77, + 96, + 5, + 96, + 87, + 96, + -86, + 96, + -4, + 97, + 79, + 97, + -94, + 97, + -11, + 98, + 73, + 98, + -100, + 98, + -16, + 99, + 67, + 99, + -105, + 99, + -21, + 100, + 64, + 100, + -108, + 100, + -23, + 101, + 61, + 101, + -110, + 101, + -25, + 102, + 61, + 102, + -110, + 102, + -24, + 103, + 61, + 103, + -109, + 103, + -23, + 104, + 63, + 104, + -106, + 104, + -20, + 105, + 67, + 105, + -102, + 105, + -15, + 106, + 72, + 106, + -97, + 106, + -9, + 107, + 79, + 107, + -89, + 107, + -1, + 108, + 87, + 108, + -81, + 109, + 8, + 109, + 96, + 109, + -71, + 110, + 18, + 110, + 107, + 110, + -60, + 111, + 30, + 111, + 120, + 111, + -47, + 112, + 43, + 112, + -122, + 112, + -32, + 113, + 58, + 113, + -107, + 113, + -16, + 114, + 75, + 114, + -90, + 115, + 1, + 115, + 93, + 115, + -72, + 116, + 20, + 116, + 112, + 116, + -52, + 117, + 40, + 117, + -123, + 117, + -31, + 118, + 62, + 118, + -101, + 118, + -8, + 119, + 86, + 119, + -77, + 120, + 17, + 120, + 110, + 120, + -52, + 121, + 42, + 121, + -119, + 121, + -25, + 122, + 70, + 122, + -91, + 123, + 4, + 123, + 99, + 123, + -62, + 124, + 33, + 124, + -127, + 124, + -31, + 125, + 65, + 125, + -95, + 126, + 1, + 126, + 98, + 126, + -62, + 127, + 35, + 127, + -124, + 127, + -27, + -128, + 71, + -128, + -88, + -127, + 10, + -127, + 107, + -127, + -51, + -126, + 48, + -126, + -110, + -126, + -12, + -125, + 87, + -125, + -70, + -124, + 29, + -124, + -128, + -124, + -29, + -123, + 71, + -123, + -85, + -122, + 14, + -122, + 114, + -122, + -41, + -121, + 59, + -121, + -97, + -120, + 4, + -120, + 105, + -120, + -50, + -119, + 51, + -119, + -103, + -119, + -2, + -118, + 100, + -118, + -54, + -117, + 48, + -117, + -106, + -117, + -4, + -116, + 99, + -116, + -54, + -115, + 49, + -115, + -104, + -115, + -1, + -114, + 102, + -114, + -50, + -113, + 54, + -113, + -98, + -112, + 6, + -112, + 110, + -112, + -42, + -111, + 63, + -111, + -88, + -110, + 17, + -110, + 122, + -110, + -29, + -109, + 77, + -109, + -74, + -108, + 32, + -108, + -118, + -108, + -12, + -107, + 95, + -107, + -55, + -106, + 52, + -106, + -97, + -105, + 10, + -105, + 117, + -105, + -32, + -104, + 76, + -104, + -72, + -103, + 36, + -103, + -112, + -103, + -4, + -102, + 104, + -102, + -43, + -101, + 66, + -101, + -81, + -100, + 28, + -100, + -119, + -100, + -9, + -99, + 100, + -99, + -46, + -98, + 64, + -98, + -82, + -97, + 29, + -97, + -117, + -97, + -6, + -96, + 105, + -96, + -40, + -95, + 71, + -95, + -74, + -94, + 38, + -94, + -106, + -93, + 6, + -93, + 118, + -93, + -26, + -92, + 86, + -92, + -57, + -91, + 56, + -91, + -87, + -90, + 26, + -90, + -117, + -90, + -3, + -89, + 110, + -89, + -32, + -88, + 82, + -88, + -60, + -87, + 55, + -87, + -87, + -86, + 28, + -86, + -113, + -85, + 2, + -85, + 117, + -85, + -23, + -84, + 92, + -84, + -48, + -83, + 68, + -83, + -72, + -82, + 45, + -82, + -95, + -81, + 22, + -81, + -117, + -80, + 0, + -80, + 117, + -80, + -22, + -79, + 96, + -79, + -42, + -78, + 75, + -78, + -62, + -77, + 56, + -77, + -82, + -76, + 37, + -76, + -100, + -75, + 19, + -75, + -118, + -74, + 1, + -74, + 121, + -74, + -16, + -73, + 104, + -73, + -32, + -72, + 89, + -72, + -47, + -71, + 74, + -71, + -62, + -70, + 59, + -70, + -75, + -69, + 46, + -69, + -89, + -68, + 33, + -68, + -101, + -67, + 21, + -67, + -113, + -66, + 10, + -66, + -124, + -66, + -1, + -65, + 122, + -65, + -11, + -64, + 112, + -64, + -20, + -63, + 103, + -63, + -29, + -62, + 95, + -62, + -37, + -61, + 88, + -61, + -44, + -60, + 81, + -60, + -50, + -59, + 75, + -59, + -56, + -58, + 70, + -58, + -61, + -57, + 65, + -57, + -65, + -56, + 61, + -56, + -68, + -55, + 58, + -55, + -71, + -54, + 56, + -54, + -73, + -53, + 54, + -53, + -74, + -52, + 53, + -52, + -75, + -51, + 53, + -51, + -75, + -50, + 54, + -50, + -74, + -49, + 55, + -49, + -72, + -48, + 57, + -48, + -70, + -47, + 60, + -47, + -66, + -46, + 63, + -46, + -63, + -45, + 68, + -45, + -58, + -44, + 73, + -44, + -53, + -43, + 78, + -43, + -47, + -42, + 85, + -42, + -40, + -41, + 92, + -41, + -32, + -40, + 100, + -40, + -24, + -39, + 108, + -39, + -15, + -38, + 118, + -38, + -5, + -37, + -128, + -36, + 5, + -36, + -118, + -35, + 16, + -35, + -106, + -34, + 28, + -34, + -94, + -33, + 41, + -33, + -81, + -32, + 54, + -32, + -67, + -31, + 68, + -31, + -52, + -30, + 83, + -30, + -37, + -29, + 99, + -29, + -21, + -28, + 115, + -28, + -4, + -27, + -124, + -26, + 13, + -26, + -106, + -25, + 31, + -25, + -87, + -24, + 50, + -24, + -68, + -23, + 70, + -23, + -48, + -22, + 91, + -22, + -27, + -21, + 112, + -21, + -5, + -20, + -122, + -19, + 17, + -19, + -100, + -18, + 40, + -18, + -76, + -17, + 64, + -17, + -52, + -16, + 88, + -16, + -27, + -15, + 114, + -15, + -1, + -14, + -116, + -13, + 25, + -13, + -89, + -12, + 52, + -12, + -62, + -11, + 80, + -11, + -34, + -10, + 109, + -10, + -5, + -9, + -118, + -8, + 25, + -8, + -88, + -7, + 56, + -7, + -57, + -6, + 87, + -6, + -25, + -5, + 119, + -4, + 7, + -4, + -104, + -3, + 41, + -3, + -70, + -2, + 75, + -2, + -36, + -1, + 109, + -1, + -1, + 99, + 104, + 114, + 109, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + -93, + -41, + 0, + 0, + 84, + 123, + 0, + 0, + 76, + -51, + 0, + 0, + -103, + -102, + 0, + 0, + 38, + 102, + 0, + 0, + 15, + 92 + ], + "majorVersion":2, + "matrix":[ + [ + 0.43585205, + 0.3853302, + 0.14302063 + ], + [ + 0.22238159, + 0.717041, + 0.06059265 + ], + [ + 0.013916016, + 0.09713745, + 0.71383667 + ] + ], + "mediaWhitePoint":[ + 0.95014954, + 1.0, + 1.0882568 + ], + "minorVersion":48, + "numComponents":3, + "profileClass":1 + }, + "type":5 + }, + "green":247, + "red":242, + "transparency":3 + }, + "windowColorA":1, + "windowColorB":253, + "windowColorG":247, + "windowColorR":242 +} \ No newline at end of file diff --git a/lessons/0.json b/lessons/0.json new file mode 100644 index 0000000..820510f --- /dev/null +++ b/lessons/0.json @@ -0,0 +1,66 @@ +[ + { + "index":1, + "millisTimeEnd":1688431500000, + "millisTimeStart":1688428800000, + "name":"周日课程1", + "timeEnd":"8:45:00", + "timeStart":"8:00:00" + }, + { + "index":2, + "millisTimeEnd":1688434800000, + "millisTimeStart":1688432100000, + "name":"周日课程2", + "timeEnd":"9:40:00", + "timeStart":"8:55:00" + }, + { + "index":3, + "millisTimeEnd":1688439900000, + "millisTimeStart":1688437200000, + "name":"周日课程3", + "timeEnd":"11:05:00", + "timeStart":"10:20:00" + }, + { + "index":4, + "millisTimeEnd":1688443200000, + "millisTimeStart":1688440500000, + "name":"周日课程4", + "timeEnd":"12:00:00", + "timeStart":"11:15:00" + }, + { + "index":5, + "millisTimeEnd":1688451300000, + "millisTimeStart":1688448600000, + "name":"周日课程5", + "timeEnd":"14:15:00", + "timeStart":"13:30:00" + }, + { + "index":6, + "millisTimeEnd":1688454600000, + "millisTimeStart":1688451900000, + "name":"周日课程6", + "timeEnd":"15:10:00", + "timeStart":"14:25:00" + }, + { + "index":7, + "millisTimeEnd":1688458500000, + "millisTimeStart":1688455800000, + "name":"周日课程7", + "timeEnd":"16:15:00", + "timeStart":"15:30:00" + }, + { + "index":8, + "millisTimeEnd":1688463000000, + "millisTimeStart":1688459400000, + "name":"周日课程8", + "timeEnd":"17:30:00", + "timeStart":"16:30:00" + } +] \ No newline at end of file diff --git a/lessons/1.json b/lessons/1.json new file mode 100644 index 0000000..1294b11 --- /dev/null +++ b/lessons/1.json @@ -0,0 +1,66 @@ +[ + { + "index":1, + "millisTimeEnd":1688431500000, + "millisTimeStart":1688428800000, + "name":"周一课表1", + "timeEnd":"8:45:00", + "timeStart":"8:00:00" + }, + { + "index":2, + "millisTimeEnd":1688434800000, + "millisTimeStart":1688432100000, + "name":"周一课表2", + "timeEnd":"9:40:00", + "timeStart":"8:55:00" + }, + { + "index":3, + "millisTimeEnd":1688440500000, + "millisTimeStart":1688437800000, + "name":"周一课表3", + "timeEnd":"11:15:00", + "timeStart":"10:30:00" + }, + { + "index":4, + "millisTimeEnd":1688443800000, + "millisTimeStart":1688441100000, + "name":"周一课表4", + "timeEnd":"12:10:00", + "timeStart":"11:25:00" + }, + { + "index":5, + "millisTimeEnd":1688451300000, + "millisTimeStart":1688448600000, + "name":"周一课表5", + "timeEnd":"14:15:00", + "timeStart":"13:30:00" + }, + { + "index":6, + "millisTimeEnd":1688454600000, + "millisTimeStart":1688451900000, + "name":"周一课表6", + "timeEnd":"15:10:00", + "timeStart":"14:25:00" + }, + { + "index":7, + "millisTimeEnd":1688459100000, + "millisTimeStart":1688456400000, + "name":"周一课表7", + "timeEnd":"16:25:00", + "timeStart":"15:40:00" + }, + { + "index":8, + "millisTimeEnd":1688463300000, + "millisTimeStart":1688459700000, + "name":"周一课表8", + "timeEnd":"17:35:00", + "timeStart":"16:35:00" + } +] \ No newline at end of file diff --git a/lessons/2.json b/lessons/2.json new file mode 100644 index 0000000..ffbf55f --- /dev/null +++ b/lessons/2.json @@ -0,0 +1,66 @@ +[ + { + "index":1, + "millisTimeEnd":1688431500000, + "millisTimeStart":1688428800000, + "name":"周二课表1", + "timeEnd":"8:45:00", + "timeStart":"8:00:00" + }, + { + "index":2, + "millisTimeEnd":1688434800000, + "millisTimeStart":1688432100000, + "name":"周二课表2", + "timeEnd":"9:40:00", + "timeStart":"8:55:00" + }, + { + "index":3, + "millisTimeEnd":1688439900000, + "millisTimeStart":1688437200000, + "name":"周二课表3", + "timeEnd":"11:05:00", + "timeStart":"10:20:00" + }, + { + "index":4, + "millisTimeEnd":1688443200000, + "millisTimeStart":1688440500000, + "name":"周二课表4", + "timeEnd":"12:00:00", + "timeStart":"11:15:00" + }, + { + "index":5, + "millisTimeEnd":1688451300000, + "millisTimeStart":1688448600000, + "name":"周二课表5", + "timeEnd":"14:15:00", + "timeStart":"13:30:00" + }, + { + "index":6, + "millisTimeEnd":1688454600000, + "millisTimeStart":1688451900000, + "name":"周二课表6", + "timeEnd":"15:10:00", + "timeStart":"14:25:00" + }, + { + "index":7, + "millisTimeEnd":1688459100000, + "millisTimeStart":1688456400000, + "name":"周二课表7", + "timeEnd":"16:25:00", + "timeStart":"15:40:00" + }, + { + "index":8, + "millisTimeEnd":1688463300000, + "millisTimeStart":1688459700000, + "name":"周二课表8", + "timeEnd":"17:35:00", + "timeStart":"16:35:00" + } +] \ No newline at end of file diff --git a/lessons/3.json b/lessons/3.json new file mode 100644 index 0000000..db38f95 --- /dev/null +++ b/lessons/3.json @@ -0,0 +1,66 @@ +[ + { + "index":1, + "millisTimeEnd":1688431500000, + "millisTimeStart":1688428800000, + "name":"周三课表1", + "timeEnd":"8:45:00", + "timeStart":"8:00:00" + }, + { + "index":2, + "millisTimeEnd":1688434800000, + "millisTimeStart":1688432100000, + "name":"周三课表2", + "timeEnd":"9:40:00", + "timeStart":"8:55:00" + }, + { + "index":3, + "millisTimeEnd":1688439900000, + "millisTimeStart":1688437200000, + "name":"周三课表3", + "timeEnd":"11:05:00", + "timeStart":"10:20:00" + }, + { + "index":4, + "millisTimeEnd":1688443200000, + "millisTimeStart":1688440500000, + "name":"周三课表4", + "timeEnd":"12:00:00", + "timeStart":"11:15:00" + }, + { + "index":5, + "millisTimeEnd":1688451300000, + "millisTimeStart":1688448600000, + "name":"周三课表5", + "timeEnd":"14:15:00", + "timeStart":"13:30:00" + }, + { + "index":6, + "millisTimeEnd":1688454600000, + "millisTimeStart":1688451900000, + "name":"周三课表6", + "timeEnd":"15:10:00", + "timeStart":"14:25:00" + }, + { + "index":7, + "millisTimeEnd":1688459100000, + "millisTimeStart":1688456400000, + "name":"周三课表7", + "timeEnd":"16:25:00", + "timeStart":"15:40:00" + }, + { + "index":8, + "millisTimeEnd":1688463300000, + "millisTimeStart":1688459700000, + "name":"周三课表8", + "timeEnd":"17:35:00", + "timeStart":"16:35:00" + } +] \ No newline at end of file diff --git a/lessons/4.json b/lessons/4.json new file mode 100644 index 0000000..3112590 --- /dev/null +++ b/lessons/4.json @@ -0,0 +1,66 @@ +[ + { + "index":1, + "millisTimeEnd":1688431500000, + "millisTimeStart":1688428800000, + "name":"周四课表1", + "timeEnd":"8:45:00", + "timeStart":"8:00:00" + }, + { + "index":2, + "millisTimeEnd":1688434800000, + "millisTimeStart":1688432100000, + "name":"周四课表2", + "timeEnd":"9:40:00", + "timeStart":"8:55:00" + }, + { + "index":3, + "millisTimeEnd":1688439900000, + "millisTimeStart":1688437200000, + "name":"周四课表3", + "timeEnd":"11:05:00", + "timeStart":"10:20:00" + }, + { + "index":4, + "millisTimeEnd":1688443200000, + "millisTimeStart":1688440500000, + "name":"周四课表4", + "timeEnd":"12:00:00", + "timeStart":"11:15:00" + }, + { + "index":5, + "millisTimeEnd":1688451300000, + "millisTimeStart":1688448600000, + "name":"周四课表5", + "timeEnd":"14:15:00", + "timeStart":"13:30:00" + }, + { + "index":6, + "millisTimeEnd":1688454600000, + "millisTimeStart":1688451900000, + "name":"周四课表6", + "timeEnd":"15:10:00", + "timeStart":"14:25:00" + }, + { + "index":7, + "millisTimeEnd":1688459100000, + "millisTimeStart":1688456400000, + "name":"周四课表7", + "timeEnd":"16:25:00", + "timeStart":"15:40:00" + }, + { + "index":8, + "millisTimeEnd":1688463300000, + "millisTimeStart":1688459700000, + "name":"周四课表8", + "timeEnd":"17:35:00", + "timeStart":"16:35:00" + } +] \ No newline at end of file diff --git a/lessons/5.json b/lessons/5.json new file mode 100644 index 0000000..e647506 --- /dev/null +++ b/lessons/5.json @@ -0,0 +1,66 @@ +[ + { + "index":1, + "millisTimeEnd":1688431500000, + "millisTimeStart":1688428800000, + "name":"周五课程1", + "timeEnd":"8:45:00", + "timeStart":"8:00:00" + }, + { + "index":2, + "millisTimeEnd":1688434800000, + "millisTimeStart":1688432100000, + "name":"周五课程2", + "timeEnd":"9:40:00", + "timeStart":"8:55:00" + }, + { + "index":3, + "millisTimeEnd":1688439900000, + "millisTimeStart":1688437200000, + "name":"周五课程3", + "timeEnd":"11:05:00", + "timeStart":"10:20:00" + }, + { + "index":4, + "millisTimeEnd":1688443200000, + "millisTimeStart":1688440500000, + "name":"周五课程4", + "timeEnd":"12:00:00", + "timeStart":"11:15:00" + }, + { + "index":6, + "millisTimeEnd":1688451300000, + "millisTimeStart":1688448600000, + "name":"周五课程5", + "timeEnd":"14:15:00", + "timeStart":"13:30:00" + }, + { + "index":6, + "millisTimeEnd":1688454600000, + "millisTimeStart":1688451900000, + "name":"周五课程6", + "timeEnd":"15:10:00", + "timeStart":"14:25:00" + }, + { + "index":7, + "millisTimeEnd":1688459100000, + "millisTimeStart":1688456400000, + "name":"周五课程7", + "timeEnd":"16:25:00", + "timeStart":"15:40:00" + }, + { + "index":8, + "millisTimeEnd":1688463300000, + "millisTimeStart":1688459700000, + "name":"周五课程8", + "timeEnd":"17:35:00", + "timeStart":"16:35:00" + } +] \ No newline at end of file diff --git a/lessons/6.json b/lessons/6.json new file mode 100644 index 0000000..852a5b2 --- /dev/null +++ b/lessons/6.json @@ -0,0 +1,66 @@ +[ + { + "index":1, + "millisTimeEnd":1688431500000, + "millisTimeStart":1688428800000, + "name":"周六课表1", + "timeEnd":"8:45:00", + "timeStart":"8:00:00" + }, + { + "index":2, + "millisTimeEnd":1688434800000, + "millisTimeStart":1688432100000, + "name":"周六课表2", + "timeEnd":"9:40:00", + "timeStart":"8:55:00" + }, + { + "index":3, + "millisTimeEnd":1688439900000, + "millisTimeStart":1688437200000, + "name":"周六课表3", + "timeEnd":"11:05:00", + "timeStart":"10:20:00" + }, + { + "index":4, + "millisTimeEnd":1688443200000, + "millisTimeStart":1688440500000, + "name":"周六课表4", + "timeEnd":"12:00:00", + "timeStart":"11:15:00" + }, + { + "index":5, + "millisTimeEnd":1688451300000, + "millisTimeStart":1688448600000, + "name":"周六课表5", + "timeEnd":"14:15:00", + "timeStart":"13:30:00" + }, + { + "index":6, + "millisTimeEnd":1688454600000, + "millisTimeStart":1688451900000, + "name":"周六课表6", + "timeEnd":"15:10:00", + "timeStart":"14:25:00" + }, + { + "index":7, + "millisTimeEnd":1688458500000, + "millisTimeStart":1688455800000, + "name":"周六课表7", + "timeEnd":"16:15:00", + "timeStart":"15:30:00" + }, + { + "index":8, + "millisTimeEnd":1688463000000, + "millisTimeStart":1688459400000, + "name":"周六课表8", + "timeEnd":"17:30:00", + "timeStart":"16:30:00" + } +] \ No newline at end of file diff --git a/libs/fastjson-2.0.9.jar b/libs/fastjson-2.0.9.jar new file mode 100644 index 0000000..d0f8156 Binary files /dev/null and b/libs/fastjson-2.0.9.jar differ diff --git a/libs/fastjson2-2.0.9.jar b/libs/fastjson2-2.0.9.jar new file mode 100644 index 0000000..b1b8376 Binary files /dev/null and b/libs/fastjson2-2.0.9.jar differ diff --git a/libs/fastjson2-extension-2.0.9.jar b/libs/fastjson2-extension-2.0.9.jar new file mode 100644 index 0000000..6217325 Binary files /dev/null and b/libs/fastjson2-extension-2.0.9.jar differ diff --git a/resources/font.ttf b/resources/font.ttf new file mode 100644 index 0000000..8cfbc9d Binary files /dev/null and b/resources/font.ttf differ diff --git a/resources/welcome.png b/resources/welcome.png new file mode 100644 index 0000000..506e311 Binary files /dev/null and b/resources/welcome.png differ diff --git a/src/main/java/com/wudji/Screens/AboutScreen.java b/src/main/java/com/wudji/Screens/AboutScreen.java deleted file mode 100644 index 22fd62a..0000000 --- a/src/main/java/com/wudji/Screens/AboutScreen.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.wudji.Screens; - -import com.wudji.MainActivity; - -import javax.swing.*; -import java.awt.*; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.net.URI; - -public class AboutScreen extends JDialog { - JPanel infoPanel = new JPanel(); - public AboutScreen() { - super((Frame) null, "", true); - this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); - - ImageIcon icon = new ImageIcon("about.png"); - JLabel label = new JLabel(icon); - - this.setSize(icon.getIconWidth(), icon.getIconHeight() + 200); - - infoPanel.add(label, BorderLayout.CENTER); - - this.setLocationRelativeTo(null); - infoPanel.setLayout(new BoxLayout(infoPanel, BoxLayout.Y_AXIS)); - - // 我在写什么¿ - JLabel label1 = new JLabel("电子课表" + MainActivity.version + "by Wudji(吾爱破解@YooooooDaLi)"); - label1.setFont(new Font(null,0,25)); - - - JLabel label2 = new JLabel("本软件由Wudji@tjyz利用课余时间开发,感谢使用~"); - label2.setFont(new Font(null,0,25)); - - JLabel linkLabelGithub = new JLabel("开源地址:https://github.com/Wudji/Desktop-Lesson-List/,欢迎提issue(和star)"); - linkLabelGithub.setForeground(new Color(40, 112, 215)); - linkLabelGithub.setFont(new Font(null,0,25)); - linkLabelGithub.addMouseListener(new MouseAdapter() { - @Override - public void mouseClicked(MouseEvent e) { - try { - Desktop.getDesktop().browse(new URI("https://github.com/Wudji/Desktop-Lesson-List/")); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - }); - - JLabel linkLable52pojie = new JLabel("吾爱破解:https://www.52pojie.cn/thread-1780607-1-1.html"); - linkLable52pojie.setForeground(new Color(40, 112, 215)); - linkLable52pojie.setFont(new Font(null,0,25)); - linkLable52pojie.addMouseListener(new MouseAdapter() { - @Override - public void mouseClicked(MouseEvent e) { - try { - Desktop.getDesktop().browse(new URI("https://www.52pojie.cn/thread-1780607-1-1.html")); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - }); - - infoPanel.add(label1); - infoPanel.add(label2); - infoPanel.add(linkLabelGithub); - infoPanel.add(linkLable52pojie); - - this.add(infoPanel); - this.setTitle("电子课表" + MainActivity.version + "by Wudji(吾爱破解@YooooooDaLi)"); - - } -} diff --git a/src/main/java/com/wudji/Screens/LessonConfigScreen.java b/src/main/java/com/wudji/Screens/LessonConfigScreen.java deleted file mode 100644 index bd7cd92..0000000 --- a/src/main/java/com/wudji/Screens/LessonConfigScreen.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.wudji.Screens; - -public class LessonConfigScreen { - /* todo 配置页面 */ -} diff --git a/src/main/java/com/wudji/Screens/MainConfigScreen.java b/src/main/java/com/wudji/Screens/MainConfigScreen.java deleted file mode 100644 index 5651a38..0000000 --- a/src/main/java/com/wudji/Screens/MainConfigScreen.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.wudji.Screens; - -public class MainConfigScreen { - /* todo 配置页面 */ -} diff --git a/src/main/java/com/wudji/Screens/MainWindow.java b/src/main/java/com/wudji/Screens/MainWindow.java deleted file mode 100644 index 6deeb84..0000000 --- a/src/main/java/com/wudji/Screens/MainWindow.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.wudji.Screens; - - -import com.wudji.ClockButtonManager; -import com.wudji.Lesson; -import com.wudji.MainActivity; -import com.wudji.Utils.FileControl; - -import javax.swing.*; -import java.awt.*; -import java.text.ParseException; -import java.util.Calendar; - -public class MainWindow extends JDialog { - - Calendar c = Calendar.getInstance(); - int week = c.get(Calendar.DAY_OF_WEEK); - - // clock - WPanel clockPanel = new WPanel(2,28); - - // lessonPanel - WPanel lessonPanel = new WPanel(16,28); - - WPanel countDownPanel = new WPanel(2,28); - - Lesson[] lessonList = FileControl.getLessonListFromJSON(week - 1); - - JButton separateLine = new JButton("============"); - public MainWindow(int x,int y,int w,int h) throws HeadlessException { - - this.setUndecorated(true); - this.setVisible(true); - this.setName("MainScreen"); - this.setTitle("MainScreen"); - this.setBackground(new Color(0,0,0,0)); - - this.setDefaultCloseOperation(this.HIDE_ON_CLOSE); - this.setBounds(x,y,w,h); - - // this.setBounds(150,150,150,150); - this.setLayout(new FlowLayout(FlowLayout.CENTER)); - - this.separateLine.setFont(new Font(null, Font.BOLD, MainActivity.globalConfig.getLessonFontSize())); - this.separateLine.setBackground(MainActivity.globalConfig.getWindowBgColor());// config - - this.add(clockPanel); - if (MainActivity.globalConfig.isEnableCountDown()) {this.add(countDownPanel);} - this.add(lessonPanel); - - } - public void update() throws ParseException { - this.updateLessonStatus(); - this.updateClockStatus(); - if (MainActivity.globalConfig.isEnableCountDown()) {this.updateCountdownStatus();} - this.validate(); - this.repaint(); - - // System.out.println("step 5 passed"); - } - - private void updateLessonStatus() throws ParseException { - - lessonPanel.removeAll(); - - for(int i = 0;i < lessonList.length;i++){ - - long sysMillis = System.currentTimeMillis(); - - JButton lessonButt = new JButton(lessonList[i].getIndex() + "." + lessonList[i].getName()); - - lessonButt.setFont(new Font(null, Font.BOLD,MainActivity.globalConfig.getLessonFontSize())); - lessonButt.setBackground(MainActivity.globalConfig.getWindowBgColor()); - - if (lessonList[i].getTimeEnd() < sysMillis){ - lessonButt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createMatteBorder(0,17,0,0,MainActivity.globalConfig.getPastLessonColor()/*new Color(148, 248, 125)*/),BorderFactory.createEmptyBorder(5,17,5,17))); - }else if(lessonList[i].getTimeStart() > sysMillis){ - lessonButt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createMatteBorder(0,17,0,0,MainActivity.globalConfig.getNextLessonColor()/*new Color(255, 88, 79)*/),BorderFactory.createEmptyBorder(5,17,5,17))); - }else if(lessonList[i].getTimeStart() < sysMillis && lessonList[i].getTimeEnd() > sysMillis){ - lessonButt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createMatteBorder(0,17,0,0,MainActivity.globalConfig.getPresentLessonColor()/*new Color(234, 170, 99)*/),BorderFactory.createEmptyBorder(5,17,5,17))); - } - - lessonPanel.add(lessonButt); - lessonPanel.add(this.getSeparateLine()); - } - } - - private void updateClockStatus(){ - clockPanel.removeAll(); - clockPanel.add(ClockButtonManager.getTimeButton()); - clockPanel.add(ClockButtonManager.getWeekButton(week)); - } - - private void updateCountdownStatus(){ - countDownPanel.removeAll(); - countDownPanel.add(ClockButtonManager.getCountDownInfoButton()); - countDownPanel.add(ClockButtonManager.getCountdownButton()); - } - - private JButton getSeparateLine(){ - JButton j = new JButton("============"); - j.setFont(new Font(null, Font.BOLD, MainActivity.globalConfig.getLessonFontSize())); - j.setBackground(MainActivity.globalConfig.getWindowBgColor()); - return j; - } -} \ No newline at end of file diff --git a/src/main/java/com/wudji/Screens/WindowConfigScreen.java b/src/main/java/com/wudji/Screens/WindowConfigScreen.java deleted file mode 100644 index 7b180ae..0000000 --- a/src/main/java/com/wudji/Screens/WindowConfigScreen.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.wudji.Screens; - -public class WindowConfigScreen { - /* todo 配置页面 */ -} diff --git a/src/main/java/com/wudji/Utils/FileControl.java b/src/main/java/com/wudji/Utils/FileControl.java deleted file mode 100644 index 0694be1..0000000 --- a/src/main/java/com/wudji/Utils/FileControl.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.wudji.Utils; - -import com.wudji.Lesson; - -import java.io.*; -import com.alibaba.fastjson2.*; -import com.wudji.NoticeLine; -import com.wudji.WindowConfig; - -public class FileControl { - private static String getStr(File jsonFile){ - String jsonStr = ""; - try { - FileReader fileReader = new FileReader(jsonFile); - Reader reader = new InputStreamReader(new FileInputStream(jsonFile),"utf-8"); - int ch = 0; - StringBuffer sb = new StringBuffer(); - while ((ch = reader.read()) != -1) { - sb.append((char) ch); - } - fileReader.close(); - reader.close(); - jsonStr = sb.toString(); - return jsonStr; - } catch (IOException e) { - e.printStackTrace(); - return null; - } - } - - public static Lesson[] getLessonListFromJSON(int week){ - String lessonListStr = getStr(new File(week + ".json")); - return JSON.parseArray(lessonListStr,Lesson.class).toArray(new Lesson[0]); - } - - public static WindowConfig getWindowConfig(){ - String configStr = getStr(new File("windowConfig.json")); - - return JSON.parseArray(configStr,WindowConfig.class).toArray(new WindowConfig[0])[0]; - } - - public static NoticeLine[] getNoticeLinesFromJSON(int week){ - String noticeLinesStr = getStr(new File("notice/" + week + ".json")); - return JSON.parseArray(noticeLinesStr,NoticeLine.class).toArray(new NoticeLine[0]); - } - - public static void writeLessonListToJson(Lesson[] lessons, int targetDay){ - // todo - } - - public static void writeWindowConfigToJson(WindowConfig config){ - // todo - } -} diff --git a/src/main/java/com/wudji/MainActivity.java b/src/main/java/com/wudji/lessonlist/MainActivity.java similarity index 65% rename from src/main/java/com/wudji/MainActivity.java rename to src/main/java/com/wudji/lessonlist/MainActivity.java index 99fa30c..fb98a29 100644 --- a/src/main/java/com/wudji/MainActivity.java +++ b/src/main/java/com/wudji/lessonlist/MainActivity.java @@ -1,27 +1,41 @@ -package com.wudji; +package com.wudji.lessonlist; import java.awt.*; import java.text.ParseException; import java.util.*; import java.util.Timer; -import com.wudji.Screens.MainWindow; -import com.wudji.Screens.NoticeScreen; -import com.wudji.Screens.WelcomeScreen; -import com.wudji.Utils.FileControl; +import com.wudji.lessonlist.Screens.*; +import com.wudji.lessonlist.Utils.FileControl; +import com.wudji.lessonlist.network.PoemNetworkRequest; +import com.wudji.lessonlist.obj.WindowConfig; public class MainActivity { + public static WindowConfig globalConfig = FileControl.getWindowConfig(); public static Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); - public static String version = "v1.1.2"; + public static String base_version = "v1.1.2"; + public static String product_version = "v1.2.0_poem_suggestion_tjyz"; - public static void main(String args[]){ + public static void main(String[] args){ MainWindow window = new MainWindow((int)d.getWidth() - globalConfig.getPosx(),globalConfig.getPosy(),globalConfig.getWeight(),(int)d.getHeight() - globalConfig.getHeight()); WelcomeScreen welcomeScreen = new WelcomeScreen(); NoticeScreen noticeScreen = new NoticeScreen(window.getLocation()); + Timer timer = new Timer(); + if (globalConfig.isEnablePoemSuggestion()){ + Thread thread = new Thread(() -> { + String data = PoemNetworkRequest.getPoemData(); + System.out.println(data); + PoemScreen poemScreen = new PoemScreen(window.getLocation(),data); + noticeScreen.updatePosition(poemScreen.getHeight()); + poemScreen.setVisible(true); + }); + thread.start(); + } + // 欢迎界面 timer.schedule(new TimerTask() { @Override @@ -30,6 +44,7 @@ public void run() { } private void showDelayScreen(WelcomeScreen welcomeScreen,NoticeScreen noticeScreen){ + // 隐藏欢迎页面 welcomeScreen.setVisible(false); if(MainActivity.globalConfig.isEnableNotice()){ @@ -37,7 +52,7 @@ private void showDelayScreen(WelcomeScreen welcomeScreen,NoticeScreen noticeScre noticeScreen.setVisible(true); } } - },4000); + },(int) (Math.random()*2000)); welcomeScreen.setVisible(true); diff --git a/src/main/java/com/wudji/lessonlist/Screens/AboutScreen.java b/src/main/java/com/wudji/lessonlist/Screens/AboutScreen.java new file mode 100644 index 0000000..29fa927 --- /dev/null +++ b/src/main/java/com/wudji/lessonlist/Screens/AboutScreen.java @@ -0,0 +1,115 @@ +package com.wudji.lessonlist.Screens; + +import com.wudji.lessonlist.MainActivity; +import com.wudji.lessonlist.Utils.FileControl; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.net.URI; + +public class AboutScreen extends JDialog { + JPanel infoPanel = new JPanel(); + public AboutScreen() { + super((Frame) null, "电子课表关于页面", true); + this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); + + this.setLocationRelativeTo(null); + infoPanel.setLayout(new GridLayout(10, 1, 20, 10)); + + // 我在写什么¿ + JLabel labelTitle = new JLabel("电子课表 by Wudji(吾爱破解@YooooooDaLi)。"); + labelTitle.setFont(FileControl.getFont(Font.BOLD,30)); + + JLabel labelBaseVersion = new JLabel("base_version: " + MainActivity.base_version + ""); + labelBaseVersion.setFont(FileControl.getFont(Font.PLAIN,22)); + + JLabel labelProductVersion = new JLabel("product_version: " + MainActivity.product_version + ""); + labelProductVersion.setFont(FileControl.getFont(Font.PLAIN,22)); + + JLabel labelInfo = new JLabel("程序信息:"); + labelInfo.setFont(FileControl.getFont(Font.BOLD,26)); + + JLabel labelLicense = new JLabel("本电子课表程序根据GPL-3.0 license进行许可。"); + labelLicense.setFont(FileControl.getFont(Font.PLAIN,22)); + + JLabel linkLabelGithub = new JLabel("开源地址:https://github.com/Wudji/Desktop-Lesson-List/"); + linkLabelGithub.setForeground(new Color(40, 112, 215)); + linkLabelGithub.setFont(FileControl.getFont(Font.PLAIN,22)); + linkLabelGithub.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + try { + Desktop.getDesktop().browse(new URI("https://github.com/Wudji/Desktop-Lesson-List/")); + } catch (Exception exception) { + exception.printStackTrace(); + } + } + }); + + JLabel linkLabel52pojie = new JLabel("吾爱破解:https://www.52pojie.cn/thread-1780607-1-1.html"); + linkLabel52pojie.setForeground(new Color(40, 112, 215)); + linkLabel52pojie.setFont(FileControl.getFont(Font.PLAIN,22)); + linkLabel52pojie.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + try { + Desktop.getDesktop().browse(new URI("https://www.52pojie.cn/thread-1780607-1-1.html")); + } catch (Exception exception) { + exception.printStackTrace(); + } + } + }); + + JLabel labelThanks = new JLabel("特别鸣谢:"); + labelThanks.setFont(FileControl.getFont(Font.BOLD,26)); + + JLabel linkLabelFastjson = new JLabel("FastJSON by alibaba (Apache-2.0 license)。"); + linkLabelFastjson.setForeground(new Color(40, 112, 215)); + linkLabelFastjson.setFont(FileControl.getFont(Font.PLAIN,22)); + linkLabelFastjson.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + try { + Desktop.getDesktop().browse(new URI("https://github.com/alibaba/fastjson2")); + } catch (Exception exception) { + exception.printStackTrace(); + } + } + }); + + JLabel linkLabelJinrishici = new JLabel("今日诗词开放接口 by xenv@github.com。"); + linkLabelJinrishici.setForeground(new Color(40, 112, 215)); + linkLabelJinrishici.setFont(FileControl.getFont(Font.PLAIN,22)); + linkLabelJinrishici.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + try { + Desktop.getDesktop().browse(new URI("https://www.jinrishici.com/")); + } catch (Exception exception) { + exception.printStackTrace(); + } + } + }); + + infoPanel.add(labelTitle); + + infoPanel.add(labelInfo); + infoPanel.add(linkLabelGithub); + infoPanel.add(linkLabel52pojie); + infoPanel.add(labelBaseVersion); + infoPanel.add(labelProductVersion); + infoPanel.add(labelLicense); + + infoPanel.add(labelThanks); + infoPanel.add(linkLabelJinrishici); + infoPanel.add(linkLabelFastjson); + + this.add(infoPanel); + this.setLocationRelativeTo(null); + this.setTitle("关于电子课表 " + MainActivity.product_version); + this.pack(); + + } +} diff --git a/src/main/java/com/wudji/lessonlist/Screens/GeneralConfigScreen.java b/src/main/java/com/wudji/lessonlist/Screens/GeneralConfigScreen.java new file mode 100644 index 0000000..d60ea00 --- /dev/null +++ b/src/main/java/com/wudji/lessonlist/Screens/GeneralConfigScreen.java @@ -0,0 +1,330 @@ +package com.wudji.lessonlist.Screens; + +import com.wudji.lessonlist.MainActivity; +import com.wudji.lessonlist.Utils.FileControl; +import com.wudji.lessonlist.obj.WindowConfig; + +import javax.swing.*; +import java.awt.*; + +public class GeneralConfigScreen extends JFrame { + private WindowConfig config = MainActivity.globalConfig; + private JTextField clockFontSizeField; + private JTextField lessonFontSizeField; + private JTextField noticeFontSizeField; + private JTextField posxField; + private JTextField posyField; + private JTextField weightField; + private JTextField heightField; + private JCheckBox enableCountdownCheckbox; + + private JCheckBox enablePoemCheckbox; + private JTextField countDownYearField; + private JTextField countDownMonthField; + private JTextField countDownDateField; + private JTextField countDownTextField; + + private JCheckBox suppressWarningsCheckbox; + private JCheckBox enableNoticeCheckbox; + private JTextField noticeWeightField; + private JTextField noticeHeightField; + + public GeneralConfigScreen() { + initialize(); + } + + private void initialize() { + setTitle("通用配置页面"); + setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); + setResizable(false); + + JPanel panel = new JPanel(); + panel.setLayout(new GridBagLayout()); + GridBagConstraints constraints = new GridBagConstraints(); + constraints.insets = new Insets(6, 6, 6, 6); + + // Add components to the panel + // 添加标题标签 + JLabel titleLabel = new JLabel("通用配置"); + Font titleFont = FileControl.getFont(Font.BOLD, 26); + titleLabel.setFont(titleFont); + constraints.gridx = 0; + constraints.gridy = 0; + constraints.gridwidth = 6; + panel.add(titleLabel, constraints); + + JLabel titleLabel2 = new JLabel("部分配置项需要重启程序以生效"); + titleFont = FileControl.getFont(Font.BOLD, 20); + titleLabel2.setFont(titleFont); + constraints.gridx = 0; + constraints.gridy = 1; + panel.add(titleLabel2, constraints); + + Font infoFont = FileControl.getFont(Font.BOLD, 16); + Font inputFont = FileControl.getFont(Font.PLAIN, 15); + JLabel clockFontSizeLabel = new JLabel("时钟字体大小:"); + clockFontSizeLabel.setFont(infoFont); + clockFontSizeField = new JTextField(10); + clockFontSizeField.setText(String.valueOf(config.getClockFontsize())); + clockFontSizeField.setFont(inputFont); + constraints.gridwidth = 1; + constraints.gridx = 0; + constraints.gridy = 2; + panel.add(clockFontSizeLabel, constraints); + constraints.gridx = 1; + constraints.gridy = 2; + panel.add(clockFontSizeField, constraints); + + // Lesson Font Size + JLabel lessonFontSizeLabel = new JLabel("课表字体大小:"); + lessonFontSizeLabel.setFont(infoFont); + lessonFontSizeField = new JTextField(10); + lessonFontSizeField.setText(String.valueOf(config.getLessonFontSize())); + lessonFontSizeField.setFont(inputFont); + constraints.gridx = 0; + constraints.gridy = 3; + panel.add(lessonFontSizeLabel, constraints); + constraints.gridx = 1; + constraints.gridy = 3; + panel.add(lessonFontSizeField, constraints); + + // Notice Font Size + JLabel noticeFontSizeLabel = new JLabel("公告板字体大小:"); + noticeFontSizeLabel.setFont(infoFont); + noticeFontSizeField = new JTextField(10); + noticeFontSizeField.setText(String.valueOf(config.getNoticeFontSize())); + noticeFontSizeField.setFont(inputFont); + constraints.gridx = 0; + constraints.gridy = 4; + panel.add(noticeFontSizeLabel, constraints); + constraints.gridx = 1; + constraints.gridy = 4; + panel.add(noticeFontSizeField, constraints); + + // Enable Notice + JLabel enableNoticeLabel = new JLabel("启用公告板:"); + enableNoticeLabel.setFont(infoFont); + enableNoticeCheckbox = new JCheckBox(); + enableNoticeCheckbox.setSelected(config.isEnableNotice()); + enableNoticeCheckbox.setFont(inputFont); + constraints.gridx = 0; + constraints.gridy = 5; + panel.add(enableNoticeLabel, constraints); + constraints.gridx = 1; + constraints.gridy = 5; + panel.add(enableNoticeCheckbox, constraints); + + // Notice Weight + JLabel noticeWeightLabel = new JLabel("公告板宽度:"); + noticeWeightLabel.setFont(infoFont); + noticeWeightField = new JTextField(10); + noticeWeightField.setText(String.valueOf(config.getNoticeWeight())); + noticeWeightField.setFont(inputFont); + constraints.gridx = 0; + constraints.gridy = 6; + panel.add(noticeWeightLabel, constraints); + constraints.gridx = 1; + constraints.gridy = 6; + panel.add(noticeWeightField, constraints); + + // Notice Height + JLabel noticeHeightLabel = new JLabel("公告板高度:"); + noticeHeightLabel.setFont(infoFont); + noticeHeightField = new JTextField(10); + noticeHeightField.setText(String.valueOf(config.getNoticeHeight())); + noticeHeightField.setFont(inputFont); + constraints.gridx = 0; + constraints.gridy = 7; + panel.add(noticeHeightLabel, constraints); + constraints.gridx = 1; + constraints.gridy = 7; + panel.add(noticeHeightField, constraints); + + // posx + JLabel posxLabel = new JLabel("主窗口坐标X:"); + posxLabel.setFont(infoFont); + posxField = new JTextField(10); + posxField.setText(String.valueOf(config.getPosx())); + posxField.setFont(inputFont); + constraints.gridx = 2; + constraints.gridy = 2; + panel.add(posxLabel, constraints); + constraints.gridx = 3; + constraints.gridy = 2; + panel.add(posxField, constraints); + + // posy + JLabel posyLabel = new JLabel("主窗口坐标Y:"); + posyLabel.setFont(infoFont); + posyField = new JTextField(10); + posyField.setText(String.valueOf(config.getPosy())); + posyField.setFont(inputFont); + constraints.gridx = 2; + constraints.gridy = 3; + panel.add(posyLabel, constraints); + constraints.gridx = 3; + constraints.gridy = 3; + panel.add(posyField, constraints); + + JLabel weightLabel = new JLabel("主窗口宽度:"); + weightLabel.setFont(infoFont); + weightField = new JTextField(10); + weightField.setText(String.valueOf(config.getWeight())); + weightField.setFont(inputFont); + constraints.gridx = 2; + constraints.gridy = 4; + panel.add(weightLabel, constraints); + constraints.gridx = 3; + constraints.gridy = 4; + panel.add(weightField, constraints); + + JLabel heightLabel = new JLabel("主窗口高度:"); + heightLabel.setFont(infoFont); + heightField = new JTextField(10); + heightField.setText(String.valueOf(config.getHeight())); + heightField.setFont(inputFont); + constraints.gridx = 2; + constraints.gridy = 5; + panel.add(heightLabel, constraints); + constraints.gridx = 3; + constraints.gridy = 5; + panel.add(heightField, constraints); + + // Enable Notice + JLabel enablePoemLabel = new JLabel("启用诗词推荐:"); + enablePoemLabel.setFont(infoFont); + enablePoemCheckbox = new JCheckBox(); + enablePoemCheckbox.setSelected(config.isEnablePoemSuggestion()); + constraints.gridx = 2; + constraints.gridy = 6; + panel.add(enablePoemLabel, constraints); + constraints.gridx = 3; + constraints.gridy = 6; + panel.add(enablePoemCheckbox, constraints); + + JLabel enableCountdownLabel = new JLabel("启用倒计时:"); + enableCountdownLabel.setFont(infoFont); + enableCountdownCheckbox = new JCheckBox(); + enableCountdownCheckbox.setSelected(config.isEnableCountDown()); + constraints.gridx = 4; + constraints.gridy = 2; + panel.add(enableCountdownLabel, constraints); + constraints.gridx = 5; + constraints.gridy = 2; + panel.add(enableCountdownCheckbox, constraints); + + JLabel countDownYearLabel = new JLabel("倒计时年份:"); + countDownYearLabel.setFont(infoFont); + countDownYearField = new JTextField(10); + countDownYearField.setText(String.valueOf(config.getCountDownYear())); + countDownYearField.setFont(inputFont); + constraints.gridx = 4; + constraints.gridy = 3; + panel.add(countDownYearLabel, constraints); + constraints.gridx = 5; + constraints.gridy = 3; + panel.add(countDownYearField, constraints); + + JLabel countDownMonthLabel = new JLabel("倒计时月份:"); + countDownMonthLabel.setFont(infoFont); + countDownMonthField = new JTextField(10); + countDownMonthField.setText(String.valueOf(config.getCountDownMonth())); + countDownMonthField.setFont(inputFont); + constraints.gridx = 4; + constraints.gridy = 4; + panel.add(countDownMonthLabel, constraints); + constraints.gridx = 5; + constraints.gridy = 4; + panel.add(countDownMonthField, constraints); + + JLabel countDownDateLabel = new JLabel("倒计时日期:"); + countDownDateLabel.setFont(infoFont); + countDownDateField = new JTextField(10); + countDownDateField.setText(String.valueOf(config.getCountDownDate())); + countDownDateField.setFont(inputFont); + constraints.gridx = 4; + constraints.gridy = 5; + panel.add(countDownDateLabel, constraints); + constraints.gridx = 5; + constraints.gridy = 5; + panel.add(countDownDateField, constraints); + + JLabel countDownInfoLabel = new JLabel("倒计时信息:"); + countDownInfoLabel.setFont(infoFont); + countDownTextField = new JTextField(10); + countDownTextField.setText(String.valueOf(config.getCountDownInfo())); + countDownTextField.setFont(inputFont); + constraints.gridx = 4; + constraints.gridy = 6; + panel.add(countDownInfoLabel, constraints); + constraints.gridx = 5; + constraints.gridy = 6; + panel.add(countDownTextField, constraints); + + JLabel suppressWarningsLabel = new JLabel("忽略警告:"); + suppressWarningsLabel.setFont(infoFont); + suppressWarningsCheckbox = new JCheckBox(); + suppressWarningsCheckbox.setSelected(config.isTemp_feature_notice()); + constraints.gridx = 4; + constraints.gridy = 7; + panel.add(suppressWarningsLabel, constraints); + constraints.gridx = 5; + constraints.gridy = 7; + panel.add(suppressWarningsCheckbox, constraints); + + + titleFont = FileControl.getFont(Font.BOLD,16); + JButton saveButton = new JButton("不退出程序并保存配置"); + saveButton.setFont(titleFont); + saveButton.addActionListener(e -> saveConfig(false)); + constraints.gridx = 0; + constraints.gridy = 8; + constraints.gridwidth = 3; + panel.add(saveButton, constraints); + + JButton saveARButton = new JButton("退出程序并保存配置"); + saveARButton.setFont(titleFont); + saveARButton.addActionListener(e -> saveConfig(true)); + + constraints.gridx = 3; + constraints.gridy = 8; + constraints.gridwidth = 3; + panel.add(saveARButton, constraints); + + // updateWindow + add(panel); + pack(); + setLocationRelativeTo(null); + + + + } + + private void saveConfig(boolean isRestart) { + config.setClockFontsize(Integer.parseInt(clockFontSizeField.getText())); + config.setLessonFontSize(Integer.parseInt(lessonFontSizeField.getText())); + config.setNoticeFontSize(Integer.parseInt(noticeFontSizeField.getText())); + config.setEnableNotice(enableNoticeCheckbox.isSelected()); + config.setNoticeWeight(Integer.parseInt(noticeWeightField.getText())); + config.setNoticeHeight(Integer.parseInt(noticeHeightField.getText())); + config.setPosx(Integer.parseInt(posxField.getText())); + config.setPosy(Integer.parseInt(posyField.getText())); + config.setWeight(Integer.parseInt(weightField.getText())); + config.setHeight(Integer.parseInt(heightField.getText())); + config.setEnablePoemSuggestion(enablePoemCheckbox.isSelected()); + config.setEnableCountDown(enableCountdownCheckbox.isSelected()); + config.setCountDownYear(Integer.parseInt(countDownYearField.getText())); + config.setCountDownMonth(Integer.parseInt(countDownMonthField.getText())); + config.setCountDownDate(Integer.parseInt(countDownDateField.getText())); + config.setCountDownInfo(countDownTextField.getText()); + config.setTemp_feature_notice(suppressWarningsCheckbox.isSelected()); + + FileControl.writeWindowConfigToJson(config); + + dispose(); // Close the config window + + if(isRestart){ + System.exit(0); + } + } +} diff --git a/src/main/java/com/wudji/lessonlist/Screens/LessonConfigScreen.java b/src/main/java/com/wudji/lessonlist/Screens/LessonConfigScreen.java new file mode 100644 index 0000000..469eefd --- /dev/null +++ b/src/main/java/com/wudji/lessonlist/Screens/LessonConfigScreen.java @@ -0,0 +1,180 @@ +package com.wudji.lessonlist.Screens; + +import com.wudji.lessonlist.Utils.ExceptionManager; +import com.wudji.lessonlist.Utils.FileControl; +import com.wudji.lessonlist.obj.Lesson; +import com.wudji.lessonlist.obj.LessonConfig; + +import javax.swing.*; +import java.awt.*; + +public class LessonConfigScreen extends JFrame { + private Lesson[] lessons; + + private LessonConfig[] configs = new LessonConfig[10]; + + private int dateOfWeek; + private static String[] weeks = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; + + public LessonConfigScreen(Lesson[] lessons,String date) { + this.lessons = lessons; + this.dateOfWeek = getDateNumFromString(date); + initialize(); + } + + private void initialize() { + setTitle("配置课程列表页面"); + setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); + setResizable(false); + + JPanel panel = new JPanel(); + panel.setLayout(new GridBagLayout()); + GridBagConstraints constraints = new GridBagConstraints(); + constraints.insets = new Insets(6, 6, 6, 6); + + // 添加标签 + JLabel titleLabel = new JLabel("配置课表"); + Font titleFont = FileControl.getFont(Font.BOLD,26); + titleLabel.setFont(titleFont); + constraints.gridx = 0; + constraints.gridy = 0; + constraints.gridwidth = 5; + panel.add(titleLabel, constraints); + + JLabel titleLabel2 = new JLabel("你正在修改 " + weeks[dateOfWeek] + " 的课表"); + titleFont = FileControl.getFont(Font.PLAIN,22); + titleLabel2.setFont(titleFont); + constraints.gridx = 0; + constraints.gridy = 1; + panel.add(titleLabel2, constraints); + + JLabel titleLabel3 = new JLabel("要使修改生效,你需要重启电子课表程序"); + titleLabel3.setFont(titleFont); + constraints.gridx = 0; + constraints.gridy = 2; + panel.add(titleLabel3, constraints); + + constraints.gridwidth = 1; + + JLabel headLablel = new JLabel("名称"); + titleFont = FileControl.getFont(Font.BOLD,18); + headLablel.setFont(titleFont); + constraints.gridx = 0; + constraints.gridy = 3; + panel.add(headLablel, constraints); + + JLabel headLablel2 = new JLabel("顺序"); + headLablel2.setFont(titleFont); + constraints.gridx = 1; + constraints.gridy = 3; + panel.add(headLablel2, constraints); + + JLabel headLabel3 = new JLabel("开始时间"); + headLabel3.setFont(titleFont); + constraints.gridx = 2; + constraints.gridy = 3; + panel.add(headLabel3, constraints); + + JLabel headLabel4 = new JLabel("结束时间"); + headLabel4.setFont(titleFont); + constraints.gridx = 3; + constraints.gridy = 3; + panel.add(headLabel4, constraints); + + JLabel headLabel5 = new JLabel("是否启用本课程"); + headLabel5.setFont(titleFont); + constraints.gridx = 4; + constraints.gridy = 3; + panel.add(headLabel5, constraints); + + // 添加课表配置项 + for (int j = 0;j < 10;j++){ + if(j < lessons.length) { + configs[j] = new LessonConfig(lessons[j], true); + }else { + configs[j] = new LessonConfig(null, false); + } + constraints.gridy = j + 4; + constraints.gridx = 0; + panel.add(configs[j].getName(),constraints); + constraints.gridx = 1; + panel.add(configs[j].getIndex(),constraints); + constraints.gridx = 2; + panel.add(configs[j].getTimeStart(),constraints); + constraints.gridx = 3; + panel.add(configs[j].getTimeEnd(),constraints); + constraints.gridx = 4; + panel.add(configs[j].getIsEnabled(),constraints); + + } + + // Save button + JButton saveButton = new JButton("不退出程序并保存配置"); + titleFont = FileControl.getFont(Font.BOLD,16); + saveButton.setFont(titleFont); + saveButton.addActionListener(e -> saveConfig(false)); + constraints.gridx = 0; + constraints.gridy = 14; + constraints.gridwidth = 3; + panel.add(saveButton, constraints); + + JButton saveARButton = new JButton("退出程序并保存配置"); + saveARButton.setFont(titleFont); + saveARButton.addActionListener(e -> saveConfig(true)); + + constraints.gridx = 2; + constraints.gridy = 14; + constraints.gridwidth = 3; + panel.add(saveARButton, constraints); + + // updateWindow + add(panel); + pack(); + setLocationRelativeTo(null); + + } + + private void saveConfig(boolean isRestart) { + int notNullCount = 0; + + for (LessonConfig l: + configs) { + if(l.isEnabled()){ + notNullCount++; + } + } + + Lesson[] newLessonList = new Lesson[notNullCount]; + + for(int k = 0;k < configs.length;k++){ + if(configs[k].isEnabled()){ + newLessonList[k] = new Lesson(); + newLessonList[k].setName(configs[k].getName().getText()); + newLessonList[k].setIndex(Integer.parseInt(configs[k].getIndex().getText())); + newLessonList[k].setTimeStart(configs[k].getTimeStart().getText()); + newLessonList[k].setTimeEnd(configs[k].getTimeEnd().getText()); + } + } + + FileControl.writeLessonListToJson(newLessonList,dateOfWeek); + + dispose(); // 关闭配置窗口 + + if(isRestart){ + System.exit(0); + } + } + public static int getDateNumFromString(String date){ + int dateInt = -1; + for (int i = 0;i < weeks.length;i++){ + if (weeks[i].equals(date)){ + dateInt = i; + break; + } + } + if (dateInt == -1) { + ExceptionManager.showErrorDialog(new InternalError("非法的日期字符串!")); + } + return dateInt; + } +} diff --git a/src/main/java/com/wudji/lessonlist/Screens/MainConfigScreen.java b/src/main/java/com/wudji/lessonlist/Screens/MainConfigScreen.java new file mode 100644 index 0000000..65a0103 --- /dev/null +++ b/src/main/java/com/wudji/lessonlist/Screens/MainConfigScreen.java @@ -0,0 +1,87 @@ +package com.wudji.lessonlist.Screens; + +import com.wudji.lessonlist.Utils.FileControl; + +import javax.swing.*; +import java.awt.*; + +public class MainConfigScreen extends JFrame { + Font fontS = FileControl.getFont(Font.BOLD,20); + Font fontL = FileControl.getFont(Font.BOLD,26); + + String targetDay = "Monday"; + public MainConfigScreen(){ + setTitle("主配置页面"); + setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); + setResizable(false); + + JPanel panel = new JPanel(); + panel.setLayout(new GridBagLayout()); + GridBagConstraints constraints = new GridBagConstraints(); + constraints.insets = new Insets(6,6,6,6); + + JLabel titleLable1 = new JLabel("主配置页面"); + titleLable1.setFont(fontL); + constraints.gridx = 0; + constraints.gridy = 0; + constraints.gridwidth = 4; + panel.add(titleLable1,constraints); + + JLabel titleLable2 = new JLabel("你可在此配置电子课表程序."); + titleLable2.setFont(FileControl.getFont(Font.PLAIN,20)); + constraints.gridx = 0; + constraints.gridy = 1; + constraints.gridwidth = 4; + panel.add(titleLable2,constraints); + + constraints.gridwidth = 1; + JButton windowConfigButton = new JButton("通用配置"); + windowConfigButton.addActionListener(e -> { + GeneralConfigScreen generalConfigScreen = new GeneralConfigScreen(); + generalConfigScreen.setVisible(true); + }); + windowConfigButton.setFont(fontS); + constraints.gridx = 0; + constraints.gridy = 3; + panel.add(windowConfigButton,constraints); + + JComboBox box = new JComboBox<>(new String[]{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}); + box.setFont(fontS); + constraints.gridx = 1; + constraints.gridy = 3; + panel.add(box,constraints); + + JButton lessonConfigButton = new JButton("配置课表"); + lessonConfigButton.addActionListener(e -> { + targetDay = (String) box.getSelectedItem(); + LessonConfigScreen lessonConfigScreen = new LessonConfigScreen(FileControl.getLessonListFromJSON(LessonConfigScreen.getDateNumFromString(targetDay)), targetDay); + lessonConfigScreen.setVisible(true); + }); + lessonConfigButton.setFont(fontS); + constraints.gridx = 2; + constraints.gridy = 3; + panel.add(lessonConfigButton,constraints); + + JButton aboutButton = new JButton("关于页面"); + aboutButton.addActionListener(e -> { + AboutScreen aboutScreen = new AboutScreen(); + aboutScreen.setVisible(true); + }); + aboutButton.setFont(fontS); + constraints.gridx = 4; + constraints.gridy = 3; + panel.add(aboutButton,constraints); + + JButton quitButton = new JButton("退出电子课表程序"); + quitButton.addActionListener(e -> System.exit(0)); + quitButton.setFont(fontS); + constraints.gridx = 5; + constraints.gridy = 3; + panel.add(quitButton,constraints); + + add(panel); + pack(); + setLocationRelativeTo(null); + + } +} diff --git a/src/main/java/com/wudji/lessonlist/Screens/MainWindow.java b/src/main/java/com/wudji/lessonlist/Screens/MainWindow.java new file mode 100644 index 0000000..5ff3646 --- /dev/null +++ b/src/main/java/com/wudji/lessonlist/Screens/MainWindow.java @@ -0,0 +1,114 @@ +package com.wudji.lessonlist.Screens; + + +import com.wudji.lessonlist.Utils.ClockButtonManager; +import com.wudji.lessonlist.Utils.ExceptionManager; +import com.wudji.lessonlist.MainActivity; +import com.wudji.lessonlist.Utils.FileControl; +import com.wudji.lessonlist.obj.Lesson; + +import javax.swing.*; +import java.awt.*; +import java.text.ParseException; +import java.util.Calendar; + +public class MainWindow extends JDialog { + + Calendar c = Calendar.getInstance(); + int week = c.get(Calendar.DAY_OF_WEEK); + Lesson[] lessonList = FileControl.getLessonListFromJSON(week - 1); + // clock + WPanel clockPanel = new WPanel(3,28); + + // lessonPanel + WPanel lessonPanel = new WPanel(lessonList.length * 2,28); + + WPanel countDownPanel = new WPanel(2,28); + JButton separateLine = new JButton("============"); + + Font lessonFont = FileControl.getFont(Font.BOLD, MainActivity.globalConfig.getLessonFontSize()); + public MainWindow(int x,int y,int w,int h) throws HeadlessException { + + this.setUndecorated(true); + this.setVisible(true); + this.setName("电子课表主界面"); + this.setTitle("电子课表主界面"); + this.setBackground(new Color(0,0,0,0)); + + this.setDefaultCloseOperation(this.HIDE_ON_CLOSE); + this.setBounds(x,y,w,h); + + // this.setBounds(150,150,150,150); + this.setLayout(new FlowLayout(FlowLayout.CENTER)); + + this.separateLine.setFont(lessonFont); + this.separateLine.setBackground(MainActivity.globalConfig.getWindowBgColor()); + + this.add(clockPanel); + if (MainActivity.globalConfig.isEnableCountDown()) { + this.add(countDownPanel); + } + this.add(lessonPanel); + + } + public void update(){ + this.updateLessonStatus(); + this.updateClockStatus(); + if (MainActivity.globalConfig.isEnableCountDown()) { + this.updateCountdownStatus(); + } + this.validate(); + this.repaint(); + + // System.out.println("step 5 passed"); + } + + private void updateLessonStatus(){ + + lessonPanel.removeAll(); + try { + for (Lesson lesson : lessonList) { + + long sysMillis = System.currentTimeMillis(); + + JButton lessonButt = new JButton(lesson.getIndex() + "." + lesson.getName()); + + lessonButt.setFont(lessonFont); + lessonButt.setBackground(MainActivity.globalConfig.getWindowBgColor()); + + if (lesson.getMillisTimeEnd() < sysMillis) { + lessonButt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createMatteBorder(0, 17, 0, 0, MainActivity.globalConfig.getPastLessonColor()/*new Color(148, 248, 125)*/), BorderFactory.createEmptyBorder(5, 17, 5, 17))); + } else if (lesson.getMillisTimeStart() > sysMillis) { + lessonButt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createMatteBorder(0, 17, 0, 0, MainActivity.globalConfig.getNextLessonColor()/*new Color(255, 88, 79)*/), BorderFactory.createEmptyBorder(5, 17, 5, 17))); + } else if (lesson.getMillisTimeStart() < sysMillis && lesson.getMillisTimeEnd() > sysMillis) { + lessonButt.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createMatteBorder(0, 17, 0, 0, MainActivity.globalConfig.getPresentLessonColor()/*new Color(234, 170, 99)*/), BorderFactory.createEmptyBorder(5, 17, 5, 17))); + } + + lessonPanel.add(lessonButt); + lessonPanel.add(this.getSeparateLine()); + } + }catch(ParseException e){ + ExceptionManager.showErrorDialog(e); + } + } + + private void updateClockStatus(){ + clockPanel.removeAll(); + clockPanel.add(ClockButtonManager.getTimeButton()); + clockPanel.add(ClockButtonManager.getWeekButton(week)); + clockPanel.add(ClockButtonManager.getConfigButton()); + } + + private void updateCountdownStatus(){ + countDownPanel.removeAll(); + countDownPanel.add(ClockButtonManager.getCountDownInfoButton()); + countDownPanel.add(ClockButtonManager.getCountdownButton()); + } + + private JButton getSeparateLine(){ + JButton j = new JButton("============"); + j.setFont(lessonFont); + j.setBackground(MainActivity.globalConfig.getWindowBgColor()); + return j; + } +} \ No newline at end of file diff --git a/src/main/java/com/wudji/Screens/NoticeScreen.java b/src/main/java/com/wudji/lessonlist/Screens/NoticeScreen.java similarity index 52% rename from src/main/java/com/wudji/Screens/NoticeScreen.java rename to src/main/java/com/wudji/lessonlist/Screens/NoticeScreen.java index 21100c6..2a139ee 100644 --- a/src/main/java/com/wudji/Screens/NoticeScreen.java +++ b/src/main/java/com/wudji/lessonlist/Screens/NoticeScreen.java @@ -1,21 +1,27 @@ -package com.wudji.Screens; +package com.wudji.lessonlist.Screens; -import com.wudji.MainActivity; -import com.wudji.NoticeLine; -import com.wudji.Utils.FileControl; +import com.wudji.lessonlist.MainActivity; +import com.wudji.lessonlist.obj.NoticeLine; +import com.wudji.lessonlist.Utils.FileControl; import javax.swing.*; +import javax.swing.border.Border; +import javax.swing.border.LineBorder; import java.awt.*; import java.util.Calendar; public class NoticeScreen extends JDialog { Calendar c = Calendar.getInstance(); - int week = c.get(7); + int week = c.get(Calendar.DAY_OF_WEEK); + + Point location; JPanel panel = new JPanel(); public NoticeScreen(Point mainWindowLocation) { - this.setTitle("Notice Screen"); + this.location = mainWindowLocation; + + this.setTitle("公告页面"); this.setUndecorated(true); @@ -23,7 +29,11 @@ public NoticeScreen(Point mainWindowLocation) { this.setLocationRelativeTo(null); - this.setLocation(mainWindowLocation.x - this.getWidth(), mainWindowLocation.y); + this.setLocation(location.x - this.getWidth(), location.y); + + Border customBorder = new LineBorder(new Color(217, 231, 203), 8); + + panel.setBorder(customBorder); this.setUndecorated(true); @@ -32,20 +42,24 @@ public NoticeScreen(Point mainWindowLocation) { this.updateNoticeList(FileControl.getNoticeLinesFromJSON(week - 1)); } + public void updatePosition(int y){ + this.pack(); + this.setLocation(this.location.x - this.getWidth(), this.location.y + y + 30); + } private void updateNoticeList(NoticeLine[] lines){ panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); for (NoticeLine line : lines) { JLabel label = new JLabel(line.getMessageInfo()); switch (line.getTextStyle()){ case "bold": - label.setFont(new Font(null, Font.BOLD, MainActivity.globalConfig.getNoticeFontSize())); + label.setFont(FileControl.getFont(Font.BOLD,MainActivity.globalConfig.getNoticeFontSize())); break; case "italic": - label.setFont(new Font(null, Font.ITALIC, MainActivity.globalConfig.getNoticeFontSize())); + label.setFont(FileControl.getFont(Font.ITALIC,MainActivity.globalConfig.getNoticeFontSize())); break; case "default": default: - label.setFont(new Font(null, Font.PLAIN, MainActivity.globalConfig.getNoticeFontSize())); + label.setFont(FileControl.getFont(Font.PLAIN,MainActivity.globalConfig.getNoticeFontSize())); } label.setForeground(line.getFontColor()); panel.add(label); diff --git a/src/main/java/com/wudji/lessonlist/Screens/PoemDetailScreen.java b/src/main/java/com/wudji/lessonlist/Screens/PoemDetailScreen.java new file mode 100644 index 0000000..4d550e8 --- /dev/null +++ b/src/main/java/com/wudji/lessonlist/Screens/PoemDetailScreen.java @@ -0,0 +1,89 @@ +package com.wudji.lessonlist.Screens; + +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.wudji.lessonlist.Utils.FileControl; + +import javax.swing.*; +import java.awt.*; +import java.util.Objects; + +public class PoemDetailScreen extends JFrame { + private JLabel contentLabel; + + public PoemDetailScreen(String json, int fontSize) { + + setTitle("诗歌详细信息"); + setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); + setLocationRelativeTo(null); + + GridBagLayout gridBagLayout = new GridBagLayout(); + setLayout(gridBagLayout); + GridBagConstraints constraints = new GridBagConstraints(); + contentLabel = new JLabel(); + contentLabel.setFont(FileControl.getFont(Font.PLAIN, fontSize)); + contentLabel.setVerticalAlignment(SwingConstants.TOP); + + constraints.gridx = 0; + constraints.gridy = 0; + constraints.weightx = 1.0; + constraints.weighty = 1.0; + constraints.fill = GridBagConstraints.BOTH; + add(new JScrollPane(contentLabel), constraints); + + displayJsonContent(json); + + contentLabel.setFont(FileControl.getFont(Font.PLAIN, fontSize)); + + pack(); + } + + private void displayJsonContent(String json) { + JSONObject full = JSON.parseObject(json); + + if(Objects.equals(full.getString("status"), "success")){ + JSONObject origin = full.getJSONObject("data").getJSONObject("origin"); + + String title = "《" + origin.getString("title") + "》 ——" + origin.getString("dynasty") + " " +origin.getString("author"); + + // content + JSONArray contentArray = origin.getJSONArray("content"); + StringBuilder contentBuilder = new StringBuilder(); + for (Object contentObj : contentArray) { + contentBuilder.append(contentObj.toString()).append("
"); + } + String content = contentBuilder.toString(); + String translation = "

\n暂无翻译或获取翻译失败!

"; + JSONArray translationArray = origin.getJSONArray("translate"); + try{ + StringBuilder translationBuilder = new StringBuilder(); + for (Object translationObj : translationArray) { + translationBuilder.append(translationObj.toString()).append("
"); + translation = translationBuilder.toString(); + } + }catch(Exception e){ + // translation = "暂无翻译或获取翻译失败!"; + } + + + // suggestReason + JSONArray suggestReasonArray = full.getJSONObject("data").getJSONArray("matchTags"); + StringBuilder suggestReasonBuilder = new StringBuilder(); + for (Object suggestObj : suggestReasonArray) { + suggestReasonBuilder.append(suggestObj.toString()).append(" | "); + } + String suggestReason = suggestReasonBuilder.toString(); + + String displayText = ""+ title +"
" + content + "
翻译:
" + translation + "

推荐理由(基于设备地理信息及天气、节气信息):
" + suggestReason + "

Token:
"+ full.getString("token") + ""; + contentLabel.setText(displayText); + + }else if(Objects.equals(full.getString("status"), "error")){ + String displayText = "

\n获取诗词信息失败!



errMessage:
"+ full.getString("errMessage") + ""; + contentLabel.setText(displayText); + } + + + } + +} diff --git a/src/main/java/com/wudji/lessonlist/Screens/PoemScreen.java b/src/main/java/com/wudji/lessonlist/Screens/PoemScreen.java new file mode 100644 index 0000000..5d7cb71 --- /dev/null +++ b/src/main/java/com/wudji/lessonlist/Screens/PoemScreen.java @@ -0,0 +1,105 @@ +package com.wudji.lessonlist.Screens; + +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; +import com.wudji.lessonlist.MainActivity; +import com.wudji.lessonlist.Utils.FileControl; +import com.wudji.lessonlist.obj.NoticeLine; + +import javax.swing.*; +import javax.swing.border.Border; +import javax.swing.border.LineBorder; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.geom.RoundRectangle2D; +import java.util.Objects; + +public class PoemScreen extends JDialog { + + JPanel panel = new JPanel(); + String poemDataString; + public PoemScreen(Point mainWindowLocation, String poemInfoString) { + + this.setTitle("诗词显示窗口"); + + this.setUndecorated(true); + + this.setSize(MainActivity.globalConfig.getNoticeWeight(), MainActivity.globalConfig.getNoticeHeight()); + + this.setLocationRelativeTo(null); + + this.setUndecorated(true); + + this.setVisible(false); + + this.setBackground(new Color(237, 241, 228)); + + // setBorder + Border customBorder = new LineBorder(new Color(217, 231, 203), 8); + + panel.setBorder(customBorder); + + this.poemDataString = poemInfoString; + + this.updatePoemInfo(resultResolve()); + + pack(); + + this.setLocation(mainWindowLocation.x - this.getWidth(), mainWindowLocation.y); + + } + + private void updatePoemInfo(NoticeLine[] lines){ + panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); + for (NoticeLine line : lines) { + JLabel label = new JLabel(line.getMessageInfo()); + switch (line.getTextStyle()){ + case "bold": + label.setFont(FileControl.getFont(Font.BOLD,MainActivity.globalConfig.getNoticeFontSize())); + break; + case "italic": + label.setFont(FileControl.getFont(Font.ITALIC,MainActivity.globalConfig.getNoticeFontSize())); + break; + case "default": + default: + label.setFont(FileControl.getFont(Font.PLAIN,MainActivity.globalConfig.getNoticeFontSize())); + } + label.setForeground(line.getFontColor()); + panel.add(label); + } + + // add refresh buttons + JButton refreshButton = new JButton("🔎 诗词信息"); + refreshButton.setFont(new Font(null, Font.PLAIN, 16)); + + refreshButton.addActionListener(e -> { + PoemDetailScreen poemDetailScreen = new PoemDetailScreen(poemDataString,MainActivity.globalConfig.getNoticeFontSize()); + poemDetailScreen.setVisible(true); + }); + + panel.add(refreshButton); + this.add(panel); + } + + private NoticeLine[] resultResolve(){ + NoticeLine[] poemInfo = new NoticeLine[2]; + + + JSONObject fullData = JSONObject.parseObject(poemDataString); + // System.out.println(fullData.getString("status")); + if(Objects.equals(fullData.getString("status"), "success")){ + JSONObject poemData = fullData.getJSONObject("data"); + JSONObject originData = poemData.getJSONObject("origin"); + + poemInfo[0] = new NoticeLine(poemData.getString("content"),"bold",0,0,0,0); + poemInfo[1] = new NoticeLine("——" + originData.getString("author") + "《"+ originData.getString("title") +"》","italic",0,0,0,0); + + }else if(Objects.equals(fullData.getString("status"), "error")){ + poemInfo[0] = new NoticeLine("诗词获取失败,何故?","bold",0,0,0,0); + poemInfo[1] = new NoticeLine("——错误代码:" + fullData.getInteger("errCode").toString() + ";错误信息"+ fullData.getString("errMessage") +"。","italic",0,0,0,0); + } + return poemInfo; + + } +} diff --git a/src/main/java/com/wudji/Screens/WPanel.java b/src/main/java/com/wudji/lessonlist/Screens/WPanel.java similarity index 89% rename from src/main/java/com/wudji/Screens/WPanel.java rename to src/main/java/com/wudji/lessonlist/Screens/WPanel.java index 45a6bab..12a661f 100644 --- a/src/main/java/com/wudji/Screens/WPanel.java +++ b/src/main/java/com/wudji/lessonlist/Screens/WPanel.java @@ -1,4 +1,4 @@ -package com.wudji.Screens; +package com.wudji.lessonlist.Screens; import javax.swing.*; import java.awt.*; diff --git a/src/main/java/com/wudji/Screens/WelcomeScreen.java b/src/main/java/com/wudji/lessonlist/Screens/WelcomeScreen.java similarity index 84% rename from src/main/java/com/wudji/Screens/WelcomeScreen.java rename to src/main/java/com/wudji/lessonlist/Screens/WelcomeScreen.java index 6ddabc0..bd78364 100644 --- a/src/main/java/com/wudji/Screens/WelcomeScreen.java +++ b/src/main/java/com/wudji/lessonlist/Screens/WelcomeScreen.java @@ -1,4 +1,4 @@ -package com.wudji.Screens; +package com.wudji.lessonlist.Screens; import javax.swing.*; import java.awt.*; @@ -8,7 +8,7 @@ public WelcomeScreen() { super((Frame) null, "欢迎使用", true); this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); - ImageIcon icon = new ImageIcon("welcome.png"); + ImageIcon icon = new ImageIcon("resources/welcome.png"); JLabel label = new JLabel(icon); this.setSize(icon.getIconWidth(), icon.getIconHeight()); diff --git a/src/main/java/com/wudji/ClockButtonManager.java b/src/main/java/com/wudji/lessonlist/Utils/ClockButtonManager.java similarity index 60% rename from src/main/java/com/wudji/ClockButtonManager.java rename to src/main/java/com/wudji/lessonlist/Utils/ClockButtonManager.java index 4f6ab4f..e0a788a 100644 --- a/src/main/java/com/wudji/ClockButtonManager.java +++ b/src/main/java/com/wudji/lessonlist/Utils/ClockButtonManager.java @@ -1,11 +1,10 @@ -package com.wudji; +package com.wudji.lessonlist.Utils; -import com.wudji.Screens.AboutScreen; +import com.wudji.lessonlist.MainActivity; +import com.wudji.lessonlist.Screens.MainConfigScreen; import javax.swing.*; import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.text.SimpleDateFormat; import java.time.Duration; import java.time.LocalDateTime; @@ -17,22 +16,22 @@ public class ClockButtonManager { static SimpleDateFormat formatter= new SimpleDateFormat("HH:mm:ss"); + static Font font1 = FileControl.getFont(Font.BOLD, MainActivity.globalConfig.getClockFontsize() -1); + static Font font2 = FileControl.getFont(Font.BOLD, MainActivity.globalConfig.getClockFontsize() -1); + public static JButton getTimeButton(){ JButton j = new JButton(" 时间:" + formatter.format(new Date(System.currentTimeMillis())) +" "); - j.setFont(new Font(null, Font.BOLD,MainActivity.globalConfig.getClockFontsize())); + j.setFont(font1); j.setBackground(MainActivity.globalConfig.getWindowBgColor()); - j.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - AboutScreen s = new AboutScreen(); - s.setVisible(true); - } + j.addActionListener(e -> { + MainConfigScreen mainConfigScreen = new MainConfigScreen(); + mainConfigScreen.setVisible(true); }); return j; } public static JButton getWeekButton(int week){ JButton j = new JButton(weeks[week - 1]); - j.setFont(new Font(null, Font.BOLD,MainActivity.globalConfig.getClockFontsize())); + j.setFont(font2); j.setBackground(MainActivity.globalConfig.getWindowBgColor()); return j; @@ -41,21 +40,32 @@ public static JButton getWeekButton(int week){ public static JButton getCountdownButton(){ Date d = Calendar.getInstance().getTime(); LocalDateTime dateStart = LocalDateTime.of(MainActivity.globalConfig.getCountDownYear(), MainActivity.globalConfig.getCountDownMonth() - 1 , MainActivity.globalConfig.getCountDownDate(),8,1); - LocalDateTime dateEnd = LocalDateTime.of(d.getYear() + 1900, d.getMonth(), d.getDate(), 8, 1); + LocalDateTime dateEnd = LocalDateTime.of(d.getYear() + 1900, d.getMonth(), d.getDate(), 0, 1); Duration duration = Duration.between(dateStart, dateEnd); int day = Math.abs((int)duration.toDays()); - JButton j = new JButton(String.valueOf(day) + " 天"); - j.setFont(new Font(null, Font.BOLD,MainActivity.globalConfig.getClockFontsize() - 1)); + JButton j = new JButton(day + " 天"); + j.setFont(font2); j.setBackground(MainActivity.globalConfig.getWindowBgColor()); return j; } public static JButton getCountDownInfoButton(){ JButton j = new JButton(MainActivity.globalConfig.getCountDownInfo()); - j.setFont(new Font(null, Font.BOLD,MainActivity.globalConfig.getClockFontsize() - 1)); + j.setFont(font2); j.setBackground(MainActivity.globalConfig.getWindowBgColor()); return j; } + + public static JButton getConfigButton() { + JButton config = new JButton("△ 配置程序"); + config.setFont(font2); + config.setBackground(MainActivity.globalConfig.getWindowBgColor()); + config.addActionListener(e -> { + MainConfigScreen mainConfigScreen = new MainConfigScreen(); + mainConfigScreen.setVisible(true); + }); + return config; + } } diff --git a/src/main/java/com/wudji/lessonlist/Utils/ExceptionManager.java b/src/main/java/com/wudji/lessonlist/Utils/ExceptionManager.java new file mode 100644 index 0000000..7e4cf8d --- /dev/null +++ b/src/main/java/com/wudji/lessonlist/Utils/ExceptionManager.java @@ -0,0 +1,50 @@ +package com.wudji.lessonlist.Utils; + +import com.wudji.lessonlist.MainActivity; + +import javax.swing.*; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.lang.reflect.Field; + +public class ExceptionManager { + public static void showErrorDialog(Throwable throwable) { + if(MainActivity.globalConfig.isTemp_feature_notice()) { + throwable.printStackTrace(); + }else{ + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + throwable.printStackTrace(pw); + String stackTrace = sw.toString(); + + String errorMessage = throwable.getMessage(); + String dialogMessage = errorMessage + "\n\n" + stackTrace + "\n\n" + "===========" + "\n\n" + "Software information:" + "\n" + + "base_version: " + MainActivity.base_version + "\n" + "product_version: " + MainActivity.product_version + "\n\n" + + "Env information:" + "\nos: " + System.getProperty("os.name") + " " + System.getProperty("os.arch") + "\n"; + + // System.out.println(stackTrace); + + JOptionPane.showMessageDialog(null, dialogMessage, "Error", JOptionPane.ERROR_MESSAGE); + } + } + public static void areAllPropertiesNotNull(Object obj) { + if (obj == null) { + showErrorDialog(new IllegalStateException("Target object is null!")); + } + Class objClass = obj.getClass(); + Field[] fields = objClass.getDeclaredFields(); + + for (Field field : fields) { + field.setAccessible(true); + try { + Object value = field.get(obj); + + if (value == null) { + showErrorDialog(new IllegalStateException("Object" + obj + "'s attribute is null or is not set properly.")); + } + } catch (IllegalAccessException e) { + showErrorDialog(e); + } + } + } +} diff --git a/src/main/java/com/wudji/lessonlist/Utils/FileControl.java b/src/main/java/com/wudji/lessonlist/Utils/FileControl.java new file mode 100644 index 0000000..e26b3a8 --- /dev/null +++ b/src/main/java/com/wudji/lessonlist/Utils/FileControl.java @@ -0,0 +1,131 @@ +package com.wudji.lessonlist.Utils; + +import com.wudji.lessonlist.obj.NoticeLine; +import com.wudji.lessonlist.obj.Lesson; + +import java.awt.*; +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; + +import com.alibaba.fastjson2.*; +import com.wudji.lessonlist.obj.WindowConfig; + +public class FileControl { + public static String getFormattedStr(File jsonFile){ + try (BufferedReader reader = new BufferedReader( + new InputStreamReader(Files.newInputStream(jsonFile.toPath()), StandardCharsets.UTF_8))) { + StringBuilder contentBuilder = new StringBuilder(); + String line; + while ((line = reader.readLine()) != null) { + contentBuilder.append(line).append("\n"); + } + + // 输出读取到的字符串 + return contentBuilder.toString(); + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + + public static String getRoughStr(String filePath){ + try (BufferedReader reader = new BufferedReader( + new InputStreamReader(Files.newInputStream(Paths.get(filePath)), StandardCharsets.UTF_8))) { + StringBuilder contentBuilder = new StringBuilder(); + String line; + while ((line = reader.readLine()) != null) { + contentBuilder.append(line); + } + + return contentBuilder.toString(); + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + + public static void writeString(String filePath,String content){ + try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) { + writer.write(content); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static Lesson[] getLessonListFromJSON(int week){ + String lessonListStr = getFormattedStr(new File("lessons/" + week + ".json")); + Lesson[] lessons = JSON.parseArray(lessonListStr,Lesson.class).toArray(new Lesson[0]); + for (Lesson lesson: + lessons) { + ExceptionManager.areAllPropertiesNotNull(lesson); + } + if (lessons.length >= 10){ + ExceptionManager.showErrorDialog(new IllegalStateException("Lesson number >= 10 is not supported by default!")); + } + return lessons; + } + + public static WindowConfig getWindowConfig(){ + try { + + String jsonString = new String(Files.readAllBytes(Paths.get("config/windowConfig.json"))); + + return JSON.parseObject(jsonString, WindowConfig.class); + + } catch (IOException e) { + + ExceptionManager.showErrorDialog(e); + return new WindowConfig(); + + } + } + + public static NoticeLine[] getNoticeLinesFromJSON(int week){ + try { + String noticeLinesStr = getFormattedStr(new File("notice/" + week + ".json")); + NoticeLine[] lines = JSON.parseArray(noticeLinesStr, NoticeLine.class).toArray(new NoticeLine[0]); + for (NoticeLine line: + lines) { + ExceptionManager.areAllPropertiesNotNull(line); + } + return lines; + }catch (Exception e){ + ExceptionManager.showErrorDialog(e); + } + return new NoticeLine[0]; + } + + public static void writeLessonListToJson(Lesson[] lessons, int targetDay){ + String jsonString = JSON.toJSONString(lessons, JSONWriter.Feature.PrettyFormat); + try (OutputStreamWriter writer = new OutputStreamWriter(Files.newOutputStream(new File("lessons/" + targetDay + ".json").toPath()), StandardCharsets.UTF_8)){ + writer.write(jsonString); + } catch (IOException e) { + ExceptionManager.showErrorDialog(e); + } + } + + public static void writeWindowConfigToJson(WindowConfig config){ + String jsonString = JSON.toJSONString(config, JSONWriter.Feature.PrettyFormat); + + try (OutputStreamWriter writer = new OutputStreamWriter(Files.newOutputStream(new File("config/windowConfig.json").toPath()), StandardCharsets.UTF_8)){ + writer.write(jsonString); + } catch (IOException e) { + ExceptionManager.showErrorDialog(e); + } + } + + public static Font getFont(int fontStyle,int fontSize){ + try { + File ttfFile = new File("resources/font.ttf"); + Font font = Font.createFont(Font.TRUETYPE_FONT, ttfFile); + + return font.deriveFont(fontStyle, fontSize); + } catch (FontFormatException | IOException e) { + e.printStackTrace(); + } + // 获取失败 + return new Font(null,fontStyle,fontSize); + } +} diff --git a/src/main/java/com/wudji/lessonlist/network/PoemNetworkRequest.java b/src/main/java/com/wudji/lessonlist/network/PoemNetworkRequest.java new file mode 100644 index 0000000..e77bcb7 --- /dev/null +++ b/src/main/java/com/wudji/lessonlist/network/PoemNetworkRequest.java @@ -0,0 +1,67 @@ +package com.wudji.lessonlist.network; + +import com.alibaba.fastjson2.JSONObject; +import com.wudji.lessonlist.Utils.ExceptionManager; +import com.wudji.lessonlist.Utils.FileControl; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; + +public class PoemNetworkRequest { + public static String getPoemData() { + String[] requestHeader = {"X-User-Token",getUserDataToken()}; + System.out.println(sendGetRequestWithHeader("https://v2.jinrishici.com/info",requestHeader)); + return sendGetRequestWithHeader("https://v2.jinrishici.com/sentence",requestHeader); + } + + private static String getUserDataToken() { + String token; + token = FileControl.getRoughStr("config/token.txt"); + if (token == ""){ + JSONObject tokenRespond = JSONObject.parseObject(sendGetRequestWithHeader("https://v2.jinrishici.com/token")); + token = tokenRespond.getString("data"); + FileControl.writeString("config/token.txt",token); + } + System.out.println(token); + return token; + } + + private static String sendGetRequestWithHeader(String urlStr, String[]... headers) { + StringBuilder response = new StringBuilder(); + + try { + URL url = new URL(urlStr); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod("GET"); + + if(headers != null){ + for (String[] header: + headers) { + connection.setRequestProperty(header[0], header[1]); + } + } + + + int responseCode = connection.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK) { + BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + String inputLine; + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + } else { + response.append("GET request failed. Response Code: ").append(responseCode); + ExceptionManager.showErrorDialog(new Throwable(response.toString())); + } + } catch (Exception e) { + response.append("An error occurred: ").append(e.getMessage()); + ExceptionManager.showErrorDialog(new Throwable(response.toString())); + } + + return response.toString(); + } +} diff --git a/src/main/java/com/wudji/Lesson.java b/src/main/java/com/wudji/lessonlist/obj/Lesson.java similarity index 81% rename from src/main/java/com/wudji/Lesson.java rename to src/main/java/com/wudji/lessonlist/obj/Lesson.java index ba8fdf6..f9a1197 100644 --- a/src/main/java/com/wudji/Lesson.java +++ b/src/main/java/com/wudji/lessonlist/obj/Lesson.java @@ -1,4 +1,4 @@ -package com.wudji; +package com.wudji.lessonlist.obj; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -21,14 +21,22 @@ public int getIndex() { return index; } - public long getTimeStart() throws ParseException { + public long getMillisTimeStart() throws ParseException { return stringToMillis(timeStart); } - public long getTimeEnd() throws ParseException { + public long getMillisTimeEnd() throws ParseException { return stringToMillis(timeEnd); } + public String getTimeStart(){ + return timeStart; + } + + public String getTimeEnd(){ + return timeEnd; + } + public void setName(String name) { this.name = name; } diff --git a/src/main/java/com/wudji/lessonlist/obj/LessonConfig.java b/src/main/java/com/wudji/lessonlist/obj/LessonConfig.java new file mode 100644 index 0000000..5d7bbc2 --- /dev/null +++ b/src/main/java/com/wudji/lessonlist/obj/LessonConfig.java @@ -0,0 +1,61 @@ +package com.wudji.lessonlist.obj; + +import com.wudji.lessonlist.Utils.FileControl; + +import javax.swing.*; +import java.awt.*; + +public class LessonConfig { + private JTextField name = new JTextField(10); + private JTextField index = new JTextField(10); + private JTextField timeStart = new JTextField(10); + private JTextField timeEnd = new JTextField(10); + private JCheckBox isEnabled = new JCheckBox(); + + private Font font = FileControl.getFont(Font.PLAIN,14); + + public LessonConfig(Lesson l, boolean i) { + name.setFont(font); + index.setFont(font); + timeStart.setFont(font); + timeEnd.setFont(font); + + if (i) { + name.setText(l.getName()); + index.setText(String.valueOf(l.getIndex())); + timeStart.setText(l.getTimeStart()); + timeEnd.setText(l.getTimeEnd()); + } else { + name.setText("missingno"); + index.setText("missingno"); + timeStart.setText("missingno"); + timeEnd.setText("missingno"); + } + isEnabled.setSelected(i); + } + + public boolean isEnabled(){ + return isEnabled.isSelected(); + } + + public JTextField getName() { + return name; + } + + public JTextField getIndex() { + return index; + } + + public JTextField getTimeStart() { + return timeStart; + } + + public JTextField getTimeEnd() { + return timeEnd; + } + + public JCheckBox getIsEnabled() { + return isEnabled; + } + +} diff --git a/src/main/java/com/wudji/NoticeLine.java b/src/main/java/com/wudji/lessonlist/obj/NoticeLine.java similarity index 70% rename from src/main/java/com/wudji/NoticeLine.java rename to src/main/java/com/wudji/lessonlist/obj/NoticeLine.java index 8bc5a7a..0974fac 100644 --- a/src/main/java/com/wudji/NoticeLine.java +++ b/src/main/java/com/wudji/lessonlist/obj/NoticeLine.java @@ -1,4 +1,4 @@ -package com.wudji; +package com.wudji.lessonlist.obj; import java.awt.*; @@ -12,6 +12,18 @@ public class NoticeLine { int index; + public NoticeLine() { + } + + public NoticeLine(String messageInfo, String textStyle, int colorR, int colorG, int colorB, int index) { + this.messageInfo = messageInfo; + this.textStyle = textStyle; + this.colorR = colorR; + this.colorG = colorG; + this.colorB = colorB; + this.index = index; + } + public String getMessageInfo() { return messageInfo; } diff --git a/src/main/java/com/wudji/WindowConfig.java b/src/main/java/com/wudji/lessonlist/obj/WindowConfig.java similarity index 83% rename from src/main/java/com/wudji/WindowConfig.java rename to src/main/java/com/wudji/lessonlist/obj/WindowConfig.java index 033dcfd..8bd39a5 100644 --- a/src/main/java/com/wudji/WindowConfig.java +++ b/src/main/java/com/wudji/lessonlist/obj/WindowConfig.java @@ -1,134 +1,39 @@ -package com.wudji; +package com.wudji.lessonlist.obj; + +import java.awt.Color; -import java.awt.*; @SuppressWarnings("unused") public class WindowConfig { private int clockFontsize; - private int lessonFontSize; - private int noticeFontSize; - private int posx; - private int posy; - private int weight; - private int height; - private int pastLessonColorR; - private int pastLessonColorG; - private int pastLessonColorB; - private int presentLessonColorR; - private int presentLessonColorG; - private int presentLessonColorB; - private int nextLessonColorR; - private int nextLessonColorG; - private int nextLessonColorB; - private int windowColorR; - private int windowColorG; - private int windowColorB; - private int windowColorA; - private int countDownYear; private int countDownMonth; - - private boolean enableNotice; - - private int noticeWeight; - - private int noticeHeight; - - public int getNoticeWeight() { - return noticeWeight; - } - - public void setNoticeWeight(int noticeWeight) { - this.noticeWeight = noticeWeight; - } - - public int getNoticeHeight() { - return noticeHeight; - } - - public void setNoticeHeight(int noticeHeight) { - this.noticeHeight = noticeHeight; - } - - public int getNoticeFontSize() { - return noticeFontSize; - } - - public void setNoticeFontSize(int noticeFontSize) { - this.noticeFontSize = noticeFontSize; - } - - public boolean isEnableNotice() { - return enableNotice; - } - - public void setEnableNotice(boolean enableNotice) { - this.enableNotice = enableNotice; - } - - public int getCountDownYear() { - return countDownYear; - } - - public void setCountDownYear(int countDownYear) { - this.countDownYear = countDownYear; - } - - public int getCountDownMonth() { - return countDownMonth; - } - - public void setCountDownMonth(int countDownMonth) { - this.countDownMonth = countDownMonth; - } - - public int getCountDownDate() { - return countDownDate; - } - - public void setCountDownDate(int countDownDate) { - this.countDownDate = countDownDate; - } - private int countDownDate; - private String countDownInfo; - private boolean enableCountDown; - - public boolean isEnableCountDown() { - return enableCountDown; - } - - public void setEnableCountDown(boolean enableCountDown) { - this.enableCountDown = enableCountDown; - } - - public String getCountDownInfo() { - return countDownInfo; - } - - public void setCountDownInfo(String countDownInfo) { - this.countDownInfo = countDownInfo; - } + private boolean temp_feature_notice;// suppress warning + private boolean enableNotice; + private int noticeWeight; + private int noticeHeight; + private boolean enablePoemSuggestion; public int getClockFontsize() { return clockFontsize; @@ -146,6 +51,14 @@ public void setLessonFontSize(int lessonFontSize) { this.lessonFontSize = lessonFontSize; } + public int getNoticeFontSize() { + return noticeFontSize; + } + + public void setNoticeFontSize(int noticeFontSize) { + this.noticeFontSize = noticeFontSize; + } + public int getPosx() { return posx; } @@ -282,19 +195,99 @@ public void setWindowColorA(int windowColorA) { this.windowColorA = windowColorA; } - public Color getPastLessonColor(){ - return new Color(this.pastLessonColorR,this.pastLessonColorG,this.pastLessonColorB); + public Color getPastLessonColor() { + return new Color(this.pastLessonColorR, this.pastLessonColorG, this.pastLessonColorB); + } + + public Color getPresentLessonColor() { + return new Color(this.presentLessonColorR, this.presentLessonColorG, this.presentLessonColorB); + } + + public Color getNextLessonColor() { + return new Color(this.nextLessonColorR, this.nextLessonColorG, this.nextLessonColorB); + } + + public Color getWindowBgColor() { + return new Color(this.windowColorR, this.windowColorG, this.windowColorB, this.windowColorA); + } + + public int getCountDownYear() { + return countDownYear; + } + + public void setCountDownYear(int countDownYear) { + this.countDownYear = countDownYear; + } + + public int getCountDownMonth() { + return countDownMonth; + } + + public void setCountDownMonth(int countDownMonth) { + this.countDownMonth = countDownMonth; + } + + public int getCountDownDate() { + return countDownDate; + } + + public void setCountDownDate(int countDownDate) { + this.countDownDate = countDownDate; + } + + public String getCountDownInfo() { + return countDownInfo; + } + + public void setCountDownInfo(String countDownInfo) { + this.countDownInfo = countDownInfo; + } + + public boolean isEnableCountDown() { + return enableCountDown; + } + + public void setEnableCountDown(boolean enableCountDown) { + this.enableCountDown = enableCountDown; + } + + public boolean isTemp_feature_notice() { + return temp_feature_notice; + } + + public void setTemp_feature_notice(boolean temp_feature_notice) { + this.temp_feature_notice = temp_feature_notice; + } + + public boolean isEnableNotice() { + return enableNotice; + } + + public void setEnableNotice(boolean enableNotice) { + this.enableNotice = enableNotice; } - public Color getPresentLessonColor(){ - return new Color(this.presentLessonColorR,this.presentLessonColorG,this.presentLessonColorB); + public int getNoticeWeight() { + return noticeWeight; + } + + public void setNoticeWeight(int noticeWeight) { + this.noticeWeight = noticeWeight; + } + + public int getNoticeHeight() { + return noticeHeight; + } + + public void setNoticeHeight(int noticeHeight) { + this.noticeHeight = noticeHeight; } - public Color getNextLessonColor(){ - return new Color(this.nextLessonColorR,this.nextLessonColorG,this.nextLessonColorB); + public boolean isEnablePoemSuggestion() { + return enablePoemSuggestion; } - public Color getWindowBgColor(){ - return new Color(this.windowColorR,this.windowColorG,this.windowColorB,this.windowColorA); + public void setEnablePoemSuggestion(boolean enablePoemSuggestion) { + this.enablePoemSuggestion = enablePoemSuggestion; } } diff --git a/welcome.png b/welcome.png deleted file mode 100644 index 80df9a8..0000000 Binary files a/welcome.png and /dev/null differ diff --git a/windowConfig.json b/windowConfig.json deleted file mode 100644 index 8270777..0000000 --- a/windowConfig.json +++ /dev/null @@ -1,30 +0,0 @@ -[{ - "clockFontsize": 23, - "lessonFontSize": 23, - "noticeFontSize" : 23, - "posx": 250, - "posy": 30, - "weight": 300, - "height": 65, - "pastLessonColorR": 148, - "pastLessonColorG": 248, - "pastLessonColorB": 125, - "presentLessonColorR": 234, - "presentLessonColorG": 170, - "presentLessonColorB": 99, - "nextLessonColorR": 255, - "nextLessonColorG": 88, - "nextLessonColorB": 79, - "windowColorR": 242, - "windowColorG": 247, - "windowColorB": 253, - "windowColorA": 1, - "enableCountDown" : true, - "countDownYear": 2024, - "countDownMonth": 6, - "countDownDate": 7, - "countDownInfo": " 距离 高考 还有 ", - "enableNotice" : true, - "noticeWeight": 250, - "noticeHeight": 350 -}] \ No newline at end of file