diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index a67d5b29..96fa60cd 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -39,11 +39,11 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -54,7 +54,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v2 + uses: github/codeql-action/autobuild@v3 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -68,4 +68,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 diff --git a/src/automail.m4 b/src/automail.m4 index fbdf0727..66212292 100644 --- a/src/automail.m4 +++ b/src/automail.m4 @@ -1,6 +1,6 @@ m4_divert(-1)m4_dnl m4_changequote(m4>) -m4_define(AUTOMAIL_VERSION,10.4.6) +m4_define(AUTOMAIL_VERSION,10.6.4) m4_divert(0)m4_dnl // ==UserScript== // @name Automail diff --git a/src/cache.js b/src/cache.js index 4552eaf0..68291334 100644 --- a/src/cache.js +++ b/src/cache.js @@ -121,7 +121,12 @@ query($name: String!){ let found = false; //logic here if(different){ - aniCast.postMessage({type:"cachev2",mediaData: mediaData}); + try{ + aniCast.postMessage({type:"cachev2",mediaData: mediaData}); + } + catch(e){ + aniCastFailure(e) + } if(!doNotWrite){ cache.synch() } diff --git a/src/css/global.css b/src/css/global.css index e983fbf2..355947ed 100644 --- a/src/css/global.css +++ b/src/css/global.css @@ -536,6 +536,7 @@ tr.hohAnimeTable:nth-child(2n+1){ padding: 2px; border-radius: 4px; } +.hohArrowSort.hohArrowSelected, .hohArrowSort:hover, .hohFilterSort:hover{ color: rgb(var(--color-blue)); diff --git a/src/data/commonUnfinishedManga.json b/src/data/commonUnfinishedManga.json index 56e384c1..9dbe1d1d 100644 --- a/src/data/commonUnfinishedManga.json +++ b/src/data/commonUnfinishedManga.json @@ -1,11 +1,11 @@ { "30002":{ - "chapters":369, + "chapters":376, "volumes":40, "comment":"berserk" }, "30013":{ - "chapters":1069, + "chapters":1118, "volumes":101, "comment":"one piece" }, diff --git a/src/data/languages/English.json b/src/data/languages/English.json index e5d576e2..da0c147b 100644 --- a/src/data/languages/English.json +++ b/src/data/languages/English.json @@ -543,6 +543,7 @@ "$socialTab_shortAverage": "Avg", "$query_firstActivity": "First Activity", "$query_autorecs": "Autorecs", +"$query_reviews": "Reviews", "$query_autorecs_collecting": "Collecting list data...", "$query_autorecs_processing": "Processing...", "$query_autorecs_info": "Top picks, based on your ratings, the ratings of others, and the recommendation database. Best matches on top", @@ -602,6 +603,7 @@ "$rangeSetter_description": "Add a progress range setter to the list editor", "$rangeSetter_extendedDescription": "When changing the number in the \"progress\" field, a button will appear.\nWhen clicked, it sets the lower number on an activity (\"user read chapter 65 - 69 of manga\")\nYou then change the field to the higher number and click save as usual.", "$noAutoplay_description": "Do not autoplay videos", +"$noAutoplay_extendedDescription": "Your browser may also provide ways to control this:\n\nFirefox: about:config > media.autoplay has a wide range of options\n\nChrome: chrome://flags/#autoplay-policy", "$anisongs_description": "Add OP/ED data to media pages [by Morimasa]", "$enumerateSubmissionStaff_description": "Enumerate multiple credits for staff in the submission form to help avoid duplicates", "$expandedListNotes_description": "Click list notes for an expanded view", @@ -659,6 +661,7 @@ "$altBanner_extendedDescription": "Prevents the banner on media pages from stretching and cropping on screen resolutions wider than 1920 pixels\nInstead, it always displays the banner in full with sides filled in by the blurred original banner", "$hideScores_description": "Hide scores on embedded cards, browse and media overview pages", "$hideScores_extendedDescription": "Scores and charts on media overview pages will be hidden within a spoiler (Hover or click to reveal)\nDoes not hide scores set by other Automail options", +"$recommendationsFade_description": "Fade out recommendations on media pages that are already in your lists", "$heading_activityHistory": "Activity History", "$heading_genreOverview": "Genre Overview", "$amount_label": "Entries", @@ -735,6 +738,7 @@ "$editor_hideFromStatusLists": "Hide from status lists", "$editor_private": "Private", "$editor_customLists": "Custom Lists", +"$dataSet_airing": "Airing", "$dataSet_chapters": "Chapters", "$dataSet_volumes": "Volumes", "$dataSet_format": "Format", diff --git a/src/data/languages/Japanese.json b/src/data/languages/Japanese.json index c20b753a..d839001f 100644 --- a/src/data/languages/Japanese.json +++ b/src/data/languages/Japanese.json @@ -12,7 +12,7 @@ }, "keys": { "$loading": "読み込んでいます...", -"$searching": "検索しています", +"$searching": "検索中", "$load_more": "もっと読み込み", "$button_next": "次へ →", "$button_previous": "前へ", @@ -30,7 +30,7 @@ "$missing_N/A_data": "-", "$button_next": "次へ →", "$button_previous": "← 前へ", -"$button_refresh": "リフレッシュ", +"$button_refresh": "再読み込み", "$button_edit": "編集", "$button_publish": "著す", "$button_cancel": "キャンセル", @@ -88,8 +88,8 @@ "$profileBackground_help2": "ヒント:透明度の高い色を使用すると、明るいテーマと暗いテーマの両方でより効果的に機能します。例:", "$profileBackground_help3": "ヒント2:色あせた画像を固定したまま、画面いっぱいに表示させたい?これはその方法です。", "$mediaStatus_current": "現在", -"$mediaStatus_watching": "視聴している", -"$mediaStatus_reading": "読んでいる", +"$mediaStatus_watching": "視聴中", +"$mediaStatus_reading": "読書中", "$mediaStatus_completed": "完成", "$mediaStatus_completedWatching": "完成", "$mediaStatus_completedReading": "完成", @@ -103,8 +103,8 @@ "$listActivity_MwatchedEpisode": " の第 {0} 話を見ました。", "$listActivity_planningManga": " を読む予定です。", "$listActivity_planningAnime": " を見る予定です。", -"$listActivity_completedManga": " を完成させました。", -"$listActivity_completedAnime": " を完成させました。", +"$listActivity_completedManga": " を完成しました。", +"$listActivity_completedAnime": " を完成しました。", "$listActivity_repeatedManga": " を再読しました。", "$listActivity_repeatedAnime": " を再視聴しました。", "$listActivity_pausedManga": " 読むのを一時中断しました。", @@ -147,7 +147,7 @@ "$notifications_showHoh": "代替の通知を表示する", "$notification_forumCommentLike": " フォーラムスレッドで、は貴方のコメントが気に入りました。", "$notification_forumMention": " フォーラムスレッドで、は貴方にメンションしました。,", -"$timeline_search_description": "誰かのアクティビティを探していますか?", +"$timeline_search_description": "別人のアクティビティを探したかったですか?", "$noScrollPosts_description": "長さに関係なく、すべてのステータスポストをフルで表示する", "$ALbuttonReload_description": "「AL」ボタンでトップページのフィードを再読み込みする", "$piracy_message": "これは悪いリンクです、現在処分です (通報ボタンをクリックして、このいたずらなユーザーをモデレーターで呼び出します)", @@ -172,7 +172,7 @@ "$anisongs_endings": "アニメ ED", "$anisongs_ending": "アニメ ED", "$submenu_stats": "スタッツ", -"$submenu_social": "社会的", +"$submenu_social": " ソーシャル", "$submenu_reviews": "レビュー", "$submenu_favourites": "お気に入り", "$submenu_submissions": "投稿", @@ -188,7 +188,7 @@ "$input_user_placeholder": "ユーザー", "$error_userNotFound": "ユーザーが見つかりません", "$error_connection": "接続エラー", -"$myThreads_link": "私のスレッド", +"$myThreads_link": "自分のスレッド", "$compare_default": "デフォルトの比較を表示する", "$compare_minRatings": "最低レーティング:", "$compare_individualRatings": "個別レーティングシステム:", @@ -358,8 +358,8 @@ "$sort_length": "長さ", "$sort_popularity": "人気", "$sort_score": "スコア", -"$sort_myScore": "私のスコア", -"$sort_myProgress": "私の進歩", +"$sort_myScore": "自分のスコア", +"$sort_myProgress": "自分の進歩", "$milestones_totalVolumes": "全巻共通", "$milestones_totalEpisodes": "全話数", "$milestones_daysWatched": "{0} 視聴日数", diff --git a/src/data/languages/Norwegian.json b/src/data/languages/Norwegian.json index 704dd805..fe5c5bcc 100644 --- a/src/data/languages/Norwegian.json +++ b/src/data/languages/Norwegian.json @@ -132,6 +132,7 @@ "$submenu_threads": "Trådar", "$submenu_statusDistribution": "Statusfordeling", "$submenu_scoreDistribution": "Vurderingsfordeling", +"$submenu_trailer": "Filmtrailer", "$hideSequels": "Skjul oppfylgjarar", "$cssTooBig": "Meir enn 1MB CSS. Gjer det mindre, eller nytt ei lenkje.", "$jsonTooBig": "Profil-JSON er over 1MB", @@ -222,6 +223,13 @@ "$filters": "Filter", "$filters_lists": "Lister", "$filters_year": "År", +"$filters_genres": "Sjanger", +"$filters_search": "Søk", +"$filters_season": "Sesong", +"$filters_format": "Format", +"$filters_airingStatus": "Status", +"$filters_publishingStatus": "Status", +"$filters_countryOfOrigin": "Land", "$markdown_help_links_header": "Lenkjer", "$markdown_help_imageSize": "Endra storleik:", "$markdown_help_imageUpload": "(du må lasta opp biletet ein anna stad for å få ein link)", @@ -230,6 +238,7 @@ "$setting_notifications": "Betre meldingssystem", "$adjustColours_title": "Fargejustering", "$settings_import": "Importer innstillingar:", +"$settings_import_successful": "Innstillingane vart importert!", "$setting_moreStats": "Legg til ei ekstra fane på statistikksida", "$setting_compare": "Betre listesamanlikning", "$compare_listStatus": "kva status som helst\nklikk for å endra", @@ -247,6 +256,7 @@ "$dblclickZoom_description": "Dobbelklikk ein post for å zooma", "$relations_shared_following": "De fylgjer begge", "$relations_shared_followers": "Fylgjer dykk begge", +"$relations_mutuals": "Gjensidig", "$compare_individualRatings": "Eigen skala:", "$notification_likeActivity_1person_1activity": " likte posten din.", "$notification_likeActivity_1person_Mactivity": " likte postane dine.", @@ -453,6 +463,10 @@ "$setting_CSSbannerShadow": "Fjern skuggen under bakgrunnsbileta", "$settings_button_export": "Last ned innstillingane", "$export_JSON": "Last ned JSON", +"$error_JSONparsing": "Feil ved lesing av JSON", +"$viewAdvancedScores_description": "Vis utvida vurderingar", +"$noAutoplay_description": "Ikkje spel av videoar automatisk", +"$hollowHearts_description": "Gjer hjarta hole om du ikkje har likt dei [av Reina]", "$settings_export_description": "Kjekt å ha ein tryggingskopi. Viss du slettar cache/cookies kan Automailinnstillingane også bli borte", "$error_connection": "Koplingsfeil", "$hideGlobalFeed_description": "Skjul globalstraumen", @@ -466,7 +480,8 @@ "$noResults": "Ingen treff", "$query_firstActivity": "Fyrste post", "$query_autorecs": "Autotilråingar", -"$query_autorecs_collecting": "Skaffar listedata...", +"$query_reviews": "Omtalar", +"$query_autorecs_collecting": "Hentar listedata...", "$query_autorecs_processing": "Reknar...", "$staff_animeRoles": "Animeroller", "$staff_mangaRoles": "Mangaroller", @@ -482,7 +497,8 @@ "$characterBrowseTooltip": "Favorittar", "$make3x3": "Lag 3x3", "$make3x3_title": "Klikk knappen, og så 9 ting på lista", -"$myThreads_link": "Mine Trådar", +"$myThreads_description": "Lag ein 'Mine trådar' link i forumet", +"$myThreads_link": "Mine trådar", "$forumHeading_recentlyActive": "Aktive Trådar", "$forumHeading_newThreads": "Nye Trådar", "$forumHeading_releaseDiscussion": "Episodediskusjonar", @@ -570,6 +586,7 @@ "$editor_customLists": "Eigne Lister", "$editor_format": "Format", "$editor_country": "Country", +"$dataSet_airing": "På lufta", "$dataSet_chapters": "Kapittel", "$dataSet_volumes": "Band", "$dataSet_format": "Format", @@ -597,6 +614,20 @@ "$searchLanding_nextSeason": "Neste sesong", "$searchLanding_popular": "Populært", "$searchLanding_topAnime": "Topp 100", +"$genre_action": "Action", +"$genre_adventure": "Eventyr", +"$genre_comedy": "Komedie", +"$genre_drama": "Drama", +"$genre_ecchi": "Ecchi", +"$genre_fantasy": "Fantasy", +"$genre_horror": "Skrekk", +"$genre_mahouShoujo": "Mahou Shoujo", +"$genre_mecha": "Mecha", +"$genre_music": "Musikk", +"$genre_mystery": "Mysterie", +"$genre_psychological": "Psykologisk", +"$genre_romance": "Romantisk", +"$genre_hentai": "Hentai", "$role_Original Creator": "Skapar", "$role_Creator": "Skapar", @@ -613,6 +644,7 @@ "$role_Opening Animation": "Opningsteiknar", "$role_Art": "Teiknar", "$role_Illustration": "Teikningar", +"$role_Cover Illustration": "Framside", "$role_End Card": "Sluttkort", "$role_End card": "Sluttkort", "$role_Casting": "Rollebesetting", diff --git a/src/data/legacyModuleDescriptions.json b/src/data/legacyModuleDescriptions.json index 34fb476e..c1db547a 100644 --- a/src/data/legacyModuleDescriptions.json +++ b/src/data/legacyModuleDescriptions.json @@ -267,6 +267,6 @@ "type": "select", "importance": 100, "categories": ["Script"], - "values": ["English","Italiano","Français","Português","Español","Norsk","日本語","Türkçe","Deutsch","Åarjelsaemie","Svenska","English (US)","English (CA)","English (short)","$raw_keys"] + "values": ["English","Italiano","Français","Norsk","Português","Español","日本語","Türkçe","Deutsch","Åarjelsaemie","Svenska","English (US)","English (CA)","English (short)","$raw_keys"] } ] diff --git a/src/data/review_scripts/review.html b/src/data/review_scripts/review.html index efdf6891..56aad727 100755 --- a/src/data/review_scripts/review.html +++ b/src/data/review_scripts/review.html @@ -177,9 +177,10 @@ }) }) - top150 = listi.sort((a,b)=>wilson(a.rating,a.ratingAmount).left - wilson(b.rating,b.ratingAmount).left).slice(0,150); + top150 = listi.sort((b,a)=>wilson(a.rating,a.ratingAmount).left - wilson(b.rating,b.ratingAmount).left).slice(0,150); + bottom150 = listi.sort((a,b)=>wilson(a.rating,a.ratingAmount).right - wilson(b.rating,b.ratingAmount).right).slice(0,150); - list.forEach(rev => { + listi.forEach(rev => { ratings += rev.ratingAmount; positiveRatings += rev.rating; if(rev.user){ diff --git a/src/data/sequels.json b/src/data/sequels.json index ec06346c..0a0d6bb6 100644 --- a/src/data/sequels.json +++ b/src/data/sequels.json @@ -1 +1 @@ -[20606,13663,110229,100878,16934,12477,103275,21416,87486,18753,126659,21460,14829,21281,98580,116005,15037,1840,9617,107068,21520,21258,114446,112625,20880,20494,10080,100815,6033,20958,21856,99147,100166,110277,1735,104578,104276,20594,2759,16870,21745,97767,116752,125367,111790,131942,20652,225,3784,20996,100643,20849,21400,114043,19163,21399,8525,11577,114194,21262,99749,20791,20671,18397,18247,15417,21110,98292,20021,112323,116741,104580,98384,97889,98762,15039,108623,3712,20801,11319,5,101432,6707,99425,117448,13659,21180,97996,111734,21390,20614,100049,16049,5341,19111,100185,106509,21377,10790,125368,16706,8516,20853,130592,108307,9181,552,20595,104459,98572,21887,116338,10521,124410,19489,20694,4280,21339,21733,14397,20751,528,20448,97672,16904,10067,4901,20995,21574,10863,21364,21394,21718,109190,20519,14967,9969,8937,11981,97886,3785,7593,17074,20626,103223,21861,100773,114308,111762,16894,18115,109963,20876,7791,10719,20745,98034,108553,21385,112124,19703,114862,135136,12365,142984,20572,120209,9515,3783,13271,21005,4282,131518,12729,97730,100178,100876,113538,108511,4181,97938,99255,119661,129874,98437,813,21679,104157,100723,101167,102351,32,98436,97668,20992,112151,101338,112641,20850,21698,117193,108725,21699,2904,21170,21128,108632,20474,99539,100240,106625,113936,131681,21450,100182,21518,102883,20698,20799,19603,114236,11741,142329,99540,101302,98635,100722,1519,131586,6675,21719,20879,16762,21676,9656,1889,97880,108631,3786,97888,21006,99634,4214,20963,20913,131773,117533,21560,21769,10030,20514,110733,13667,104462,9062,124858,104463,3782,16001,14837,101166,110178,21584,21799,104217,6213,111321,107717,20725,7311,103047,20513,245,100298,98478,124194,21127,102976,101474,20792,11597,108759,108928,108489,109261,20993,127720,15451,21403,21175,18671,116742,136430,31,11737,131520,21104,100784,21268,20819,430,2787,21184,13469,2472,5205,113359,5204,9982,21558,187,21565,119941,97983,874,21379,20889,18,6372,109819,1565,2889,109403,8247,138565,21710,108522,127366,130588,1119,138424,21088,8407,98702,111322,133844,106918,2924,4752,11553,15335,10589,442,20778,102977,21000,12403,11979,21650,97637,146984,125124,103276,101410,93,13939,20752,90,124395,112153,124195,104382,102997,900,101924,10049,10418,1117,20766,936,114745,99734,20638,19291,116674,21335,140439,4896,6007,3901,127371,105143,801,97918,108891,73,105893,104243,20680,10681,98884,108266,112296,21852,1239,21780,962,895,464,112803,372,105749,6793,101812,111048,97891,11123,134710,18295,15201,21871,18661,10073,99470,10378,1121,107203,16444,130183,4026,139,986,1002,16866,98524,20625,15437,10033,6178,6127,15793,5962,20714,1313,21103,97645,9135,21483,2581,6954,13331,20884,110355,114195,8408,21138,2144,100523,129188,21610,18195,11235,21384,104175,104458,101813,4106,459,100451,3927,135865,20762,846,395,15879,15199,21451,98885,110857,14175,905,14807,105200,376,141534,21691,21757,104461,468,21064,97875,21126,136804,20526,145545,129196,21348,17741,145139,11743,20566,118399,19363,4835,3297,108945,5781,20869,132193,101102,100684,9074,901,21322,21748,97643,15117,21586,108581,114087,19951,8246,17641,10020,101925,5300,122349,100675,100749,12859,21855,10271,99714,6811,6862,11665,20741,10379,4437,21815,21778,12893,4789,120150,139498,100353,102436,21356,97881,740,104174,10119,21749,103631,3228,122808,898,97757,18441,21629,14027,21424,131149,1120,9471,4472,116867,18001,1430,6421,21077,10209,317,532,101344,18617,131680,145064,1526,19613,10794,21862,11266,3972,20769,21660,21746,100855,97917,21874,21791,113693,20719,7338,116605,21191,20767,20467,6773,139648,12049,13357,20629,12115,139630,5258,4565,4155,21261,3652,20635,482,20547,21425,1564,15699,186,102882,20670,6325,12113,20666,19647,20728,113950,98502,127688,21186,21247,21046,101213,15059,20907,9366,6637,903,112125,16005,14527,119113,906,4182,21573,97634,21085,102167,543,21008,15565,2847,904,15197,108040,138,3572,9107,899,1132,101426,101343,10805,12231,1122,902,20723,20802,21579,896,9790,20609,102498,101992,1594,13055,137,897,97665,98497,6377,113917,98779,99394,20692,111852,4814,21241,20986,894,126357,104990,264,20654,1686,101215,18857,5277,98656,98349,20768,20711,1118,5667,21034,9734,20845,2994,101206,109492,101965,11783,20736,21376,20497,7858,107622,104307,996,10298,265,4477,21010,20826,13261,20659,21640,2685,20761,20633,156,6951,11209,2107,1095,109562,98060,6945,20775,98554,558,20554,859,452,761,461,21068,21765,21596,4872,65,8740,119947,450,10464,20856,98874,5262,21777,94,21489,1142,136192,21244,130389,121176,100465,13403,104198,132806,9047,21178,104460,126819,12783,7695,371,2131,17259,15811,7902,19211,100181,17873,100532,3226,1015,7748,18097,86,110738,136484,4866,20551,133898,14653,4726,21294,101313,12671,13709,4918,136381,127619,97619,98663,98565,18619,18523,133845,20481,449,100978,133175,3225,20454,2921,100268,465,139092,21678,15323,16868,6884,19109,15487,106494,21389,12187,97985,1074,123330,110445,101161,14511,11739,19023,100133,1894,21091,21407,2899,128643,100965,834,21831,21265,16385,20900,21235,21673,98240,12685,10638,136436,101595,6408,21772,650,131880,130550,969,21672,10083,104170,4535,20697,14893,21695,7017,135866,20895,16273,87489,987,463,20478,8577,99938,21415,451,13587,9063,5391,11359,6624,114473,99148,107069,10076,107294,126356,113811,3848,98575,1842,9917,142876,908,100659,21053,5028,107138,9130,9488,21255,15195,139449,102969,143080,139518,101016,21891,8023,98379,126661,141182,21331,97734,8440,104368,121467,103049,9712,21312,551,113290,20644,146065,779,100294,5955,87,780,781,1669,100305,1915,20660,101123,19123,136880,98496,2563,7082,100744,19191,531,12503,474,209,21266,891,9065,106495,106169,113050,101501,100518,20669,20945,3466,5152,97642,10507,12471,20835,121034,127368,133007,10447,21313,762,12979,85,20737,1566,21588,20560,20777,114622,10647,14189,460,98873,594,141249,20571,113924,4970,5034,101634,20485,6023,196,142853,20960,487,21094,20862,5337,21490,7367,108942,1090,10370,18121,9117,17115,120257,190,401,98402,1365,6288,21007,19391,21599,2508,21585,20824,8410,21813,21458,124223,98495,97769,127363,77,1363,15927,873,1956,102949,3759,1364,10075,102449,892,12069,8514,7655,2398,6864,2006,9203,822,139095,9201,4015,15609,19669,126830,3016,21879,10622,116147,20449,100561,7870,1023,20686,107208,20739,5279,4163,12673,98662,21487,18045,9724,9355,117496,298,13093,4196,21057,21540,16051,103110,21753,12753,1505,20515,97951,143085,6791,1719,8197,15359,1253,17875,131264,12929,100306,20938,880,101918,20882,4447,17437,20833,138425,20658,4938,8038,20978,98866,9963,20567,6634,6165,9999,4037,19697,535,10740,106154,7044,12255,1527,3231,102090,4134,20866,16239,20444,19193,107202,18055,1953,2248,9252,99302,110413,84,21325,8311,2471,20524,98876,7720,6633,21485,98703,104199,12669,20733,3328,20760,21649,132545,105401,12117,100269,10713,135102,10336,7337,107506,21473,2171,107263,10659,2962,130590,102822,18745,98438,102832,13263,16123,104979,21043,139093,20662,98629,9465,3352,1813,5460,146066,21786,21209,1257,137819,100813,1367,10017,133891,21658,21738,143866,12419,100780,17341,21208,21638,127550,99569,11889,7062,664,9958,101830,107351,139825,97936,136263,13767,2273,20546,21230,21501,4039,21744,5526,6489,997,10643,18713,13859,1836,101036,104278,20844,12053,101100,10582,98860,1397,21651,20962,656,21414,102508,10714,10330,5228,102353,113692,106223,2201,9136,6336,16694,4192,21328,117074,127400,21853,21327,21279,3091,21120,10686,21098,10491,128740,20487,20453,98878,103277,105662,140596,20796,20687,98033,21462,9925,98856,100644,2175,113108,105596,102622,114841,5051,129549,4454,5310,4939,101126,21729,5162,21155,100957,16680,143337,20531,101844,21798,10232,10604,99476,20780,107704,21404,462,1709,20854,116756,21836,15377,146722,18851,16099,101574,21500,6381,21214,17389,3713,6572,126529,141208,81,21305,111729,16700,21248,2397,19511,14093,19319,107346,98574,5764,117002,12487,17535,12711,112686,19671,97988,98778,8479,142838,11113,21300,20906,130713,101633,3604,20472,10092,1614,104745,100283,1091,6467,104530,20926,16982,99363,8985,110088,6064,17879,20871,10739,19195,1366,118743,4793,1506,9618,15729,1092,101083,517,10536,10249,9510,14941,1172,16468,1372,11239,12665,21114,104200,7580,17643,21136,20423,14645,191,98338,14735,21252,10172,107764,3515,18849,10715,111145,6115,98473,108260,11813,20738,1668,127595,20451,8624,21476,140999,17409,2386,7334,136145,15881,17725,15489,10717,1425,101632,120700,8465,87526,6676,20601,10624,105595,2385,103588,15591,21470,20820,6291,104434,10716,1110,11859,2363,100227,21646,108939,7739,394,112324,21358,13267,9735,17637,100811,101471,20035,87498,5521,139359,615,352,10737,15611,1914,98814,7375,107905,109603,9362,20452,11001,2035,2969,15959,98344,2595,1078,5306,2488,104749,112177,155,2355,20695,9202,10469,21740,448,133124,8918,1356,10302,3033,564,4130,120851,2020,8190,20734,618,113470,7897,101098,20456,1471,109085,1238,110090,117085,20750,4811,104326,110640,6479,21681,123901,97859,125351,9745,100469,11237,10444,4792,1237,4053,102346,21113,4028,11879,20685,1847,108714,6984,101816,21338,21730,100729,596,139435,21864,9581,17205,10808,114744,113024,103209,15617,137804,101909,142343,821,98238,136344,21014,109731,20990,1240,142411,97667,21260,99730,111305,5947,102836,3323,963,21304,2356,6112,97860,21426,17080,3965,3931,21011,1747,351,13409,4483,3665,277,112302,107352,4760,3446,304,6927,2424,104437,7651,21492,9888,136226,11339,124115,2752,97910,138056,108941,1888,101085,883,98566,644,97765,291,99624,107913,2680,21505,98536,98520,396,114564,98704,97890,20683,97853,2490,89,134413,98222,18429,114981,181,6896,21513,995,1531,3165,15651,120046,124612,299,8348,1921,108267,20863,98847,6380,18099,101743,1563,141852,98239,107313,102839,2623,11341,1657,101499,98642,2683,102349,6187,1007,136064,117086,106896,14575,107342,21687,102499,87505,882,21880,4772,5772,4195,115800,12017,20928,886,100852,127976,14835,136829,12281,132467,46,120892,20650,192,20573,21122,4596,8302,976,9032,4705,122292,98833,104077,1094,140337,19799,110028,16241,11917,21357,21301,5163,135939,21079,104071,9347,3627,120343,9563,444,102348,102347,21253,21115,144932,98868,6050,100180,3593,15649,8422,4765,21774,20861,8532,128207,124756,98525,87480,1335,1487,21332,116676,21076,103237,10479,3031,108735,104286,10431,134623,20765,11161,100537,10380,101999,108548,98576,8728,9441,2520,21896,5713,98978,103712,101554,7222,1426,20731,21381,110318,5233,3918,20221,104378,11441,130,13145,21129,15963,1929,102350,21467,5244,2448,108062,11385,17391,20852,21534,20578,3269,1472,102946,117913,8456,21892,397,21886,7135,1350,19251,113653,540,12001,21413,8687,120180,15989,131866,3032,127721,137735,13561,17345,14267,5029,21570,6024,137337,21775,15411,15951,109418,20846,443,20764,87488,10834,92,124132,138700,103713,6768,5978,20598,103119,106287,10928,98186,101337,91,103555,141351,141902,3791,102631,807,136080,1066,100653,21666,1525,13377,14827,12449,111500,3956,21893,143271,15633,10153,15731,21293,21289,106206,112033,102093,12505,2213,620,97670,17739,5458,6795,125261,20823,117556,16395,123769,146953,12879,146206,19159,137309,15807,8995,6714,104371,21387,17947,20916,9544,119258,20921,118125,8609,9754,99614,20706,8668,1732,1008,17273,2108,1916,11615,2512,541,145813,104324,1432,10477,869,866,2905,13119,2298,2928,21245,106499,20564,3354,117197,1011,115217,21633,8230,281,21276,6443,1241,10845,98504,141400,20651,3485,112031,21508,792,107692,1262,2499,146637,101046,2126,102608,1419,122575,1825,124032,119812,21107,107984,3674,122041,123381,6882,1255,1289,219,101596,140350,651,87475,1861,1368,7304,102716,100979,143082,2498,1260,20181,100652,21324,4197,99196,11793,102503,5717,20450,3221,20805,1764,14117,121962,6712,17843,142684,108944,4080,21003,21812,21257,9988,113476,2123,106572,122671,107298,102978,7468,760,98622,3349,815,5529,102033,20848,4232,3887,21030,7568,98433,21154,1609,6964,3692,2117,87506,2842,2229,129759,694,20732,11255,1707,3090,140642,1215,1729,21477,4886,20689,6151,21231,3750,12067,8599,128306,124394,1290,1401,112640,12823,97820,13231,20883,146921,100719,98470,21287,21790,2048,1006,471,100186,1144,117408,119964,110228,6783,14875,98106,12447,1835,1376,6330,143846,7782,107252,102609,14049,20642,981,103254,101169,104213,99547,20915,116944,1917,2768,97919,4795,2198,98289,8057,9611,10933,115567,10350,146743,20904,98582,98452,98471,99732,99995,3449,21409,17717,10920,122497,114052,7322,9023,19255,2597,121681,6385,6591,919,106568,16678,98142,130558,10917,136303,2237,98516,2873,9288,1969,101339,98897,18413,6198,21194,12455,115927,104411,1348,132526,125308,98209,15785,101696,1418,10122,141352,110686,609,2497,146646,630,83,101115,1920,21592,6704,380,1357,20870,2515,21806,99742,6399,105391,20941,2589,2971,21139,454,131,21554,102293,6877,20878,116968,113023,20851,14627,2392,10219,5196,115566,524,113906,124136,102000,98206,21817,10999,126425,110786,97933,10934,9396,1369,4715,21636,1143,1435,1278,1473,108758,19029,143086,6287,20039,10497,143327,1258,2937,3861,97818,868,126678,13201,1146,17267,2513,525,8756,9591,1967,21135,114249,867,98220,100768,104102,107348,2761,21468,21564,21465,21814,9744,98420,102309,4052,21820,146954,124641,10924,3076,21839,6609,20989,418,98225,398,100716,4794,4874,110382,1211,222,87507,1619,1003,645,1817,14173,1256,8098,107350,138103,7875,2125,14817,20834,6438,2514,1398,112472,99646,115651,704,101216,8619,1830,1521,5333,641,1018,141212,101104,20498,1416,114233,10916,20847,20640,3174,122631,1654,100519,1968,5751,13727,10703,110275,6234,2606,492,100280,6344,5462,117764,1985,21442,99731,864,99197,97915,2265,102098,101097,381,133904,1302,20747,13931,6231,103717,7041,21405,1670,2450,5097,5348,2214,103543,3266,21388,2132,13839,5493,101267,100966,21822,20794,1796,21285,10923,20784,5725,9865,1504,8507,5256,101875,7740,17855,21430,104712,98599,120534,111082,21317,1382,101928,1631,3288,12725,2670,110173,98056,142914,124,8217,1433,106895,21590,17351,108355,4205,104291,19845,124896,98621,712,20998,428,1187,8331,3727,16638,139451,5419,1225,21345,110265,1761,97989,139466,1342,5096,105387,6581,1101,2454,21438,20896,9124,1400,138260,1399,105655,110359,9435,12863,1439,21789,3392,504,1349,13757,6275,87476,21374,7654,119696,117532,10628,146472,102573,122238,915,10810,1249,97905,21280,21664,102600,1930,21784,8317,111730,20579,13245,10573,3057,112166,1437,107447,1749,1910,18053,112900,19099,3745,20187,99557,5347,1438,7248,4664,1231,7463,4662,121043,814,98556,18881,8438,13799,7016,10804,102599,3447,4320,1152,1135,117765,2580,7474,2673,5291,128563,10534,6590,1415,13731,8231,20570,10870,4502,99912,125640,3626,3419,1190,108,20803,135108,131182,20902,113348,102933,10098,13855,13837,4910,15431,2109,114926,10531,102001,8358,21299,21286,1147,938,1286,12065,103870,261,429,17419,4650,2393,7270,121664,2269,2098,678,135171,117756,8362,631,97955,135255,114842,118126,2013,4200,2014,1931,20816,109002,99733,98107,21307,21770,16059,1750,98697,21251,7305,97856,769,97621,1413,3401,105244,7066,4082,1417,146638,1994,8245,132420,110253,114417,8359,1191,2174,100184,116610,2615,20924,1343,14077,11663,8133,2017,104396,1922,20948,3000,1429,5332,21821,124196,108853,106690,21383,113187,12221,6154,1168,20859,5753,99059,6379,106506,11777,1988,98548,5845,1924,102401,119042,20828,7045,1923,1421,102431,21796,98546,9002,15925,5199,673,254,2157,129608,2655,653,3429,3027,102572,21591,21314,685,131923,9979,2458,1475,10581,8490,1424,3051,8894,6705,100769,102464,21401,1803,1434,6460,6209,2661,2203,1252,1474,5032,1925,122585,101817,109153,1414,21620,21437,2675,1436,18525,9785,1420,21759,21750,99817,1422,98069,15307,20522,844,1226,7113,1423,1410,128947,102036,14957,8022,97631,21429,2523,555,3219,129610,17585,4469,4312,2725,20836,101908,21737,20914,99883,104257,2110,1800,6794,112732,20909,8097,5270,711,20636,142481,9342,6930,20267,10731,9220,4549,493,13619,6958,1651,3468,652,21870,21697,19889,113971,5305,1046,139754,2294,9241,2695,370,114030,1841,5844,1489,7774,107110,105962,10821,1081,1918,18531,20810,115107,11019,835,19945,1149,99083,16442,11053,5658,112455,20535,128,6152,99084,797,139752,17573,3469,109003,11009,2920,6582,2947,1718,2391,99839,87538,7471,921,636,20985,706,109260,6169,98332,99888,2743,176,5967,1919,1476,137726,109005,7745,3019,21119,5072,98542,115914,137734,115006,4703,115846,1427,9708,113308,15177,8705,4124,139274,6527,107943,109670,16614,20999,17357,115,109911,101917,9706,5351,2676,112658,20988,3954,98759,15219,3493,10390,8369,2664,21867,137612,97854,102859,21794,7060,2954,121035,10949,119350,9311,109191,559,138717,118,2011,10947,10483,104188,10945,4166,115916,20936,14693,10948,1856,12579,9040,313,101996,109004,102571,655,20549,1296,2665,15839,6736,14889,1880,98971,21797,120755,107199,1652,115918,119806,9547,2671,21121,262,19101,10359,8709,4508,2948,116786,9353,9035,110734,142794,104160,1042,5045,99741,10886,4851,16574,12961,1020,2734,104959,98746,1104,6988,21598,5712,5968,102974,100980,21323,9487,1645,11715,142219,21752,21157,20868,484,6555,119960,123803,16644,6130,21004,17699,2407,1720,104211,19645,12651,1578,8909,920,112019,911,11635,7744,98760,114561,7550,20141,1746,106606,13137,1996,21642,12239,11069,14583,9170,112258,2677,1428,1128,2760,255,21525,18231,20776,2470,2459,2302,101370,21137,128827,12121,98761,98547,21207,10351,1864,102096,21504,115671,5369,111306,21474,21767,140002,114304,6041,138511,20391,3602,1991,143203,6567,146473,15291,3024,107875,21125,19431,102860,446,135645,4646,3462,100667,10766,6217,2656,12499,4421,4078,12709,20893,9393,1336,7549,2922,2267,102601,11853,4450,9849,608,16928,7759,3618,12131,134286,1166,10549,1481,21559,17727,123074,2322,3744,1794,132209,100981,100484,100262,98581,141907,104214,102603,99391,108973,10832,3898,3964,1798,2217,2067,1501,1112,103022,17655,5019,99568,2648,112685,6299,101372,111144,98997,2669,123464,100225,2118,1298,17113,4804,4540,1676,1297,8062,10297,3256,1495,115656,128890,4712,2684,98744,97937,21478,20929,16508,3963,102602,119080,103311,8491,6959,2654,6153,15783,2713,689,8367,6885,10116,101101,16936,2408,2667,11773,8026,107141,10180,9005,1111,99478,2870,21890,143150,3991,1277,808,102979,2666,98891,98229,111909,2176,116962,3406,2168,1957,12727,12347,6901,2264,2090,113669,13937,101369,1540,100071,5996,3072,110788,8648,125909,21169,3071,314,102483,98843,999,129348,4114,993,113990,20890,1389,9167,140005,135864,21436,8365,1024,10825,5549,3738,2929,123490,8364,574,2119,2121,100176,9786,17497,2868,129350,97610,7540,378,2620,99085,6149,1123,106493,103923,19297,113864,102463,10280,121065,127163,1150,21491,4162,295,2706,1377,10301,8360,927,102450,1795,925,2111,3686,4486,16646,2304,136137,2062,1756,21337,10361,4353,1636,140187,116015,21229,7264,5415,1514,104187,21427,928,12921,2558,116923,101435,142016,123476,8635,6418,10050,8837,2784,100291,130846,100328,8361,2120,1539,858,106541,21232,4173,129946,4027,1964,8366,10679,87438,129351,13679,684,117758,10420,2998,17659,100570,102305,332,7857,2061,1874,127863,98517,3501,3222,8287,1755,1493,8250,1388,5890,5585,98846,8423,102005,12223,5723,20897,12963,6496,4209,102077,10862,7144,144990,116979,21859,3205,21446,114448,9309,4361,2303,16738,1648,2010,99841,9716,116964,13073,111955,13223,6883,121026,18149,139386,3381,1769,2668,112308,107993,20798,12343,4667,132634,5290,3067,137740,3112,16319,129349,10796,103809,20959,2583,1754,17917,2420,142826,11699,16532,7781,1344,103847,21528,8368,140175,114442,3223,131047,121528,2305,1234,7712,5031,3069,9346,104922,6749,139806,117395,1757,103023,99718,2672,108810,3008,2333,145478,1659,101546,9673,5859,129347,20925,2659,2658,557,18419,5691,145740,100527,6713,2511,2657,131770,10592,5832,2662,2586,98577,19207,10775,8908,13559,2733,14935,2429,139409,556,87483,21354,20500,10936,3234,2325,126649,7083,4443,1752,16726,362,87482,13067,5710,4416,771,10905,2359,6657,2674,87533,20822,7453,112010,2584,143202,21523,136512,113254,734,6999,114424,20917,2306,139273,8950,1882,104748,142985,8754,98096,2122,1635,1235,18781,14685,108625,1886,8800,6607,108767,2696,15979,8363,104557,111931,21652,7882,3111,21808,112612,106456,134168,12991,5165,5397,5288,3410,2474,8289,1736,102429,21849,115955,2678,21863,18449,7430,6492,2308,6891,104739,2717,11569,1014,100289,18639,10048,8134,3868,98094,113221,110641,2521,15547,146321,144336,101555,14047,2172,115105,2063,1460,105245,10276,2911,2765,3483,105663,7179,8373,100072,146140,100290,99945,21550,11911,2292,1632,8839,1999,132317,116415,130777,5164,7108,3157,10824,6312,1671,110219,9630,7861,312,2999,108041,1831,1939,122013,7363,144803,10693,4827,127042,2518,102525,2206,115519,115879,2009,1789,114334,9348,1381,97589,1843,10689,7329,140085,12225,3037,101385,2405,107755,5056,132055,1035,138675,562,21739,10666,3292,2212,1071,105616,104854,105964,104339,9494,5250,124230,103948,110578,122639,21134,130253,2008,4071,126275,106674,99663,5715,1392,423,139348,6199,2307,660,5372,106320,7579,5644,1753,887,3138,131048,6792,5539,2272,14913,2709,129123,104436,4476,12745,115082,126354,12715,4406,2777,1758,98970,9287,8518,131475,5584,2859,2276,2728,20894,4213,3511,1768,1273,6245,4056,3281,126783,123078,18549,7308,4926,107881,101876,21551,20477,14949,9100,127045,103690,654,125440,21433,13127,2181,126169,10732,707,108936,21203,2745,102628,4816,2064,5520,5324,2087,130190,20465,5037,14007,4075,110465,134081,20942,126186,104383,3729,139813,98092,124600,13143,21552,102462,10710,9127,1395,20937,5653,143766,9121,5147,130188,123885,686,2209,112450,10513,924,129595,108972,108331,2065,102165,13969,7666,107256,8208,5938,2492,109097,98521,123612,115654,102658,5213,112152,137761,110787,17787,1393,126294,2100,422,1394,5308,125783,110332,20528,7953,107188,110732,10471,4031,3854,140376,97916,100720,6374,102389,18391,101913,126316,113472,98791,1411,216,7691,3248,7436,112480,10286,5661,146543,132324,2046,128344,114721,7254,109484,102617,7004,5854,13917,4640,5501,11299,6437,8079,2802,19447,1266,9548,217,104006,3245,109280,99716,3004,2299,11685,7366,9087,6511,1771,6227,5296,2910,21589,6068,2399,109413,142298,138864,107862,10036,796,3182,4383,3671,3153,12603,4070,102743,2378,102677,15095,15015,5395,132014,8042,683,2344,146503,103392,101550,705,11511,122008,10324,13993,1268,215,130305,109482,8538,1113,126662,98972,2301,21562,7364,2801,98964,10526,4371,117572,98851,5484,4014,137799,2535,101697,8546,2256,123405,10527,2682,98378,10528,8228,4855,3185,2082,12481,2139,2114,132000,103707,6328,4154,146488,592,15769,8108,1834,839,2045,21368,4208,114814,6992,3203,140788,110131,19619,8109,2343,2289,10201,848,1584,7330,8964,1265,960,106159,100148,11017,7761,98421,15819,2493,97952,107255,12591,2778,108339,19825,6899,5043,2360,13927,5266,4444,399,101094,3864,1898,3227,116330,20795,968,113722,4061,99661,126664,131045,104105,101976,8972,102166,19977,19397,2613,19877,16347,765,125268,9098,141802,134761,21834,21036,16119,9549,3818,98090,144451,7536,109931,6994,2565,15159,1274,103924,21603,17707,2416,107340,102821,3259,1503,137729,1159,4418,142136,98785,5466,15093,115011,111954,108729,142173,116138,1267,146975,21635,4566,4242,116137,102718,119665,101877,12965,121567,111129,17379,106158,115143,13681,119938,5036,103050,126347,7290,14059,119548,15505,129591,102155,101789,10520,6038,367,9568,1937,1774,6375,2901,983,121177,9091,4202,2837,17147,9290,6331,111312,10735,137746,107175,104868,2027,9243,4068,146501,128737,127331,9078,8949,4298,101985,101425,10306,10104,7491,6028,118034,121508,111121,108986,3432,130362,2345,1741,100658,98093,13983,3752,1673,21024,8966,116793,108971,116053,5828,5246,117014,108730,108549,3849,104082,98208,21628,115238,112008,104104,4244,1905,120272,5865,988,102576,2380,110954,2840,100339,4946,2851,114919,214,113139,7667,4856,99715,2644,2442,113463,113273,7793,105873,101878,2342,1552,5203,3232,2707,126360,6939,3273,112452,12483,10524,10342,113419,14947,122672,107189,8409,129839,107623,4561,2601,120211,104385,20624,103333,9200,5237,3945,2916,132016,3529,120300,130033,10346,5640,4695,133146,131096,116320,9486,8547,1001,8550,7333,6230,3264,8815,5449,5006,137310,117034,3569,2187,2086,122652,114943,102168,21022,9244,7157,3587,135177,3547,2376,4489,108983,122205,18729,126888,115003,9163,8548,7664,7158,115931,115839,21023,7816,5629,15993,104957,8965,115907,139986,124472,122372,11268,3190,98383,16702,139212,121750,2085,12663,10743,9967,2080,1513,125153,9325,2375,1907,114679,109485,5411,7571,18669,8553,145210,12881,9773,3370,104292,10319,9340,5303,130787,114562,109415,9264,7294,5136,21344,4534,3726,8011,110346,102428,101879,21021,11919,8963,8145,4803,136110,8146,7775,4842,3762,2700,129202,1903,137742,102388,4586,8919,17963,2906,132903,132615,4129,98553,2537,137308,118630,99704,2689,129896,2501,134283,7427,6095,10443,9053,1745,141329,130445,113242,102619,18109,122689,2334,117325,17223,6277,2599,1872,124341,104027,16912,10751,3669,115794,99582,20563,12689,12485,110330,21267,4126,4967,3496,132893,114196,5344,4807,121663,118640,116789,116246,21847,18637,8156,8152,138351,126832,18061,134107,122670,6577,5956,122654,108332,119403,112453,6693,114557,102934,101498,17961,2480,1790,135381,112468,9344,7807,5289,142963,101880,12279,3768,117396,101881,104386,20821,9385,12439,11505,10028,6889,126350,122206,98751,20788,9013,4841,98297,145709,12351,3290,14367,11835,4509,2956,4729,110286,5396,3863,137296,98224,19959,12441,4400,3936,2208,142541,7488,2485,7446,5398,17989,11841,7164,8157,139588,117398,18375,112534,9972,2073,6107,104943,8431,4614,123056,117403,12569,2258,131239,9858,3884,2339,104328,5475,8443,3690,19271,11101,3274,2600,104468,18003,142216,108811,18063,3764,8678,135178,104388,10313,137728,133892,124960,6062,3280,126833,15865,9796,19879,6481,4190,12061,9857,9165,2643,126909,9365,8842,4848,2240,2192,130249,20235,15905,15875,6684,2464,137757,105049,18795,16131,9795,6434,10820,10373,9390,17165,8154,8153,19843,16393,119837,104067,9164,8252,4616,137738,15607,10199,7967,5472,101411,8314,5492,1851,136146,98586,9166,123778,117411,102664,102101,19755,143391,115908,110643,108309,8848,122675,118040,116150,13233,8227,7697,1850,133514,1892,21210,122207,18533,8155,2741,18425,9389,8707,136138,130584,112471,21227,20207,13433,7175,120055,104148,101431,143201,15937,8442,7626,130323,126908,8899,139179,125931,122208,138522,5190,131730,116805,112470,16371,10802,10525,9862,9376,9282,8493,8139,3028,13967,4388,3276,2710,136638,110331,16728,10202,8891,146310,104124,101523,139213,112156,20857,10625,8900,120321,108743,142549,122678,112449,16486,10114,9759,132321,103323,137097,115178,113180,9445,6518,138065,104469,98638,20855,14621,9403,10908,9528,143393,102941,17167,13431,5515,114111,102102,136517,13965,6297,113138,4682,3275,104932,104435,6482,5773,5240,107872,107859,102942,140645,109800,15815,7698,7601,3277,138716,137106,17237,11791,8357,3278,3279,2738,19687,136461,122062,117019,110245,109801,137739,20976,8956,118168,19337,14519,12971,9880,121433,2028,125822,21572,19781,19479,16510,134045,121514,16373,10409,5587,5564,3659,121998,106160,100655,18567,8356,7461,136666,130354,8524,126885,5571,126835,104553,21408,17159,109940,20175,13449,106162,9274,125514,113907,113689,21065,18241,17002,129540,15067,13207,109343,12563,8196,4905,6072,146664,114760,102562,2173,143485,5783,18815,15913,109340,104510,107627,17441,6133,119774,17445,14213,144687,130447,114560,106161,3769,9522,122690,121679,16377,9973,126757,17447,9416,130527,112006,17359,11959,9387,136641,116965,18199,13465,102057,145994,124435,109276,14067,10335,118637,115758,17443,8304,119939,140113,141878,120519,18937,141763,136139,112126,7980,126886,115836,102055,8897,6074,131329,18377,17163,10815,8180,7124,6156,124434,118200,7981,133469,125642,124027,19897,123379,122630,119345,104392,8417,119346,18573,17315,16988,10138,145985,122688,122687,117286,115345,109871,102777,102295,17479,16163,10285,8522,132477,125271,122758,117285,115824,105195,102552,21883,21418,10136,9451,9417,103360,17161,100654,6579,12497,11589,6583,5478,141877,116908,116790,105194,17825,109955,18941,18489,6517,20095,17263,16590,16460,10997,103423,102294,15897,117407,108988,18491,99534,87477,21346,8685,6524,141868,10061,9518,117284,102679,101179,17749,17066,10509,9533,10943,9885,114989,109193,102374,17753,17219,10000,134090,18939,17469,117409,107857,103424,10563,120378,116791,21768,16562,10059,4316,135443,129159,13365,10987,118245,109939,13781,10060,144779,120756,114244,107858,17086,16568,16490,14381,10040,6822,135535,103744,103359,102776,19751,18521,9797,9007,122241,7449,6630,141893,104131,102032,19587,18943,4314,129868,116801,116324,103361,21048,17605,17321,17215,11733,10244,10137,133730,116033,115895,102372,21810,20864,10684,10203,110272,103362,102778,102233,16748,14631,13827,10855,132444,125601,118119,102371,102296,18327,17317,17213,10685,7419,5776,133661,130247,125395,115759,115177,131741,128372,108745,103162,97954,19683,18583,11609,10057,141953,18357,16566,19433,16570,10139,10058,16480,13821,10056,9446,6760,5089,3500,139037,129045,122331,121714,98465,103970,18817,10247,126865,121300,119959,115825,18341,17104,6063,114559,102370,19839,17004,132530,126646,13499,10200,145406,125574,21367,18591,102373,8832,130619,3517,143264,136582,98764,98763,13505,145069,16908,16041,140787,132305,117287,107299,102780,21725,18355,10039,141866,138961,20081,13825,13819,8521,6762,127510,126643,119771,102432,10856,103465,16399,14069,145968,135580,119836,119794,16482,9388,131078,102366,10706,9464,138985,137758,132325,120831,119772,98765,13831,9818,6761,146631,126438,116784,126647,122044,110451,110273,109149,102912,102297,146632,137885,137745,119921,18577,17006,119784,116861,108728,102779,13511,9819,130211,124473,119541,116039,103987,141132,121299,103969,9447,145852,119919,102290,13509,138450,128019,103988,19325,13507,137743,121832,120324,103973,103971,18329,9749,8346,8192,139067,139062,123375,121835,131971,127180,126882,121297,121296,119922,119134,116966,104594,103960,145799,143553,137602,135536,131414,135572,126758,126605,120131,117246,116045,107301,103966,103964,12895,142806,19457,15069,137725,132938,121717,118202,103972,11731,142018,132655,121833,120126,103967,103963,103962,132697,104593,103351,131641,145958,129866,121823,121479,115864,109930,103992,103965,145857,121837,117163,107300,103756,131925,127996,126656,126318,121826,119925,116032,129649,126880,121825,11501,121082,102696,145841,131642,119347,128977,126606,122695,121084,129222,123119,121237,115763,111127,104466,103472,142730,116224,111028,103991,103990,103959,103723,103704,102383,121828,103989,103968,103961,145494,102396,145503,138804,129223,126881,121840,121838,121830,121822,121083,117000,146552,141880,132300,132698,121829,146171,143288,131957,130439,146865,140371,139351,135460,131567,128738,116160,120074,146397,143303,139020,132696,9820,146885,145557,135836,135278,133728,129634,129220,116222,133413,132694,139811,129221,126258,122691,121720,117001,116225,137747,137736,132268,129867,128979,126321,116046,114558,131732,130781,131927,130912,121074,121071,116050,116048,140377,132695,131926,121690,121075,140340,132343,130762,123113,122173,121085,119923,143294,131459,128739,121384,121293,121178,121072,145611,140955,140307,135585,132804,131884,131854,129230,129175,129157,121881,120231,131566,131564,129635,131563,131458,129652,13829,146541,141167,131574,130761,116998,139297,136546,131860,123115,121933,123120,121179,116999,104559,145829,131783,130675,130674,129844,121931,121388,121927,121860,145830,144852,141876,132312,131853,131589,129178,121861,121077,143307,141884,140370,131953,131859,131857,131855,131852,131592,131569,121935,121200,140022,138956,131892,131890,124397,123116,121199,145800,141858,141057,142480,140879,140036,139397,131886,131883,131728,131722,131594,131593,120510,131731,131729,131727,131726,131675,131597,131595,131591,129261,129212,121295,121201,109152,145563,145408,137741,136397,131955,131725,131604,131599,130561,129177,139678,131766,131649,115904,115903,102291,131753,131668,124439,119401,116996,134856,132512,131954,131754,131721,131590,130759,129600,119400,115905,145707,146347,145555,145479,139726,139622,131650,131015,130873,129584,129491,129216,124204,123028,119458,139669,136450,132515,129490,129489,129167,123139,119459,143548,139479,139353,132513,131781,131779,131778,131777,131776,131765,131570,129598,129478,129475,129382,129215,121221,146914,145823,145759,145751,145475,145353,139563,132348,131791,131648,131011,129597,129596,129594,129592,129587,129479,129300,116995,145553,145481,145477,139434,137339,136657,132517,131221,131014,129657,129593,129586,129568,129565,129554,129551,129548,129476,129302,129001,121224,121202,121198,145767,145766,145762,145705,145480,136635,129658,129599,129547,129365,129292,121233,145782,145781,145777,145776,145771,145765,145764,145761,145760,145746,145704,141309,131222,129659,129561,129556,129362,129359,129358,129301,129297,129293,129273,129217,147133,146583,146553,145778,145775,145774,145773,145772,145770,145769,145768,145763,141312,141311,139729,139728,129546,129495,129363,129360,129296,129168,145784,145783,145780,145779,129473,129274,121223,9260,131573,114129,21875,21220,4107,393,1089,1096,44,15689,114317,21158,4059,985,893,502,984,3371,1170,1379,441,20159,16916,13411,20811,21624,6351,21386,21326,11701,20779,13851,5252,101695,7472,129671,131223,148078,147464,145796,152487,150846,150504,150506,150502,150294,149039,149040,148976,148664,149454,150697,146922,151898,152633,148960,151803,150188,154176,150075,147571,150429,153676,149073,151659,153146,20593,20918,112300,21509,21825,154982,154364,153344,162147,161964,161474,160803,160275,159886,159452,159309,159042,158931,157692,157071,156631,156623,156131,156110,156109,156106,156105,156099,156092,156080,156077,156062,155908,155890,155735,155645,155329,155326,155322,155319,155314,154768,154692,154392,153800,153658,153498,153497,153495,153491,153471,153467,153406,152677,151799,151380,149118,147850,161410,158895,155502,154473,155227,156822,158595,159322,154745,151513,150970,160850,148149,161440,153687,154525,148370,156841,160173,151606,160829,154876,158640,155158,153452,159839,159807,158991,160088,155399,151896,161632,154983,161923,160962,159751,160728,156017,154924,160382,158990,156053,155738,159494,159490,155068,138612,160789,159582,155839,158870,157638,155291,160054,147216,158997,154785,155211,153841,147511,153492,161802,161441,159926,158988,158928,158927,158830,158791,157654,156632,156082,155223,155168,154967,154789,153493,148862,147729,147189,159110,153494,160089,158869,155221,159107,158983,151384,158925,155220,155325,151632,153496,157127,157349,157331,153499,156759,156809,156189,155327,155193,151018,156001,155093,153791,151067,158643,155195,155884,155723,148401,155767,155634,155222,158570,155775,125910,155348,154828,148970,153322,155092,154678,154953,153412,154150,154688,154020,154001,138611,153986,153777,153424,153982,151691,153973,153200,151635,148112,153840,152213,148179,154539,155525,154540,153966,154385,152212,151128,141775,160856,151126,150080,153964,151063,150947,152211,149703,154178,149799,149498,148226,148295,147886,149071,146729,159581,146730,149098,154081,158676,146923,148821,152005,149346,144993,154386,132679,154974,143287,157304,150505,139079,137537,157074,127227,148002,147996,143293,154978,150201,157417,157172,145903,156907,147764,157171,154197,154196,120325,155918,122536,120757,153521,118971,155253,155252,154006,111516,108146,152486,150005,154125,106921,100183,148584,155017,154956,155249,21742,156009,110639,155014,155254,128020,21741,87478,148979,154146,150078,148978,147815,148977,102159,156909,148975,99643,147765,154100,21542,20892,154147,148974,19287,151281,156905,16183,16964,155740,147814,158700,12123,101497,13249,13247,148973,16756,10519,10108,8078,158619,119835,126871,3917,7547,158541,156024,154121,158699,1099,148745,150084,95,206,155739,150079,151627,2467,96,12589,723,17719,147725,149939,3875,82,926,147810,153395,3009,163329,163326,163151,163144,163140,163139,162987,162921,162890,162842,162682,162670,162669,163327,163134,163146,162722,163024,162803,162720,162291,163542,163263,163205,163136,163132,163079,162993,163417,163256,163339,162716,162529,161981,162285,163544,163363,163143,162314] \ No newline at end of file +[20606,13663,110229,100878,16934,12477,103275,21416,87486,18753,126659,21460,14829,21281,98580,116005,15037,1840,9617,107068,21520,21258,114446,112625,20880,20494,10080,100815,6033,20958,21856,99147,100166,110277,1735,104578,104276,20594,2759,16870,21745,97767,116752,125367,111790,131942,20652,225,3784,20996,100643,20849,21400,114043,19163,21399,8525,11577,114194,21262,99749,20791,20671,18397,18247,15417,21110,98292,20021,112323,116741,104580,98384,97889,98762,15039,108623,3712,20801,11319,5,101432,6707,99425,117448,13659,21180,97996,111734,21390,20614,100049,16049,5341,19111,100185,106509,21377,10790,125368,16706,8516,20853,130592,108307,9181,552,20595,104459,98572,21887,116338,10521,124410,19489,20694,4280,21339,21733,14397,20751,528,20448,97672,16904,10067,4901,20995,21574,10863,21364,21394,21718,109190,20519,14967,9969,8937,11981,97886,3785,7593,17074,20626,103223,21861,100773,114308,111762,16894,18115,109963,20876,7791,10719,20745,98034,108553,21385,112124,19703,114862,135136,12365,142984,20572,120209,9515,3783,13271,21005,4282,131518,12729,97730,100178,100876,113538,108511,4181,97938,99255,119661,129874,98437,813,21679,104157,100723,101167,102351,32,98436,97668,20992,112151,101338,112641,20850,21698,117193,108725,21699,2904,21170,21128,108632,20474,99539,100240,106625,113936,131681,21450,100182,21518,102883,20698,20799,19603,114236,11741,142329,99540,101302,98635,100722,1519,131586,6675,21719,20879,16762,21676,9656,1889,97880,108631,3786,97888,21006,99634,4214,20963,20913,131773,117533,21560,21769,10030,20514,110733,13667,104462,9062,124858,104463,3782,16001,14837,101166,110178,21584,21799,104217,6213,111321,107717,20725,7311,103047,20513,245,100298,98478,124194,21127,102976,101474,20792,11597,108759,108928,108489,109261,20993,127720,15451,21403,21175,18671,116742,136430,31,11737,131520,21104,100784,21268,20819,430,2787,21184,13469,2472,5205,113359,5204,9982,21558,187,21565,119941,97983,874,21379,20889,18,6372,109819,1565,2889,109403,8247,138565,21710,108522,127366,130588,1119,138424,21088,8407,98702,111322,133844,106918,2924,4752,11553,15335,10589,442,20778,102977,21000,12403,11979,21650,97637,146984,125124,103276,101410,93,13939,20752,90,124395,112153,124195,104382,102997,900,101924,10049,10418,1117,20766,936,114745,99734,20638,19291,116674,21335,140439,4896,6007,3901,127371,105143,801,97918,108891,73,105893,104243,20680,10681,98884,108266,112296,21852,1239,21780,962,895,464,112803,372,105749,6793,101812,111048,97891,11123,134710,18295,15201,21871,18661,10073,99470,10378,1121,107203,16444,130183,4026,139,986,1002,16866,98524,20625,15437,10033,6178,6127,15793,5962,20714,1313,21103,97645,9135,21483,2581,6954,13331,20884,110355,114195,8408,21138,2144,100523,129188,21610,18195,11235,21384,104175,104458,101813,4106,459,100451,3927,135865,20762,846,395,15879,15199,21451,98885,110857,14175,905,14807,105200,376,141534,21691,21757,104461,468,21064,97875,21126,136804,20526,145545,129196,21348,17741,145139,11743,20566,118399,19363,4835,3297,108945,5781,20869,132193,101102,100684,9074,901,21322,21748,97643,15117,21586,108581,114087,19951,8246,17641,10020,101925,5300,122349,100675,100749,12859,21855,10271,99714,6811,6862,11665,20741,10379,4437,21815,21778,12893,4789,120150,139498,100353,102436,21356,97881,740,104174,10119,21749,103631,3228,122808,898,97757,18441,21629,14027,21424,131149,1120,9471,4472,116867,18001,1430,6421,21077,10209,317,532,101344,18617,131680,145064,1526,19613,10794,21862,11266,3972,20769,21660,21746,100855,97917,21874,21791,113693,20719,7338,116605,21191,20767,20467,6773,139648,12049,13357,20629,12115,139630,5258,4565,4155,21261,3652,20635,482,20547,21425,1564,15699,186,102882,20670,6325,12113,20666,19647,20728,113950,98502,127688,21186,21247,21046,101213,15059,20907,9366,6637,903,112125,16005,14527,119113,906,4182,21573,97634,21085,102167,543,21008,15565,2847,904,15197,108040,138,3572,9107,899,1132,101426,101343,10805,12231,1122,902,20723,20802,21579,896,9790,20609,102498,101992,1594,13055,137,897,97665,98497,6377,113917,98779,99394,20692,111852,4814,21241,20986,894,126357,104990,264,20654,1686,101215,18857,5277,98656,98349,20768,20711,1118,5667,21034,9734,20845,2994,101206,109492,101965,11783,20736,21376,20497,7858,107622,104307,996,10298,265,4477,21010,20826,13261,20659,21640,2685,20761,20633,156,6951,11209,2107,1095,109562,98060,6945,20775,98554,558,20554,859,452,761,461,21068,21765,21596,4872,65,8740,119947,450,10464,20856,98874,5262,21777,94,21489,1142,136192,21244,130389,121176,100465,13403,104198,132806,9047,21178,104460,126819,12783,7695,371,2131,17259,15811,7902,19211,100181,17873,100532,3226,1015,7748,18097,86,110738,136484,4866,20551,133898,14653,4726,21294,101313,12671,13709,4918,136381,127619,97619,98663,98565,18619,18523,133845,20481,449,100978,133175,3225,20454,2921,100268,465,139092,21678,15323,16868,6884,19109,15487,106494,21389,12187,97985,1074,123330,110445,101161,14511,11739,19023,100133,1894,21091,21407,2899,128643,100965,834,21831,21265,16385,20900,21235,21673,98240,12685,10638,136436,101595,6408,21772,650,131880,130550,969,21672,10083,104170,4535,20697,14893,21695,7017,135866,20895,16273,87489,987,463,20478,8577,99938,21415,451,13587,9063,5391,11359,6624,114473,99148,107069,10076,107294,126356,113811,3848,98575,1842,9917,142876,908,100659,21053,5028,107138,9130,9488,21255,15195,139449,102969,143080,139518,101016,21891,8023,98379,126661,141182,21331,97734,8440,104368,121467,103049,9712,21312,551,113290,20644,146065,779,100294,5955,87,780,781,1669,100305,1915,20660,101123,19123,136880,98496,2563,7082,100744,19191,531,12503,474,209,21266,891,9065,106495,106169,113050,101501,100518,20669,20945,3466,5152,97642,10507,12471,20835,121034,127368,133007,10447,21313,762,12979,85,20737,1566,21588,20560,20777,114622,10647,14189,460,98873,594,141249,20571,113924,4970,5034,101634,20485,6023,196,142853,20960,487,21094,20862,5337,21490,7367,108942,1090,10370,18121,9117,17115,120257,190,401,98402,1365,6288,21007,19391,21599,2508,21585,20824,8410,21813,21458,124223,98495,97769,127363,77,1363,15927,873,1956,102949,3759,1364,10075,102449,892,12069,8514,7655,2398,6864,2006,9203,822,139095,9201,4015,15609,19669,126830,3016,21879,10622,116147,20449,100561,7870,1023,20686,107208,20739,5279,4163,12673,98662,21487,18045,9724,9355,117496,298,13093,4196,21057,21540,16051,103110,21753,12753,1505,20515,97951,143085,6791,1719,8197,15359,1253,17875,131264,12929,100306,20938,880,101918,20882,4447,17437,20833,138425,20658,4938,8038,20978,98866,9963,20567,6634,6165,9999,4037,19697,535,10740,106154,7044,12255,1527,3231,102090,4134,20866,16239,20444,19193,107202,18055,1953,2248,9252,99302,110413,84,21325,8311,2471,20524,98876,7720,6633,21485,98703,104199,12669,20733,3328,20760,21649,132545,105401,12117,100269,10713,135102,10336,7337,107506,21473,2171,107263,10659,2962,130590,102822,18745,98438,102832,13263,16123,104979,21043,139093,20662,98629,9465,3352,1813,5460,146066,21786,21209,1257,137819,100813,1367,10017,133891,21658,21738,143866,12419,100780,17341,21208,21638,127550,99569,11889,7062,664,9958,101830,107351,139825,97936,136263,13767,2273,20546,21230,21501,4039,21744,5526,6489,997,10643,18713,13859,1836,101036,104278,20844,12053,101100,10582,98860,1397,21651,20962,656,21414,102508,10714,10330,5228,102353,113692,106223,2201,9136,6336,16694,4192,21328,117074,127400,21853,21327,21279,3091,21120,10686,21098,10491,128740,20487,20453,98878,103277,105662,140596,20796,20687,98033,21462,9925,98856,100644,2175,113108,105596,102622,114841,5051,129549,4454,5310,4939,101126,21729,5162,21155,100957,16680,143337,20531,101844,21798,10232,10604,99476,20780,107704,21404,462,1709,20854,116756,21836,15377,146722,18851,16099,101574,21500,6381,21214,17389,3713,6572,126529,141208,81,21305,111729,16700,21248,2397,19511,14093,19319,107346,98574,5764,117002,12487,17535,12711,112686,19671,97988,98778,8479,142838,11113,21300,20906,130713,101633,3604,20472,10092,1614,104745,100283,1091,6467,104530,20926,16982,99363,8985,110088,6064,17879,20871,10739,19195,1366,118743,4793,1506,9618,15729,1092,101083,517,10536,10249,9510,14941,1172,16468,1372,11239,12665,21114,104200,7580,17643,21136,20423,14645,191,98338,14735,21252,10172,107764,3515,18849,10715,111145,6115,98473,108260,11813,20738,1668,127595,20451,8624,21476,140999,17409,2386,7334,136145,15881,17725,15489,10717,1425,101632,120700,8465,87526,6676,20601,10624,105595,2385,103588,15591,21470,20820,6291,104434,10716,1110,11859,2363,100227,21646,108939,7739,394,112324,21358,13267,9735,17637,100811,101471,20035,87498,5521,139359,615,352,10737,15611,1914,98814,7375,107905,109603,9362,20452,11001,2035,2969,15959,98344,2595,1078,5306,2488,104749,112177,155,2355,20695,9202,10469,21740,448,133124,8918,1356,10302,3033,564,4130,120851,2020,8190,20734,618,113470,7897,101098,20456,1471,109085,1238,110090,117085,20750,4811,104326,110640,6479,21681,123901,97859,125351,9745,100469,11237,10444,4792,1237,4053,102346,21113,4028,11879,20685,1847,108714,6984,101816,21338,21730,100729,596,139435,21864,9581,17205,10808,114744,113024,103209,15617,137804,101909,142343,821,98238,136344,21014,109731,20990,1240,142411,97667,21260,99730,111305,5947,102836,3323,963,21304,2356,6112,97860,21426,17080,3965,3931,21011,1747,351,13409,4483,3665,277,112302,107352,4760,3446,304,6927,2424,104437,7651,21492,9888,136226,11339,124115,2752,97910,138056,108941,1888,101085,883,98566,644,97765,291,99624,107913,2680,21505,98536,98520,396,114564,98704,97890,20683,97853,2490,89,134413,98222,18429,114981,181,6896,21513,995,1531,3165,15651,120046,124612,299,8348,1921,108267,20863,98847,6380,18099,101743,1563,141852,98239,107313,102839,2623,11341,1657,101499,98642,2683,102349,6187,1007,136064,117086,106896,14575,107342,21687,102499,87505,882,21880,4772,5772,4195,115800,12017,20928,886,100852,127976,14835,136829,12281,132467,46,120892,20650,192,20573,21122,4596,8302,976,9032,4705,122292,98833,104077,1094,140337,19799,110028,16241,11917,21357,21301,5163,135939,21079,104071,9347,3627,120343,9563,444,102348,102347,21253,21115,144932,98868,6050,100180,3593,15649,8422,4765,21774,20861,8532,128207,124756,98525,87480,1335,1487,21332,116676,21076,103237,10479,3031,108735,104286,10431,134623,20765,11161,100537,10380,101999,108548,98576,8728,9441,2520,21896,5713,98978,103712,101554,7222,1426,20731,21381,110318,5233,3918,20221,104378,11441,130,13145,21129,15963,1929,102350,21467,5244,2448,108062,11385,17391,20852,21534,20578,3269,1472,102946,117913,8456,21892,397,21886,7135,1350,19251,113653,540,12001,21413,8687,120180,15989,131866,3032,127721,137735,13561,17345,14267,5029,21570,6024,137337,21775,15411,15951,109418,20846,443,20764,87488,10834,92,124132,138700,103713,6768,5978,20598,103119,106287,10928,98186,101337,91,103555,141351,141902,3791,102631,807,136080,1066,100653,21666,1525,13377,14827,12449,111500,3956,21893,143271,15633,10153,15731,21293,21289,106206,112033,102093,12505,2213,620,97670,17739,5458,6795,125261,20823,117556,16395,123769,146953,12879,146206,19159,137309,15807,8995,6714,104371,21387,17947,20916,9544,119258,20921,118125,8609,9754,99614,20706,8668,1732,1008,17273,2108,1916,11615,2512,541,145813,104324,1432,10477,869,866,2905,13119,2298,2928,21245,106499,20564,3354,117197,1011,115217,21633,8230,281,21276,6443,1241,10845,98504,141400,20651,3485,112031,21508,792,107692,1262,2499,146637,101046,2126,102608,1419,122575,1825,124032,119812,21107,107984,3674,122041,123381,6882,1255,1289,219,101596,140350,651,87475,1861,1368,7304,102716,100979,143082,2498,1260,20181,100652,21324,4197,99196,11793,102503,5717,20450,3221,20805,1764,14117,121962,6712,17843,142684,108944,4080,21003,21812,21257,9988,113476,2123,106572,122671,107298,102978,7468,760,98622,3349,815,5529,102033,20848,4232,3887,21030,7568,98433,21154,1609,6964,3692,2117,87506,2842,2229,129759,694,20732,11255,1707,3090,140642,1215,1729,21477,4886,20689,6151,21231,3750,12067,8599,128306,124394,1290,1401,112640,12823,97820,13231,20883,146921,100719,98470,21287,21790,2048,1006,471,100186,1144,117408,119964,110228,6783,14875,98106,12447,1835,1376,6330,143846,7782,107252,102609,14049,20642,981,103254,101169,104213,99547,20915,116944,1917,2768,97919,4795,2198,98289,8057,9611,10933,115567,10350,146743,20904,98582,98452,98471,99732,99995,3449,21409,17717,10920,122497,114052,7322,9023,19255,2597,121681,6385,6591,919,106568,16678,98142,130558,10917,136303,2237,98516,2873,9288,1969,101339,98897,18413,6198,21194,12455,115927,104411,1348,132526,125308,98209,15785,101696,1418,10122,141352,110686,609,2497,146646,630,83,101115,1920,21592,6704,380,1357,20870,2515,21806,99742,6399,105391,20941,2589,2971,21139,454,131,21554,102293,6877,20878,116968,113023,20851,14627,2392,10219,5196,115566,524,113906,124136,102000,98206,21817,10999,126425,110786,97933,10934,9396,1369,4715,21636,1143,1435,1278,1473,108758,19029,143086,6287,20039,10497,143327,1258,2937,3861,97818,868,126678,13201,1146,17267,2513,525,8756,9591,1967,21135,114249,867,98220,100768,104102,107348,2761,21468,21564,21465,21814,9744,98420,102309,4052,21820,146954,124641,10924,3076,21839,6609,20989,418,98225,398,100716,4794,4874,110382,1211,222,87507,1619,1003,645,1817,14173,1256,8098,107350,138103,7875,2125,14817,20834,6438,2514,1398,112472,99646,115651,704,101216,8619,1830,1521,5333,641,1018,141212,101104,20498,1416,114233,10916,20847,20640,3174,122631,1654,100519,1968,5751,13727,10703,110275,6234,2606,492,100280,6344,5462,117764,1985,21442,99731,864,99197,97915,2265,102098,101097,381,133904,1302,20747,13931,6231,103717,7041,21405,1670,2450,5097,5348,2214,103543,3266,21388,2132,13839,5493,101267,100966,21822,20794,1796,21285,10923,20784,5725,9865,1504,8507,5256,101875,7740,17855,21430,104712,98599,120534,111082,21317,1382,101928,1631,3288,12725,2670,110173,98056,142914,124,8217,1433,106895,21590,17351,108355,4205,104291,19845,124896,98621,712,20998,428,1187,8331,3727,16638,139451,5419,1225,21345,110265,1761,97989,139466,1342,5096,105387,6581,1101,2454,21438,20896,9124,1400,138260,1399,105655,110359,9435,12863,1439,21789,3392,504,1349,13757,6275,87476,21374,7654,119696,117532,10628,146472,102573,122238,915,10810,1249,97905,21280,21664,102600,1930,21784,8317,111730,20579,13245,10573,3057,112166,1437,107447,1749,1910,18053,112900,19099,3745,20187,99557,5347,1438,7248,4664,1231,7463,4662,121043,814,98556,18881,8438,13799,7016,10804,102599,3447,4320,1152,1135,117765,2580,7474,2673,5291,128563,10534,6590,1415,13731,8231,20570,10870,4502,99912,125640,3626,3419,1190,108,20803,135108,131182,20902,113348,102933,10098,13855,13837,4910,15431,2109,114926,10531,102001,8358,21299,21286,1147,938,1286,12065,103870,261,429,17419,4650,2393,7270,121664,2269,2098,678,135171,117756,8362,631,97955,135255,114842,118126,2013,4200,2014,1931,20816,109002,99733,98107,21307,21770,16059,1750,98697,21251,7305,97856,769,97621,1413,3401,105244,7066,4082,1417,146638,1994,8245,132420,110253,114417,8359,1191,2174,100184,116610,2615,20924,1343,14077,11663,8133,2017,104396,1922,20948,3000,1429,5332,21821,124196,108853,106690,21383,113187,12221,6154,1168,20859,5753,99059,6379,106506,11777,1988,98548,5845,1924,102401,119042,20828,7045,1923,1421,102431,21796,98546,9002,15925,5199,673,254,2157,129608,2655,653,3429,3027,102572,21591,21314,685,131923,9979,2458,1475,10581,8490,1424,3051,8894,6705,100769,102464,21401,1803,1434,6460,6209,2661,2203,1252,1474,5032,1925,122585,101817,109153,1414,21620,21437,2675,1436,18525,9785,1420,21759,21750,99817,1422,98069,15307,20522,844,1226,7113,1423,1410,128947,102036,14957,8022,97631,21429,2523,555,3219,129610,17585,4469,4312,2725,20836,101908,21737,20914,99883,104257,2110,1800,6794,112732,20909,8097,5270,711,20636,142481,9342,6930,20267,10731,9220,4549,493,13619,6958,1651,3468,652,21870,21697,19889,113971,5305,1046,139754,2294,9241,2695,370,114030,1841,5844,1489,7774,107110,105962,10821,1081,1918,18531,20810,115107,11019,835,19945,1149,99083,16442,11053,5658,112455,20535,128,6152,99084,797,139752,17573,3469,109003,11009,2920,6582,2947,1718,2391,99839,87538,7471,921,636,20985,706,109260,6169,98332,99888,2743,176,5967,1919,1476,137726,109005,7745,3019,21119,5072,98542,115914,137734,115006,4703,115846,1427,9708,113308,15177,8705,4124,139274,6527,107943,109670,16614,20999,17357,115,109911,101917,9706,5351,2676,112658,20988,3954,98759,15219,3493,10390,8369,2664,21867,137612,97854,102859,21794,7060,2954,121035,10949,119350,9311,109191,559,138717,118,2011,10947,10483,104188,10945,4166,115916,20936,14693,10948,1856,12579,9040,313,101996,109004,102571,655,20549,1296,2665,15839,6736,14889,1880,98971,21797,120755,107199,1652,115918,119806,9547,2671,21121,262,19101,10359,8709,4508,2948,116786,9353,9035,110734,142794,104160,1042,5045,99741,10886,4851,16574,12961,1020,2734,104959,98746,1104,6988,21598,5712,5968,102974,100980,21323,9487,1645,11715,142219,21752,21157,20868,484,6555,119960,123803,16644,6130,21004,17699,2407,1720,104211,19645,12651,1578,8909,920,112019,911,11635,7744,98760,114561,7550,20141,1746,106606,13137,1996,21642,12239,11069,14583,9170,112258,2677,1428,1128,2760,255,21525,18231,20776,2470,2459,2302,101370,21137,128827,12121,98761,98547,21207,10351,1864,102096,21504,115671,5369,111306,21474,21767,140002,114304,6041,138511,20391,3602,1991,143203,6567,146473,15291,3024,107875,21125,19431,102860,446,135645,4646,3462,100667,10766,6217,2656,12499,4421,4078,12709,20893,9393,1336,7549,2922,2267,102601,11853,4450,9849,608,16928,7759,3618,12131,134286,1166,10549,1481,21559,17727,123074,2322,3744,1794,132209,100981,100484,100262,98581,141907,104214,102603,99391,108973,10832,3898,3964,1798,2217,2067,1501,1112,103022,17655,5019,99568,2648,112685,6299,101372,111144,98997,2669,123464,100225,2118,1298,17113,4804,4540,1676,1297,8062,10297,3256,1495,115656,128890,4712,2684,98744,97937,21478,20929,16508,3963,102602,119080,103311,8491,6959,2654,6153,15783,2713,689,8367,6885,10116,101101,16936,2408,2667,11773,8026,107141,10180,9005,1111,99478,2870,21890,143150,3991,1277,808,102979,2666,98891,98229,111909,2176,116962,3406,2168,1957,12727,12347,6901,2264,2090,113669,13937,101369,1540,100071,5996,3072,110788,8648,125909,21169,3071,314,102483,98843,999,129348,4114,993,113990,20890,1389,9167,140005,135864,21436,8365,1024,10825,5549,3738,2929,123490,8364,574,2119,2121,100176,9786,17497,2868,129350,97610,7540,378,2620,99085,6149,1123,106493,103923,19297,113864,102463,10280,121065,127163,1150,21491,4162,295,2706,1377,10301,8360,927,102450,1795,925,2111,3686,4486,16646,2304,136137,2062,1756,21337,10361,4353,1636,140187,116015,21229,7264,5415,1514,104187,21427,928,12921,2558,116923,101435,142016,123476,8635,6418,10050,8837,2784,100291,130846,100328,8361,2120,1539,858,106541,21232,4173,129946,4027,1964,8366,10679,87438,129351,13679,684,117758,10420,2998,17659,100570,102305,332,7857,2061,1874,127863,98517,3501,3222,8287,1755,1493,8250,1388,5890,5585,98846,8423,102005,12223,5723,20897,12963,6496,4209,102077,10862,7144,144990,116979,21859,3205,21446,114448,9309,4361,2303,16738,1648,2010,99841,9716,116964,13073,111955,13223,6883,121026,18149,139386,3381,1769,2668,112308,107993,20798,12343,4667,132634,5290,3067,137740,3112,16319,129349,10796,103809,20959,2583,1754,17917,2420,142826,11699,16532,7781,1344,103847,21528,8368,140175,114442,3223,131047,121528,2305,1234,7712,5031,3069,9346,104922,6749,139806,117395,1757,103023,99718,2672,108810,3008,2333,145478,1659,101546,9673,5859,129347,20925,2659,2658,557,18419,5691,145740,100527,6713,2511,2657,131770,10592,5832,2662,2586,98577,19207,10775,8908,13559,2733,14935,2429,139409,556,87483,21354,20500,10936,3234,2325,126649,7083,4443,1752,16726,362,87482,13067,5710,4416,771,10905,2359,6657,2674,87533,20822,7453,112010,2584,143202,21523,136512,113254,734,6999,114424,20917,2306,139273,8950,1882,104748,142985,8754,98096,2122,1635,1235,18781,14685,108625,1886,8800,6607,108767,2696,15979,8363,104557,111931,21652,7882,3111,21808,112612,106456,134168,12991,5165,5397,5288,3410,2474,8289,1736,102429,21849,115955,2678,21863,18449,7430,6492,2308,6891,104739,2717,11569,1014,100289,18639,10048,8134,3868,98094,113221,110641,2521,15547,146321,144336,101555,14047,2172,115105,2063,1460,105245,10276,2911,2765,3483,105663,7179,8373,100072,146140,100290,99945,21550,11911,2292,1632,8839,1999,132317,116415,130777,5164,7108,3157,10824,6312,1671,110219,9630,7861,312,2999,108041,1831,1939,122013,7363,144803,10693,4827,127042,2518,102525,2206,115519,115879,2009,1789,114334,9348,1381,97589,1843,10689,7329,140085,12225,3037,101385,2405,107755,5056,132055,1035,138675,562,21739,10666,3292,2212,1071,105616,104854,105964,104339,9494,5250,124230,103948,110578,122639,21134,130253,2008,4071,126275,106674,99663,5715,1392,423,139348,6199,2307,660,5372,106320,7579,5644,1753,887,3138,131048,6792,5539,2272,14913,2709,129123,104436,4476,12745,115082,126354,12715,4406,2777,1758,98970,9287,8518,131475,5584,2859,2276,2728,20894,4213,3511,1768,1273,6245,4056,3281,126783,123078,18549,7308,4926,107881,101876,21551,20477,14949,9100,127045,103690,654,125440,21433,13127,2181,126169,10732,707,108936,21203,2745,102628,4816,2064,5520,5324,2087,130190,20465,5037,14007,4075,110465,134081,20942,126186,104383,3729,139813,98092,124600,13143,21552,102462,10710,9127,1395,20937,5653,143766,9121,5147,130188,123885,686,2209,112450,10513,924,129595,108972,108331,2065,102165,13969,7666,107256,8208,5938,2492,109097,98521,123612,115654,102658,5213,112152,137761,110787,17787,1393,126294,2100,422,1394,5308,125783,110332,20528,7953,107188,110732,10471,4031,3854,140376,97916,100720,6374,102389,18391,101913,126316,113472,98791,1411,216,7691,3248,7436,112480,10286,5661,146543,132324,2046,128344,114721,7254,109484,102617,7004,5854,13917,4640,5501,11299,6437,8079,2802,19447,1266,9548,217,104006,3245,109280,99716,3004,2299,11685,7366,9087,6511,1771,6227,5296,2910,21589,6068,2399,109413,142298,138864,107862,10036,796,3182,4383,3671,3153,12603,4070,102743,2378,102677,15095,15015,5395,132014,8042,683,2344,146503,103392,101550,705,11511,122008,10324,13993,1268,215,130305,109482,8538,1113,126662,98972,2301,21562,7364,2801,98964,10526,4371,117572,98851,5484,4014,137799,2535,101697,8546,2256,123405,10527,2682,98378,10528,8228,4855,3185,2082,12481,2139,2114,132000,103707,6328,4154,146488,592,15769,8108,1834,839,2045,21368,4208,114814,6992,3203,140788,110131,19619,8109,2343,2289,10201,848,1584,7330,8964,1265,960,106159,100148,11017,7761,98421,15819,2493,97952,107255,12591,2778,108339,19825,6899,5043,2360,13927,5266,4444,399,101094,3864,1898,3227,116330,20795,968,113722,4061,99661,126664,131045,104105,101976,8972,102166,19977,19397,2613,19877,16347,765,125268,9098,141802,134761,21834,21036,16119,9549,3818,98090,144451,7536,109931,6994,2565,15159,1274,103924,21603,17707,2416,107340,102821,3259,1503,137729,1159,4418,142136,98785,5466,15093,115011,111954,108729,142173,116138,1267,146975,21635,4566,4242,116137,102718,119665,101877,12965,121567,111129,17379,106158,115143,13681,119938,5036,103050,126347,7290,14059,119548,15505,129591,102155,101789,10520,6038,367,9568,1937,1774,6375,2901,983,121177,9091,4202,2837,17147,9290,6331,111312,10735,137746,107175,104868,2027,9243,4068,146501,128737,127331,9078,8949,4298,101985,101425,10306,10104,7491,6028,118034,121508,111121,108986,3432,130362,2345,1741,100658,98093,13983,3752,1673,21024,8966,116793,108971,116053,5828,5246,117014,108730,108549,3849,104082,98208,21628,115238,112008,104104,4244,1905,120272,5865,988,102576,2380,110954,2840,100339,4946,2851,114919,214,113139,7667,4856,99715,2644,2442,113463,113273,7793,105873,101878,2342,1552,5203,3232,2707,126360,6939,3273,112452,12483,10524,10342,113419,14947,122672,107189,8409,129839,107623,4561,2601,120211,104385,20624,103333,9200,5237,3945,2916,132016,3529,120300,130033,10346,5640,4695,133146,131096,116320,9486,8547,1001,8550,7333,6230,3264,8815,5449,5006,137310,117034,3569,2187,2086,122652,114943,102168,21022,9244,7157,3587,135177,3547,2376,4489,108983,122205,18729,126888,115003,9163,8548,7664,7158,115931,115839,21023,7816,5629,15993,104957,8965,115907,139986,124472,122372,11268,3190,98383,16702,139212,121750,2085,12663,10743,9967,2080,1513,125153,9325,2375,1907,114679,109485,5411,7571,18669,8553,145210,12881,9773,3370,104292,10319,9340,5303,130787,114562,109415,9264,7294,5136,21344,4534,3726,8011,110346,102428,101879,21021,11919,8963,8145,4803,136110,8146,7775,4842,3762,2700,129202,1903,137742,102388,4586,8919,17963,2906,132903,132615,4129,98553,2537,137308,118630,99704,2689,129896,2501,134283,7427,6095,10443,9053,1745,141329,130445,113242,102619,18109,122689,2334,117325,17223,6277,2599,1872,124341,104027,16912,10751,3669,115794,99582,20563,12689,12485,110330,21267,4126,4967,3496,132893,114196,5344,4807,121663,118640,116789,116246,21847,18637,8156,8152,138351,126832,18061,134107,122670,6577,5956,122654,108332,119403,112453,6693,114557,102934,101498,17961,2480,1790,135381,112468,9344,7807,5289,142963,101880,12279,3768,117396,101881,104386,20821,9385,12439,11505,10028,6889,126350,122206,98751,20788,9013,4841,98297,145709,12351,3290,14367,11835,4509,2956,4729,110286,5396,3863,137296,98224,19959,12441,4400,3936,2208,142541,7488,2485,7446,5398,17989,11841,7164,8157,139588,117398,18375,112534,9972,2073,6107,104943,8431,4614,123056,117403,12569,2258,131239,9858,3884,2339,104328,5475,8443,3690,19271,11101,3274,2600,104468,18003,142216,108811,18063,3764,8678,135178,104388,10313,137728,133892,124960,6062,3280,126833,15865,9796,19879,6481,4190,12061,9857,9165,2643,126909,9365,8842,4848,2240,2192,130249,20235,15905,15875,6684,2464,137757,105049,18795,16131,9795,6434,10820,10373,9390,17165,8154,8153,19843,16393,119837,104067,9164,8252,4616,137738,15607,10199,7967,5472,101411,8314,5492,1851,136146,98586,9166,123778,117411,102664,102101,19755,143391,115908,110643,108309,8848,122675,118040,116150,13233,8227,7697,1850,133514,1892,21210,122207,18533,8155,2741,18425,9389,8707,136138,130584,112471,21227,20207,13433,7175,120055,104148,101431,143201,15937,8442,7626,130323,126908,8899,139179,125931,122208,138522,5190,131730,116805,112470,16371,10802,10525,9862,9376,9282,8493,8139,3028,13967,4388,3276,2710,136638,110331,16728,10202,8891,146310,104124,101523,139213,112156,20857,10625,8900,120321,108743,142549,122678,112449,16486,10114,9759,132321,103323,137097,115178,113180,9445,6518,138065,104469,98638,20855,14621,9403,10908,9528,143393,102941,17167,13431,5515,114111,102102,136517,13965,6297,113138,4682,3275,104932,104435,6482,5773,5240,107872,107859,102942,140645,109800,15815,7698,7601,3277,138716,137106,17237,11791,8357,3278,3279,2738,19687,136461,122062,117019,110245,109801,137739,20976,8956,118168,19337,14519,12971,9880,121433,2028,125822,21572,19781,19479,16510,134045,121514,16373,10409,5587,5564,3659,121998,106160,100655,18567,8356,7461,136666,130354,8524,126885,5571,126835,104553,21408,17159,109940,20175,13449,106162,9274,125514,113907,113689,21065,18241,17002,129540,15067,13207,109343,12563,8196,4905,6072,146664,114760,102562,2173,143485,5783,18815,15913,109340,104510,107627,17441,6133,119774,17445,14213,144687,130447,114560,106161,3769,9522,122690,121679,16377,9973,126757,17447,9416,130527,112006,17359,11959,9387,136641,116965,18199,13465,102057,145994,124435,109276,14067,10335,118637,115758,17443,8304,119939,140113,141878,120519,18937,141763,136139,112126,7980,126886,115836,102055,8897,6074,131329,18377,17163,10815,8180,7124,6156,124434,118200,7981,133469,125642,124027,19897,123379,122630,119345,104392,8417,119346,18573,17315,16988,10138,145985,122688,122687,117286,115345,109871,102777,102295,17479,16163,10285,8522,132477,125271,122758,117285,115824,105195,102552,21883,21418,10136,9451,9417,103360,17161,100654,6579,12497,11589,6583,5478,141877,116908,116790,105194,17825,109955,18941,18489,6517,20095,17263,16590,16460,10997,103423,102294,15897,117407,108988,18491,99534,87477,21346,8685,6524,141868,10061,9518,117284,102679,101179,17749,17066,10509,9533,10943,9885,114989,109193,102374,17753,17219,10000,134090,18939,17469,117409,107857,103424,10563,120378,116791,21768,16562,10059,4316,135443,129159,13365,10987,118245,109939,13781,10060,144779,120756,114244,107858,17086,16568,16490,14381,10040,6822,135535,103744,103359,102776,19751,18521,9797,9007,122241,7449,6630,141893,104131,102032,19587,18943,4314,129868,116801,116324,103361,21048,17605,17321,17215,11733,10244,10137,133730,116033,115895,102372,21810,20864,10684,10203,110272,103362,102778,102233,16748,14631,13827,10855,132444,125601,118119,102371,102296,18327,17317,17213,10685,7419,5776,133661,130247,125395,115759,115177,131741,128372,108745,103162,97954,19683,18583,11609,10057,141953,18357,16566,19433,16570,10139,10058,16480,13821,10056,9446,6760,5089,3500,139037,129045,122331,121714,98465,103970,18817,10247,126865,121300,119959,115825,18341,17104,6063,114559,102370,19839,17004,132530,126646,13499,10200,145406,125574,21367,18591,102373,8832,130619,3517,143264,136582,98764,98763,13505,145069,16908,16041,140787,132305,117287,107299,102780,21725,18355,10039,141866,138961,20081,13825,13819,8521,6762,127510,126643,119771,102432,10856,103465,16399,14069,145968,135580,119836,119794,16482,9388,131078,102366,10706,9464,138985,137758,132325,120831,119772,98765,13831,9818,6761,146631,126438,116784,126647,122044,110451,110273,109149,102912,102297,146632,137885,137745,119921,18577,17006,119784,116861,108728,102779,13511,9819,130211,124473,119541,116039,103987,141132,121299,103969,9447,145852,119919,102290,13509,138450,128019,103988,19325,13507,137743,121832,120324,103973,103971,18329,9749,8346,8192,139067,139062,123375,121835,131971,127180,126882,121297,121296,119922,119134,116966,104594,103960,145799,143553,137602,135536,131414,135572,126758,126605,120131,117246,116045,107301,103966,103964,12895,142806,19457,15069,137725,132938,121717,118202,103972,11731,142018,132655,121833,120126,103967,103963,103962,132697,104593,103351,131641,145958,129866,121823,121479,115864,109930,103992,103965,145857,121837,117163,107300,103756,131925,127996,126656,126318,121826,119925,116032,129649,126880,121825,11501,121082,102696,145841,131642,119347,128977,126606,122695,121084,129222,123119,121237,115763,111127,104466,103472,142730,116224,111028,103991,103990,103959,103723,103704,102383,121828,103989,103968,103961,145494,102396,145503,138804,129223,126881,121840,121838,121830,121822,121083,117000,146552,141880,132300,132698,121829,146171,143288,131957,130439,146865,140371,139351,135460,131567,128738,116160,120074,146397,143303,139020,132696,9820,146885,145557,135836,135278,133728,129634,129220,116222,133413,132694,139811,129221,126258,122691,121720,117001,116225,137747,137736,132268,129867,128979,126321,116046,114558,131732,130781,131927,130912,121074,121071,116050,116048,140377,132695,131926,121690,121075,140340,132343,130762,123113,122173,121085,119923,143294,131459,128739,121384,121293,121178,121072,145611,140955,140307,135585,132804,131884,131854,129230,129175,129157,121881,120231,131566,131564,129635,131563,131458,129652,13829,146541,141167,131574,130761,116998,139297,136546,131860,123115,121933,123120,121179,116999,104559,145829,131783,130675,130674,129844,121931,121388,121927,121860,145830,144852,141876,132312,131853,131589,129178,121861,121077,143307,141884,140370,131953,131859,131857,131855,131852,131592,131569,121935,121200,140022,138956,131892,131890,124397,123116,121199,145800,141858,141057,142480,140879,140036,139397,131886,131883,131728,131722,131594,131593,120510,131731,131729,131727,131726,131675,131597,131595,131591,129261,129212,121295,121201,109152,145563,145408,137741,136397,131955,131725,131604,131599,130561,129177,139678,131766,131649,115904,115903,102291,131753,131668,124439,119401,116996,134856,132512,131954,131754,131721,131590,130759,129600,119400,115905,145707,146347,145555,145479,139726,139622,131650,131015,130873,129584,129491,129216,124204,123028,119458,139669,136450,132515,129490,129489,129167,123139,119459,143548,139479,139353,132513,131781,131779,131778,131777,131776,131765,131570,129598,129478,129475,129382,129215,121221,146914,145823,145759,145751,145475,145353,139563,132348,131791,131648,131011,129597,129596,129594,129592,129587,129479,129300,116995,145553,145481,145477,139434,137339,136657,132517,131221,131014,129657,129593,129586,129568,129565,129554,129551,129548,129476,129302,129001,121224,121202,121198,145767,145766,145762,145705,145480,136635,129658,129599,129547,129365,129292,121233,145782,145781,145777,145776,145771,145765,145764,145761,145760,145746,145704,141309,131222,129659,129561,129556,129362,129359,129358,129301,129297,129293,129273,129217,147133,146583,146553,145778,145775,145774,145773,145772,145770,145769,145768,145763,141312,141311,139729,139728,129546,129495,129363,129360,129296,129168,145784,145783,145780,145779,129473,129274,121223,9260,131573,114129,21875,21220,4107,393,1089,1096,44,15689,114317,21158,4059,985,893,502,984,3371,1170,1379,441,20159,16916,13411,20811,21624,6351,21386,21326,11701,20779,13851,5252,101695,7472,129671,131223,148078,147464,145796,152487,150846,150504,150506,150502,150294,149039,149040,148976,148664,149454,150697,146922,151898,152633,148960,151803,150188,154176,150075,147571,150429,153676,149073,151659,153146,20593,20918,112300,21509,21825,154982,154364,153344,162147,161964,161474,160803,160275,159886,159452,159309,159042,158931,157692,157071,156631,156623,156131,156110,156109,156106,156105,156099,156092,156080,156077,156062,155908,155890,155735,155645,155329,155326,155322,155319,155314,154768,154692,154392,153800,153658,153498,153497,153495,153491,153471,153467,153406,152677,151799,151380,149118,147850,161410,158895,155502,154473,155227,156822,158595,159322,154745,151513,150970,160850,148149,161440,153687,154525,148370,156841,160173,151606,160829,154876,158640,155158,153452,159839,159807,158991,160088,155399,151896,161632,154983,161923,160962,159751,160728,156017,154924,160382,158990,156053,155738,159494,159490,155068,138612,160789,159582,155839,158870,157638,155291,160054,147216,158997,154785,155211,153841,147511,153492,161802,161441,159926,158988,158928,158927,158830,158791,157654,156632,156082,155223,155168,154967,154789,153493,148862,147729,147189,159110,153494,160089,158869,155221,159107,158983,151384,158925,155220,155325,151632,153496,157127,157349,157331,153499,156759,156809,156189,155327,155193,151018,156001,155093,153791,151067,158643,155195,155884,155723,148401,155767,155634,155222,158570,155775,125910,155348,154828,148970,153322,155092,154678,154953,153412,154150,154688,154020,154001,138611,153986,153777,153424,153982,151691,153973,153200,151635,148112,153840,152213,148179,154539,155525,154540,153966,154385,152212,151128,141775,160856,151126,150080,153964,151063,150947,152211,149703,154178,149799,149498,148226,148295,147886,149071,146729,159581,146730,149098,154081,158676,146923,148821,152005,149346,144993,154386,132679,154974,143287,157304,150505,139079,137537,157074,127227,148002,147996,143293,154978,150201,157417,157172,145903,156907,147764,157171,154197,154196,120325,155918,122536,120757,153521,118971,155253,155252,154006,111516,108146,152486,150005,154125,106921,100183,148584,155017,154956,155249,21742,156009,110639,155014,155254,128020,21741,87478,148979,154146,150078,148978,147815,148977,102159,156909,148975,99643,147765,154100,21542,20892,154147,148974,19287,151281,156905,16183,16964,155740,147814,158700,12123,101497,13249,13247,148973,16756,10519,10108,8078,158619,119835,126871,3917,7547,158541,156024,154121,158699,1099,148745,150084,95,206,155739,150079,151627,2467,96,12589,723,17719,147725,149939,3875,82,926,147810,153395,3009,163329,163326,163151,163144,163140,163139,162987,162921,162890,162842,162682,162670,162669,163327,163134,163146,162722,163024,162803,162720,162291,163542,163263,163205,163136,163132,163079,162993,163417,163256,163339,162716,162529,161981,162285,163544,163363,163143,162314,166873,168013,173533] diff --git a/src/graphql.js b/src/graphql.js index 8520dcba..d44f133f 100644 --- a/src/graphql.js +++ b/src/graphql.js @@ -235,6 +235,137 @@ query($page: Int,$name: String){ } `; +const backupQueryManga = ` +query($name: String!){ + MediaListCollection(userName: $name, type: MANGA){ + lists{ + name + isCustomList + isSplitCompletedList + entries{ + ... mediaListEntry + } + } + } + User(name: $name){ + name + id + mediaListOptions{ + scoreFormat + rowOrder + animeList{ + sectionOrder + splitCompletedSectionByFormat + customLists + advancedScoring + advancedScoringEnabled + } + mangaList{ + sectionOrder + splitCompletedSectionByFormat + customLists + advancedScoring + advancedScoringEnabled + } + } + } +} + +fragment mediaListEntry on MediaList{ + mediaId + status + progress + progressVolumes + repeat + notes + priority + hiddenFromStatusLists + customLists + advancedScores + startedAt{ + year + month + day + } + completedAt{ + year + month + day + } + updatedAt + createdAt + media{ + idMal + title{romaji native english} + } + score +}`; + +const backupQueryAnime = ` +query($name: String!){ + MediaListCollection(userName: $name, type: ANIME){ + lists{ + name + isCustomList + isSplitCompletedList + entries{ + ... mediaListEntry + } + } + } + User(name: $name){ + name + id + mediaListOptions{ + scoreFormat + rowOrder + animeList{ + sectionOrder + splitCompletedSectionByFormat + customLists + advancedScoring + advancedScoringEnabled + } + mangaList{ + sectionOrder + splitCompletedSectionByFormat + customLists + advancedScoring + advancedScoringEnabled + } + } + } +} + +fragment mediaListEntry on MediaList{ + mediaId + status + progress + repeat + notes + priority + hiddenFromStatusLists + customLists + advancedScores + startedAt{ + year + month + day + } + completedAt{ + year + month + day + } + updatedAt + createdAt + media{ + idMal + title{romaji native english} + } + score +}` + const ANILIST_WEIGHT = 41;//weighting center for the weighted score formula let APIlimit = 90; @@ -310,6 +441,10 @@ else{ console.warn("BroadcastChannel not available. " + script_type + " will not be able to share cached data between tabs") } } +let aniCastFailure = function(error){ + aniCast = {postMessage: function(){}};//If broadcasting stops working for some reason, default to stop using it. + console.warn("BroadcastChannel failed",error) +} //mandatory: query,variables,callback //optional: cacheKey, and optionally even then, how long the item is fresh in the cache function generalAPIcall(query,variables,callback,cacheKey,timeFresh,useLocalStorage,overWrite,oldCallback){ @@ -405,7 +540,12 @@ function generalAPIcall(query,variables,callback,cacheKey,timeFresh,useLocalStor } } } - aniCast.postMessage({type:"cache",key:cacheKey,value:saltedHam}); + try{ + aniCast.postMessage({type:"cache",key:cacheKey,value:saltedHam}); + } + catch(e){ + aniCastFailure(e) + } } } }; @@ -630,7 +770,12 @@ function authAPIcall(query,variables,callback,cacheKey,timeFresh,useLocalStorage } else{ sessionStorage.setItem(cacheKey,saltedHam); - aniCast.postMessage({type:"cache",key:cacheKey,value:saltedHam}) + try{ + aniCast.postMessage({type:"cache",key:cacheKey,value:saltedHam}) + } + catch(e){ + aniCastFailure(e) + } } } }; diff --git a/src/modules/addActivityTimeline.js b/src/modules/addActivityTimeline.js index ef7718bf..340a7898 100644 --- a/src/modules/addActivityTimeline.js +++ b/src/modules/addActivityTimeline.js @@ -180,5 +180,71 @@ query($userId: Int,$mediaId: Int,$page: Int){ } return } - return + let favFindQuery = `query ( + $mediaId: Int, + $page: Int +){ + Page (page: $page) { + mediaList (mediaId: $mediaId, sort: SCORE_DESC) { + scoreRaw: score(format: POINT_100) user { + name favourites {${URLstuff[1]} {nodes {id}} +}}}}} +`; + create("hr",false,false,followingLocation.parentNode); + let findFavs = create("div",false,false,followingLocation.parentNode); + let findFavsButton = create("button",["button","hohButton"],"People with this in favs",findFavs); + findFavsButton.onclick = async function(){ + let resultsArea = create("div",false,false,findFavs); + let searchStatus = create("div",false,"searching...",resultsArea); + let searchResults = create("div",false,false,resultsArea); + let userList = new Map(); + let caller = async function(page){ + const {data, errors} = await anilistAPI(favFindQuery, { + variables: {page: page, mediaId: parseInt(URLstuff[2])}, + cacheKey: "hohFavFinder" + page + "id" + parseInt(URLstuff[2]), + duration: 10*60*1000 + }); + if(errors){ + searchStatus.innerText = "error searching page " + page; + return + } + else{ + searchStatus.innerText = "searching... page " + page; + data.Page.mediaList.forEach(listing => { + if(listing.user && listing.user.favourites){ + if(listing.user.favourites[URLstuff[1]].nodes.some(fav => fav.id === parseInt(URLstuff[2]))){ + userList.set(listing.user.name, { + isFavourite: true, + score: listing.scoreRaw, + first: listing.user.favourites[URLstuff[1]].nodes[0].id === parseInt(URLstuff[2]) + }) + } + } + }) + removeChildren(searchResults); + Array.from(userList).sort((b,a) => + (+a[1].first) - (+b[1].first) + || a[1].scoreRaw - b[1].scoreRaw + ).forEach(user => { + let row = create("p",false,false,searchResults); + create("a",false,user[0],row).href = "https://anilist.co/user/" + user[0]; + if(user[1].first){ + create("span",false," #1",row) + } + }) + if(data.Page.mediaList.length && (page < 15 || (userList.size < 3 && page < 20))){ + caller(page + 1) + } + else{ + if(userList.size === 0){ + searchStatus.innerText = "search completed. No users found." + } + else{ + searchStatus.innerText = "search completed." + } + } + } + } + caller(1) + } } diff --git a/src/modules/addComparisionPage.js b/src/modules/addComparisionPage.js index 69d50683..be753ae3 100644 --- a/src/modules/addComparisionPage.js +++ b/src/modules/addComparisionPage.js @@ -47,10 +47,10 @@ function addComparisionPage(){ create("h3",false,"What is this?",scrollableContent); create("p",false,"This is a tool for comparing the ratings of two or more users. To add another user, write their name and click the 'add' button in the rightmost colum",scrollableContent); create("h3",false,"General options",scrollableContent); - create("p",false,"Filter: What media type to include",scrollableContent); - create("p",false,"Min. ratings: How many of the users in the table must have given something a rating for it to appear in the table",scrollableContent); - create("p",false,"Individual rating systems: By default, all ratings are converted to the 1-100 scale. This overides that, and displays ratings as smiley faces, 1-10 points, stars, or whatver else people use. A golden star next to the rating means the user has this on their favourite list.",scrollableContent); - create("p",false,"Normalise ratings: Converts ratings of users based on their average rating and rating spread.",scrollableContent); + create("p",false,"Filter: What media type to include.",scrollableContent); + create("p",false,"Min. ratings: How many of the users in the table must have given something a rating for it to appear in the table.",scrollableContent); + create("p",false,"Individual rating systems: By default, all ratings are converted to the 1-100 scale. When you override this, ratings appear as smiley faces, 1-10 points, stars, or whatver else people use. A golden star next to the rating means the user has this on their favourite list.",scrollableContent); + create("p",false,"Normalise ratings: Converts ratings to a unified scale based on their average and rating spread.",scrollableContent); create("p",false,"Colour entire cell: Cell colour shows users media status (completed, watching, etc.)",scrollableContent); create("h3",false,"Aggregate column",scrollableContent); create("p",false,"Shows 'average' by default. Other settings of interest: 'Average~0' adds a 0 score to every average, making the score more pessimistic towards entries few people have rated.",scrollableContent); @@ -58,14 +58,17 @@ function addComparisionPage(){ create("h3",false,"User filters",scrollableContent); create("p",false,"List filters, click to cycle through",scrollableContent); create("span","hohFilterSort","☵",scrollableContent); - create("span",false,"Neutral",scrollableContent); + create("span",false,"Neutral. This user doesn't affect what media gets displayed.",scrollableContent); + create("br",false,false,scrollableContent); create("br",false,false,scrollableContent); create("span","hohFilterSort","✓",scrollableContent,"color:green"); - create("span",false,"Only include media this person has rated",scrollableContent); + create("span",false,"Only display media this person has rated",scrollableContent); + create("br",false,false,scrollableContent); create("br",false,false,scrollableContent); create("span","hohFilterSort","✕",scrollableContent,"color:red"); - create("span",false,"Only include media this person has NOT rated (mark yourself with this to find good stuff you haven't seen yet)",scrollableContent); + create("span",false,"Only display media this person has NOT rated (mark yourself with this to find recommendations)",scrollableContent); create("br",false,false,scrollableContent); + create("p",false,"Status filters (tiny dot). Click to cycle through (reading, dropped, not on list, etc.)",scrollableContent); } let formatFilterLabel = create("span",false,"Filter:",compareArea); formatFilterLabel.style.padding = "5px"; @@ -88,6 +91,8 @@ function addComparisionPage(){ addOption("MANGA","Manga"); addOption("NOVEL","Novel"); addOption("ONE_SHOT","One Shot"); + addOption("MANHWA","Manhwa"); + addOption("MANHUA","Manhua"); } let ratingFilterLabel = create("span",false,translate("$compare_minRatings"),compareArea); ratingFilterLabel.style.padding = "5px"; @@ -109,11 +114,12 @@ function addComparisionPage(){ sequelFilter.checked = false; if(type === "manga"){ sequelLabel.style.display = "none"; - sequelFilter.style.display = "none" + sequelFilter.parentNode.style.display = "none" } let tableContainer = create("table",false,false,compareArea); let table = create("tbody",false,false,tableContainer); let digestSelect = {value:"average"};//placeholder + let digestValue = "average"; let shows = [];//the stuff we are displaying in the table let users = []; let listCache = {};//storing raw anime data @@ -164,7 +170,8 @@ function addComparisionPage(){ formatFilter: formatFilter.value, digestValue: digestSelect.value, type: capitalize(type), - version: "1.00", + version: "1.1", + description: "Anilist media list comparision", scriptInfo: scriptInfo, url: document.URL, timeStamp: NOW(), @@ -342,7 +349,7 @@ function addComparisionPage(){ return (!user.status || show.status[index] === user.status); }); if(formatFilter.value !== "all"){ - if(formatFilter.value !== show.format){ + if(formatFilter.value !== show.format && !((formatFilter.value === "MANHWA" && show.country === "KR") || (formatFilter.value === "MANHUA" && show.country === "CN"))){ return } } @@ -516,8 +523,12 @@ function addComparisionPage(){ if(["title","titleInverse","user","userInverse"].includes(ratingMode)){ digestSelect.value = ratingMode; } + if(digestValue){ + digestSelect.value = digestValue + } digestSelect.oninput = function(){ ratingMode = digestSelect.value; + digestValue = digestSelect.value; sortShows(); drawTable(); changeUserURL() @@ -553,7 +564,7 @@ function addComparisionPage(){ }; userRow.appendChild(addCel); let headerRow = create("tr"); - let typeCel = create("th"); + let typeCel = create("th",false,false,headerRow); let downArrowa = create("span","hohArrowSort","▼",typeCel); downArrowa.onclick = function(){ ratingMode = "title"; @@ -567,7 +578,6 @@ function addComparisionPage(){ sortShows(); drawTable() }; - headerRow.appendChild(typeCel); let digestSortCel = create("td"); digestSortCel.style.textAlign = "center"; let downArrow = create("span","hohArrowSort","▼",digestSortCel); @@ -624,6 +634,11 @@ function addComparisionPage(){ let downArrow = create("span","hohArrowSort","▼"); downArrow.onclick = function(){ ratingMode = "user"; + let active = headerRow.querySelector(".hohArrowSelected"); + if(active){ + active.classList.remove("hohArrowSelected") + } + downArrow.classList.add("hohArrowSelected") guser = index; sortShows(); drawTable() @@ -631,6 +646,11 @@ function addComparisionPage(){ let upArrow = create("span","hohArrowSort","▲"); upArrow.onclick = function(){ ratingMode = "userInverse"; + let active = headerRow.querySelector(".hohArrowSelected"); + if(active){ + active.classList.remove("hohArrowSelected") + } + upArrow.classList.add("hohArrowSelected") guser = index; sortShows(); drawTable() @@ -678,6 +698,7 @@ function addComparisionPage(){ let handleData = function(data,cached){ users.push({ name: userName, + id: data.data.MediaListCollection.user.id, demand: (paramDemand ? (paramDemand === "-" ? -1 : 1) : 0), system: data.data.MediaListCollection.user.mediaListOptions.scoreFormat, status: false @@ -729,6 +750,7 @@ function addComparisionPage(){ average: mediaEntry.scoreRaw, title: mediaEntry.media.title, format: mediaEntry.media.format, + country: mediaEntry.media.countryOfOrigin, score: Array(userIndeks).fill(null), scorePersonal: Array(userIndeks).fill(null), scoreNormal: Array(userIndeks).fill(null), @@ -851,6 +873,7 @@ fragment mediaListEntry on MediaList{ title{romaji native english} averageScore popularity + countryOfOrigin } }` const data = await anilistAPI(listQuery, { @@ -937,6 +960,7 @@ fragment mediaListEntry on MediaList{ } let paramSort = searchParams.get("sort"); if(paramSort){ + digestValue = paramSort; ratingMode = paramSort } let paramUsers = searchParams.get("users"); diff --git a/src/modules/addMoreStats.js b/src/modules/addMoreStats.js index 89b1214c..f1dc3a1f 100644 --- a/src/modules/addMoreStats.js +++ b/src/modules/addMoreStats.js @@ -2224,7 +2224,12 @@ function addMoreStats(){ scoreSum: 0, id: staff.node.id, name: staff.node.name, - roles: [] + roles: [], + ownChaptersRead: 0, + ownVolumesRead: 0, + ownCount: 0, + ownScoreCount: 0, + ownScoreSum: 0, } } staffMap[staff.node.id].roles.push(staff.role); @@ -2237,6 +2242,17 @@ function addMoreStats(){ staffMap[staff.node.id].scoreSum += media.scoreRaw; staffMap[staff.node.id].scoreCount++ } + if(!staff.role.toLowerCase().match(/assist(a|e)nt|storyboard|assistance/i)){ + if(media.chaptersRead || media.volumesRead){ + staffMap[staff.node.id].ownVolumesRead += media.volumesRead; + staffMap[staff.node.id].ownChaptersRead += media.chaptersRead; + staffMap[staff.node.id].ownCount++ + } + if(media.scoreRaw){ + staffMap[staff.node.id].ownScoreSum += media.scoreRaw; + staffMap[staff.node.id].ownScoreCount++ + } + } }) }); let staffList = []; @@ -2334,11 +2350,20 @@ function addMoreStats(){ create("a","newTab",staff.name.first + " " + (staff.name.last || ""),nameCel) .href = "/staff/" + staff.id; create("div",false,staff.count,row); - if(hasScores){ - create("div",false,(staff.scoreSum/staff.scoreCount).roundPlaces(2),row) + if(assistant_filter.checked){ + if(hasScores){ + create("div",false,(staff.scoreSum/staff.scoreCount).roundPlaces(2),row) + } + create("div",false,staff.chaptersRead,row); + create("div",false,staff.volumesRead,row) + } + else{ + if(hasScores){ + create("div",false,(staff.ownScoreSum/staff.ownScoreCount).roundPlaces(2),row) + } + create("div",false,staff.ownChaptersRead,row); + create("div",false,staff.ownVolumesRead,row) } - create("div",false,staff.chaptersRead,row); - create("div",false,staff.volumesRead,row) }); let csvButton = create("button",["csvExport","button","hohButton"],"CSV data",mangaStaff,"margin-top:10px;"); let jsonButton = create("button",["jsonExport","button","hohButton"],"JSON data",mangaStaff,"margin-top:10px;"); @@ -2389,39 +2414,111 @@ function addMoreStats(){ drawStaffList() }; countHeading.onclick = function(){ - staffList.sort( - (b,a) => a.count - b.count - || a.chaptersRead - b.chaptersRead - || a.volumesRead - b.volumesRead - || a.scoreSum/a.scoreCount - b.scoreSum/b.scoreCount - ); + if(assistant_filter.checked){ + staffList.sort( + (b,a) => a.count - b.count + || a.chaptersRead - b.chaptersRead + || a.volumesRead - b.volumesRead + || a.scoreSum/a.scoreCount - b.scoreSum/b.scoreCount + || a.ownCount - b.ownCount + || a.ownChaptersRead - b.ownChaptersRead + || a.ownVolumesRead - b.ownVolumesRead + || a.ownScoreSum/a.ownScoreCount - b.ownScoreSum/b.ownScoreCount + ) + } + else{ + staffList.sort( + (b,a) => a.ownCount - b.ownCount + || a.ownChaptersRead - b.ownChaptersRead + || a.ownVolumesRead - b.ownVolumesRead + || a.ownScoreSum/a.ownScoreCount - b.ownScoreSum/b.ownScoreCount + || a.count - b.count + || a.chaptersRead - b.chaptersRead + || a.volumesRead - b.volumesRead + || a.scoreSum/a.scoreCount - b.scoreSum/b.scoreCount + ) + } drawStaffList() }; scoreHeading.onclick = function(){ - staffList.sort( - (b,a) => a.scoreSum/a.scoreCount - b.scoreSum/b.scoreCount - || a.count - b.count - || a.chaptersRead - b.chaptersRead - || a.volumesRead - b.volumesRead - ); + if(assistant_filter.checked){ + staffList.sort( + (b,a) => a.scoreSum/a.scoreCount - b.scoreSum/b.scoreCount + || a.count - b.count + || a.chaptersRead - b.chaptersRead + || a.volumesRead - b.volumesRead + || a.ownScoreSum/a.ownScoreCount - b.ownScoreSum/b.ownScoreCount + || a.ownCount - b.ownCount + || a.ownChaptersRead - b.ownChaptersRead + || a.ownVolumesRead - b.ownVolumesRead + ) + } + else{ + staffList.sort( + (b,a) => a.ownScoreSum/a.ownScoreCount - b.ownScoreSum/b.ownScoreCount + || a.ownCount - b.ownCount + || a.ownChaptersRead - b.ownChaptersRead + || a.ownVolumesRead - b.ownVolumesRead + || a.scoreSum/a.scoreCount - b.scoreSum/b.scoreCount + || a.count - b.count + || a.chaptersRead - b.chaptersRead + || a.volumesRead - b.volumesRead + ) + } drawStaffList() }; timeHeading.onclick = function(){ - staffList.sort( - (b,a) => a.chaptersRead - b.chaptersRead - || a.volumesRead - b.volumesRead - || a.count - b.count - || a.scoreSum/a.scoreCount - b.scoreSum/b.scoreCount - ); + if(assistant_filter.checked){ + staffList.sort( + (b,a) => a.chaptersRead - b.chaptersRead + || a.volumesRead - b.volumesRead + || a.count - b.count + || a.scoreSum/a.scoreCount - b.scoreSum/b.scoreCount + || a.ownChaptersRead - b.ownChaptersRead + || a.ownVolumesRead - b.ownVolumesRead + || a.ownCount - b.ownCount + || a.ownScoreSum/a.ownScoreCount - b.ownScoreSum/b.ownScoreCount + ) + } + else{ + staffList.sort( + (b,a) => a.ownChaptersRead - b.ownChaptersRead + || a.ownVolumesRead - b.ownVolumesRead + || a.ownCount - b.ownCount + || a.ownScoreSum/a.ownScoreCount - b.ownScoreSum/b.ownScoreCount + || a.chaptersRead - b.chaptersRead + || a.volumesRead - b.volumesRead + || a.count - b.count + || a.scoreSum/a.scoreCount - b.scoreSum/b.scoreCount + ) + } drawStaffList() }; volumeHeading.onclick = function(){ - staffList.sort( - (b,a) => a.volumesRead - b.volumesRead - || a.chaptersRead - b.chaptersRead - || a.count - b.count - || a.scoreSum/a.scoreCount - b.scoreSum/b.scoreCount - ); + if(assistant_filter.checked){ + staffList.sort( + (b,a) => a.volumesRead - b.volumesRead + || a.chaptersRead - b.chaptersRead + || a.count - b.count + || a.scoreSum/a.scoreCount - b.scoreSum/b.scoreCount + || a.ownVolumesRead - b.ownVolumesRead + || a.ownChaptersRead - b.ownChaptersRead + || a.ownCount - b.ownCount + || a.ownScoreSum/a.ownScoreCount - b.ownScoreSum/b.ownScoreCount + ) + } + else{ + staffList.sort( + (b,a) => a.ownVolumesRead - b.ownVolumesRead + || a.ownChaptersRead - b.ownChaptersRead + || a.ownCount - b.ownCount + || a.ownScoreSum/a.ownScoreCount - b.ownScoreSum/b.ownScoreCount + || a.volumesRead - b.volumesRead + || a.chaptersRead - b.chaptersRead + || a.count - b.count + || a.scoreSum/a.scoreCount - b.scoreSum/b.scoreCount + ) + } drawStaffList() } }; diff --git a/src/modules/additionalTranslation.js b/src/modules/additionalTranslation.js index 626c8735..9b6960dc 100644 --- a/src/modules/additionalTranslation.js +++ b/src/modules/additionalTranslation.js @@ -393,6 +393,31 @@ exportModule({ lookup: ".overview .status-distribution > h2", replacement: "$submenu_statusDistribution" }, + { + lookup: ".status-distribution .statuses .status .name", + multiple: [ + { + ofText: "Current", + replacement: capitalize(translate("$mediaStatus_current")) + }, + { + ofText: "Planning", + replacement: capitalize(translate("$mediaStatus_planning")) + }, + { + ofText: "Dropped", + replacement: capitalize(translate("$mediaStatus_dropped")) + }, + { + ofText: "Paused", + replacement: capitalize(translate("$mediaStatus_paused")) + }, + { + ofText: "Completed", + replacement: capitalize(translate("$mediaStatus_completed")) + } + ] + }, { lookup: ".overview .trailer > h2", replacement: "$submenu_trailer" @@ -441,6 +466,10 @@ exportModule({ { lookup: ".sidebar .data-set .type", multiple: [ + { + ofText: "Airing", + replacement: "$dataSet_airing" + }, { ofText: "Format", replacement: "$dataSet_format" diff --git a/src/modules/anisongs.js b/src/modules/anisongs.js index b4fc26ef..45629403 100644 --- a/src/modules/anisongs.js +++ b/src/modules/anisongs.js @@ -177,6 +177,9 @@ async function launch(currentid) { const {idMal: mal_id, status} = data.Media; if (mal_id) { const {data} = await API.getSongs(mal_id); + if(!data){ + return "No songs" + } let {openings: opening_themes, endings: ending_themes} = data; // add songs to cache if they're not empty and query videos if (opening_themes.length || ending_themes.length) { diff --git a/src/modules/hollowHearts.js b/src/modules/hollowHearts.js index c81e5e97..dfad9e80 100644 --- a/src/modules/hollowHearts.js +++ b/src/modules/hollowHearts.js @@ -20,41 +20,41 @@ exportModule({ css: ` /* Like heart */ .action.likes .button, -.like-wrap.thread_comment .button{ +.like-wrap.thread_comment .button { color: rgb(var(--color-blue-dim)); } .action.likes .button:hover, -.like-wrap.thread_comment .button:hover{ +.like-wrap.thread_comment .button:hover { color: rgb(var(--color-blue)); } .action.likes .button .fa-heart, -.like-wrap.thread_comment .button .fa-heart{ +.like-wrap.thread_comment .button .fa-heart { color: #0000; stroke: rgb(var(--color-blue-dim)); stroke-width: 70; - stroke-alignment: inner; - font-size: 0.870em; + font-size: 0.87em; padding-bottom: 0.08em; padding-top: 0.05em; } .action.likes .button .fa-heart:hover, -.like-wrap.thread_comment .button .fa-heart:hover{ +.like-wrap.thread_comment .button .fa-heart:hover { stroke: rgb(var(--color-blue)); } .action.likes .button.liked, -.like-wrap.thread_comment .button.liked{ +.like-wrap.thread_comment .button.liked { color: rgb(var(--color-red)); } .action.likes .button.liked:hover, -.like-wrap.thread_comment .button.liked:hover{ - color: rgb(var(--color-blue-dim)); +.like-wrap.thread_comment .button.liked:hover { + --color-red: 246, 124, 144; + color: rgb(var(--color-red)); } .action.likes .button.liked:hover .fa-heart, -.like-wrap.thread_comment .button.liked:hover .fa-heart{ - color: rgb(var(--color-blue-dim)); +.like-wrap.thread_comment .button.liked:hover .fa-heart { + color: rgb(var(--color-red)); } .action.likes .button.liked .fa-heart, -.like-wrap.thread_comment .button.liked .fa-heart{ +.like-wrap.thread_comment .button.liked .fa-heart { color: var(--color-red); stroke: rgba(0, 0, 0, 0); stroke-width: 0; @@ -63,20 +63,23 @@ exportModule({ padding-top: 0; } .action.likes .button.liked .fa-heart:hover, -.like-wrap.thread_comment .button.liked .fa-heart:hover{ - color: rgb(var(--color-blue-dim)); +.like-wrap.thread_comment .button.liked .fa-heart:hover { + color: rgb(var(--color-red)); } /* forum thread, favourite like heart */ .like-wrap.thread .button .fa-heart, -.actions .favourite .fa-heart{ +.actions .favourite .fa-heart, +.studio .favourite .fa-heart { color: #0000; stroke: rgb(var(--color-white)); stroke-width: 70; } .like-wrap.thread .button.liked .fa-heart, .actions .favourite.liked .fa-heart, +.studio .favourite.liked .fa-heart, .like-wrap.thread .button.isFavourite .fa-heart, -.actions .favourite.isFavourite .fa-heart{ +.actions .favourite.isFavourite .fa-heart, +.studio .favourite.isFavourite .fa-heart { color: rgb(var(--color-white)) !important; stroke: rgba(0, 0, 0, 0) !important; } diff --git a/src/modules/interestingRecs.js b/src/modules/interestingRecs.js index 4937b76b..56cea43f 100644 --- a/src/modules/interestingRecs.js +++ b/src/modules/interestingRecs.js @@ -71,30 +71,40 @@ fragment stuff on MediaList{ `, {id: whoAmIid}, function(data){ + if(!data){ + let pairCard = create("div",["recommendation-pair-card","error"],"error loading data",fakeContent); + return + } let possRecs = []; data.data.Page.mediaList.concat(data.data.Page2.mediaList).forEach(entry => { entry.media.recommendations.nodes.forEach(node => { - possRecs.push({ - first: { - id: entry.media.id, - score: entry.rawScore, - title: entry.media.title, - siteUrl: entry.media.siteUrl, - coverImage: entry.media.coverImage - }, - second: { - id: node.mediaRecommendation.id, - mediaListEntry: node.mediaRecommendation.mediaListEntry, - title: node.mediaRecommendation.title, - siteUrl: node.mediaRecommendation.siteUrl, - averageScore: node.mediaRecommendation.averageScore, - coverImage: node.mediaRecommendation.coverImage - }, - rating: node.rating, - userRating: node.userRating - }) + if(node.mediaRecommendation){ + possRecs.push({ + first: { + id: entry.media.id, + score: entry.rawScore, + title: entry.media.title, + siteUrl: entry.media.siteUrl, + coverImage: entry.media.coverImage + }, + second: { + id: node.mediaRecommendation.id, + mediaListEntry: node.mediaRecommendation.mediaListEntry, + title: node.mediaRecommendation.title, + siteUrl: node.mediaRecommendation.siteUrl, + averageScore: node.mediaRecommendation.averageScore, + coverImage: node.mediaRecommendation.coverImage + }, + rating: node.rating, + userRating: node.userRating + }) + } }) }); + if(possRecs.length === 0){ + let pairCard = create("div",["recommendation-pair-card","error"],"no recommendations found :(",fakeContent); + return + } possRecs.filter( rec => ((!rec.second.mediaListEntry) || rec.second.mediaListEntry.status === "PLANNING") && rec.rating > 0 diff --git a/src/modules/keepAlive.js b/src/modules/keepAlive.js index 36cea244..64872f72 100644 --- a/src/modules/keepAlive.js +++ b/src/modules/keepAlive.js @@ -22,7 +22,12 @@ new MutationObserver(function(){ } window.al_token = token; //alert the other tabs so they don't have to do the same - aniCast.postMessage({type:"sessionToken",value:token}); + try{ + aniCast.postMessage({type:"sessionToken",value:token}); + } + catch(e){ + aniCastFailure(e) + } //fetch the alert list again, they may have piled up while fetching Array.from(document.querySelectorAll(".el-message--error.is-closable")).forEach(message => { if(message.textContent === "Session expired, please refresh"){ diff --git a/src/modules/mangaGuess.js b/src/modules/mangaGuess.js index ae63b3e5..8022ef48 100644 --- a/src/modules/mangaGuess.js +++ b/src/modules/mangaGuess.js @@ -21,12 +21,12 @@ function mangaGuess(cleanAnime,id){ return } let status = Array.from(sidebarData.querySelectorAll(".data-set .type")).find(element => element.innerText === "Status" || element.innerText === translate("$dataSet_status")); - if(!status || status.parentNode.childElementCount != 2){ + if(!status || status.parentNode.childElementCount !== 2){ return true } observer && observer.disconnect(); let possibleReleaseStatus = status.parentNode.children[1]; - if(possibleReleaseStatus.firstChild.nodeValue != "Releasing"){ + if(possibleReleaseStatus.firstChild.nodeValue !== "Releasing" && possibleReleaseStatus.firstChild.nodeValue !== "Hiatus"){ return } if( diff --git a/src/modules/mediaList.js b/src/modules/mediaList.js index 282f0431..45340564 100644 --- a/src/modules/mediaList.js +++ b/src/modules/mediaList.js @@ -237,65 +237,14 @@ exportModule({ if(URLstuff[2] === "mangalist"){ let alMangaButton = create("button",["button","hohButton"],translate("$export_JSON"),extraFilters); alMangaButton.onclick = function(){ - generalAPIcall( - ` -query($name: String!){ - MediaListCollection(userName: $name, type: MANGA){ - lists{ - name - isCustomList - isSplitCompletedList - entries{ - ... mediaListEntry - } - } - } - User(name: $name){ - name - id - mediaListOptions{ - scoreFormat - } - } -} - -fragment mediaListEntry on MediaList{ - mediaId - status - progress - progressVolumes - repeat - notes - priority - hiddenFromStatusLists - customLists - advancedScores - startedAt{ - year - month - day - } - completedAt{ - year - month - day - } - updatedAt - createdAt - media{ - idMal - title{romaji native english} - } - score -} - `, + generalAPIcall(backupQueryManga, {name: decodeURIComponent(URLstuff[1])}, function(data){ if(!data){ alert("Export failed"); return } - data.data.version = "1.01"; + data.data.version = "1.02"; data.data.scriptInfo = scriptInfo; data.data.type = "MANGA"; data.data.url = document.URL; @@ -309,63 +258,14 @@ fragment mediaListEntry on MediaList{ let alAnimeButton = create("button",["button","hohButton"],"Export JSON",extraFilters); alAnimeButton.onclick = function(){ generalAPIcall( - ` -query($name: String!){ - MediaListCollection(userName: $name, type: ANIME){ - lists{ - name - isCustomList - isSplitCompletedList - entries{ - ... mediaListEntry - } - } - } - User(name: $name){ - name - id - mediaListOptions{ - scoreFormat - } - } -} - -fragment mediaListEntry on MediaList{ - mediaId - status - progress - repeat - notes - priority - hiddenFromStatusLists - customLists - advancedScores - startedAt{ - year - month - day - } - completedAt{ - year - month - day - } - updatedAt - createdAt - media{ - idMal - title{romaji native english} - } - score -} - `, + backupQueryAnime, {name: decodeURIComponent(URLstuff[1])}, function(data){ if(!data){ alert("Export failed"); return } - data.data.version = "1.01"; + data.data.version = "1.02"; data.data.scriptInfo = scriptInfo; data.data.type = "ANIME"; data.data.url = document.URL; diff --git a/src/modules/moreImports.js b/src/modules/moreImports.js index 223c0971..4d1c831e 100644 --- a/src/modules/moreImports.js +++ b/src/modules/moreImports.js @@ -563,63 +563,14 @@ function moreImports(){ let alAnimeButton = create("button",["button","hohButton"],"Export Anime",alAnimeExp); alAnimeButton.onclick = function(){ generalAPIcall( - ` - query($name: String!){ - MediaListCollection(userName: $name, type: ANIME){ - lists{ - name - isCustomList - isSplitCompletedList - entries{ - ... mediaListEntry - } - } - } - User(name: $name){ - name - id - mediaListOptions{ - scoreFormat - } - } - } - - fragment mediaListEntry on MediaList{ - mediaId - status - progress - repeat - notes - priority - hiddenFromStatusLists - customLists - advancedScores - startedAt{ - year - month - day - } - completedAt{ - year - month - day - } - updatedAt - createdAt - media{ - idMal - title{romaji native english} - } - score - } - `, + backupQueryAnime, {name: userName.value}, function(data){ if(!data){ alert("Export failed"); return } - data.data.version = "1.01"; + data.data.version = "1.02"; data.data.scriptInfo = scriptInfo; data.data.type = "ANIME"; data.data.url = document.URL; @@ -632,64 +583,14 @@ function moreImports(){ let alMangaButton = create("button",["button","hohButton"],"Export Manga",alAnimeExp); alMangaButton.onclick = function(){ generalAPIcall( - ` - query($name: String!){ - MediaListCollection(userName: $name, type: MANGA){ - lists{ - name - isCustomList - isSplitCompletedList - entries{ - ... mediaListEntry - } - } - } - User(name: $name){ - name - id - mediaListOptions{ - scoreFormat - } - } - } - - fragment mediaListEntry on MediaList{ - mediaId - status - progress - progressVolumes - repeat - notes - priority - hiddenFromStatusLists - customLists - advancedScores - startedAt{ - year - month - day - } - completedAt{ - year - month - day - } - updatedAt - createdAt - media{ - idMal - title{romaji native english} - } - score - } - `, + backupQueryManga, {name: userName.value}, function(data){ if(!data){ alert("Export failed"); return } - data.data.version = "1.01"; + data.data.version = "1.02"; data.data.scriptInfo = scriptInfo; data.data.type = "MANGA"; data.data.url = document.URL; @@ -751,7 +652,8 @@ function moreImports(){ return; } } -// + //version 1.01: added type ANIME or MANGA to list files + //version 1.02: added rowOrder and animeList and mangaList on mediaListOptions if(data.User.name.toLowerCase() !== whoAmI.toLowerCase()){ resultsWarningsAL.innerText = "List for \"" + data.User.name + "\" loaded, but currently signed in as \"" + whoAmI + "\". Are you sure this is right?" } diff --git a/src/modules/noAutoplay.js b/src/modules/noAutoplay.js index 5601deae..3477cc8c 100644 --- a/src/modules/noAutoplay.js +++ b/src/modules/noAutoplay.js @@ -1,13 +1,7 @@ exportModule({ id: "noAutoplay", description: "$noAutoplay_description", - extendedDescription: ` -Your browser may also provide ways to control this: - -Firefox: about:config > media.autoplay has a wide range of options - -Chrome: chrome://flags/#autoplay-policy -`, + extendedDescription: "$noAutoplay_extendedDescription", isDefault: false, categories: ["Feeds"], visible: true diff --git a/src/modules/nonJumpScroll.js b/src/modules/nonJumpScroll.js index 72eae650..6bd1972f 100644 --- a/src/modules/nonJumpScroll.js +++ b/src/modules/nonJumpScroll.js @@ -20,65 +20,69 @@ exportModule({ css: ` /* Scrollbar */ * { - scrollbar-color: rgb(var(--color-blue)) rgba(0, 0, 0, 0); + scrollbar-color: rgb(var(--color-blue)) rgba(0, 0, 0, 0.2); scrollbar-width: thin; } ::-webkit-scrollbar { width: 4px; height: 8px; } - ::-webkit-scrollbar-button { display: none; } - ::-webkit-scrollbar-track { background-color: #1110; width: 0px; } - ::-webkit-scrollbar-track-piece { display: none; } - ::-webkit-scrollbar-thumb { background-color: rgb(var(--color-blue)); } - -.markdown::-webkit-scrollbar-thumb, -.about .content-wrap::-webkit-scrollbar-thumb { +.activity-markdown .markdown { + overflow-y: scroll !important; + scrollbar-color: rgba(0, 0, 0, 0) rgba(0, 0, 0, 0); +} +.activity-markdown .markdown:hover { + scrollbar-color: rgb(var(--color-blue)) rgba(0, 0, 0, 0); +} +.activity-markdown .markdown::-webkit-scrollbar-thumb, +.activity-markdown .markdown .about .content-wrap::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0); } - -.markdown:hover::-webkit-scrollbar-thumb, -.about .content-wrap:hover::-webkit-scrollbar-thumb { +.activity-markdown .markdown:hover::-webkit-scrollbar-thumb, +.activity-markdown .markdown .about .content-wrap:hover::-webkit-scrollbar-thumb { background-color: rgb(var(--color-blue)); } - ::-webkit-scrollbar-corner { display: none; } - -.markdown { - overflow-y: scroll!important; +/*::-webkit-resizer { + display: none; +}*/ +.about .content-wrap { + overflow-y: scroll !important; scrollbar-color: rgba(0, 0, 0, 0) rgba(0, 0, 0, 0); } -.markdown:hover { - scrollbar-color: rgb(var(--color-blue)) rgba(0, 0, 0, 0); -} - .about .content-wrap .markdown { - overflow: hidden!important; + overflow: hidden !important; } - -.about .content-wrap { - overflow-y: scroll!important; - scrollbar-color: rgba(0, 0, 0, 0) rgba(0, 0, 0, 0); -} - .about .content-wrap:hover { - overflow-y: scroll!important; + overflow-y: scroll !important; scrollbar-color: rgb(var(--color-blue)) rgba(0, 0, 0, 0); } +.about .content-wrap .markdown::after { + content: ''; + display: block; + height: 10px; + width: 10px; +} +.list-editor .custom-lists { + overflow-y: auto; +} +.list-editor .custom-lists:hover { + margin-right: 0; +} ` }) diff --git a/src/modules/recommendationsFade.js b/src/modules/recommendationsFade.js new file mode 100644 index 00000000..a4735ec3 --- /dev/null +++ b/src/modules/recommendationsFade.js @@ -0,0 +1,9 @@ +exportModule({ + id: "recommendationsFade", + description: "$recommendationsFade_description", + isDefault: false, + importance: 0, + categories: ["Media","Newly Added"], + visible: true, + css: ".recommendation-card .cover:has(.hohStatusDot):not(:hover){opacity: 0.3 !important;}" +}) \ No newline at end of file diff --git a/src/modules/reinaDark.js b/src/modules/reinaDark.js index 9405b2e0..fce5c462 100644 --- a/src/modules/reinaDark.js +++ b/src/modules/reinaDark.js @@ -87,14 +87,6 @@ if(useScripts.reinaDark){ --color-gray-100: 21, 31, 46; --color-gray-200: 11, 22, 34; } -#nav { - background: rgb(20, 25, 31); - color: #eaeeff!important; -} -.media .nav .link.router-link-exact-active.router-link-active, -.user .nav .link.router-link-exact-active.router-link-active{ - background: rgba(var(--color-foreground-grey-dark)); -} .site-theme-dark { --color-blue: 120, 180, 255; --color-shadow-blue: 8, 10, 16, 0.5; @@ -128,13 +120,135 @@ if(useScripts.reinaDark){ --color-blue-900: 11, 70, 113; --color-blue-1000: 16, 61, 85; } -/* Small screens adjustment */ -.page-content > .container { - @media screen and (max-width: 600px) { +/* Navbar */ +#app .nav-unscoped { + background: #14191f; + color: #eaeeff; +} +#app .nav-unscoped.transparent { + background: rgba(20, 25, 31, 0.5); + color: #eaeeff; +} +#app .nav-unscoped.transparent:hover { + background: #14191f; + color: #eaeeff; +} +#app .nav-unscoped .dropdown::before { + border-bottom-color: rgb(var(--color-background-100)); +} +.nav[data-v-e2f25004] { + background: #181a32; +} +.banner-image[data-v-e2f25004] { + filter: grayscale(50%); +} +/* Mobile and small screens adjustments */ +@media screen and (max-width: 760px) { + .page-content > .container, + .page-content > .user > .container { padding-left: 2px; padding-right: 2px; } } +/* Increase font size */ +@media screen and (max-width: 760px) { + html { + font-size: 11px; + } +} +/* Enable edit button on mobile */ +@media screen and (max-width: 760px) { + .media.media-page-unscoped .sidebar { + display: grid; + gap: 20px; + margin-bottom: 20px; + } + .media.media-page-unscoped .sidebar > * { + grid-column: span 2; + } + .media.media-page-unscoped .sidebar .review.button { + grid-row: 1; + grid-column: 2; + width: 100%; + height: 40px; + margin: 0; + display: flex; + } + .media.media-page-unscoped .sidebar .review.button.edit { + grid-column: 1; + } + .media.media-page-unscoped .sidebar .review.button.edit span::after { + content: ' Database Entry'; + } + .media.media-page-unscoped .sidebar .data { + margin-bottom: 0; + } + .media.media-page-unscoped .sidebar .rankings { + grid-row: 4; + display: grid; + gap: 10px; + } + .media.media-page-unscoped .sidebar .rankings .ranking { + margin-bottom: 0; + } + .media.media-page-unscoped .sidebar .rankings .ranking.rated { + grid-column: 1; + } + .media.media-page-unscoped .sidebar .rankings .ranking.popular { + grid-column: 2; + } +} +@media screen and (max-width: 450px) { + .media.media-page-unscoped .sidebar .rankings .ranking.rated { + grid-column: 1; + grid-row: 1; + } + .media.media-page-unscoped .sidebar .rankings .ranking.popular { + grid-column: 1; + grid-row: 2; + } +} +/* Profile page mobile edits */ +@media screen and (max-width: 760px) { + .user.user-page-unscoped .overview .section .about { + padding: 10px; + } +} +@media screen and (max-width: 1040px) { + .tooltip { + display: none !important; + } + .user.user-page-unscoped .overview .desktop { + display: grid; + } + .user.user-page-unscoped .overview .desktop.favourites.preview .favourites-wrap { + display: grid; + grid-auto-flow: column; + justify-content: unset; + width: unset; + margin: 0; + overflow-x: scroll; + } + .user.user-page-unscoped .overview .desktop.favourites.preview .favourites-wrap a { + margin: 0; + margin-bottom: 10px; + } + .user.user-page-unscoped .overview .desktop.favourites.preview .favourites-wrap a:last-of-type { + margin-right: 15px; + } + .user.user-page-unscoped .overview .desktop.favourites.preview .favourites-wrap.studios { + display: flex; + flex-wrap: nowrap; + } + .user.user-page-unscoped .overview .desktop.favourites.preview .favourites-wrap.studios a { + flex-grow: 1; + flex-shrink: 0; + margin-bottom: 6px; + } + .user.user-page-unscoped .overview > .section:nth-of-type(2) .stats-wrap { + display: none; + } +} /* Coloured Text */ .name[data-v-5e514b1e] { color: rgb(var(--color-blue)); @@ -142,73 +256,456 @@ if(useScripts.reinaDark){ .site-theme-dark .user-page-unscoped.pink { --color-blue: 252, 157, 214; } +/* Dropdown menu arrows */ +.el-dropdown-menu.el-popper[x-placement^='top'] .popper__arrow::after, +.el-select-dropdown.el-popper[x-placement^='top'] .popper__arrow::after { + bottom: 0; +} +.el-dropdown-menu.el-popper[x-placement^='bottom'] .popper__arrow::after, +.el-select-dropdown.el-popper[x-placement^='bottom'] .popper__arrow::after { + top: 0; +} +.el-dropdown-menu.el-popper .popper__arrow, +.el-select-dropdown.el-popper .popper__arrow, +.el-dropdown-menu.el-popper .popper__arrow::after, +.el-select-dropdown.el-popper .popper__arrow::after { + border-top-color: rgb(var(--color-foreground-grey-dark)); + border-bottom-color: rgb(var(--color-foreground-grey-dark)); +} +.el-dropdown-menu.el-popper.activity-extras-dropdown[x-placement^='top'] .popper__arrow::after { + bottom: 0; +} +.el-dropdown-menu.el-popper.activity-extras-dropdown[x-placement^='bottom'] { + transform: translateY(25px); +} +.el-dropdown-menu.el-popper.activity-extras-dropdown[x-placement^='bottom'] .popper__arrow { + top: -5px; +} /* Dropdown menu */ -.el-dropdown-menu.el-popper.el-dropdown-menu--medium { - width: 150px; +.el-dropdown-menu.el-popper { text-align: center; - background-color: rgb(var(--color-foreground-grey-dark))!important; + background-color: rgb(var(--color-foreground-grey-dark)); box-shadow: 0 1px 10px 0 rgba(var(--color-shadow-blue)); } +.el-dropdown-menu.el-popper.el-dropdown-menu--medium { + width: 150px; +} +.el-dropdown-menu.el-popper.el-dropdown-menu--medium.activity-extras-dropdown { + text-align: left; +} .el-dropdown-menu.el-popper.el-dropdown-menu--medium .el-dropdown-menu__item:hover { - background-color: rgb(var(--color-foreground-alt))!important; + background-color: rgb(var(--color-foreground-alt)) !important; } -.el-dropdown-menu.el-popper.el-dropdown-menu--medium .el-dropdown-menu__item--divided { +.el-dropdown-menu.el-popper .el-dropdown-menu__item--divided { border-top: 3px solid rgb(var(--color-foreground-alt)); - width: 90%; margin: auto; } -.el-dropdown-menu.el-popper.el-dropdown-menu--medium .el-dropdown-menu__item--divided:before { - background-color: rgb(var(--color-foreground-grey-dark))!important; +.el-dropdown-menu.el-popper .el-dropdown-menu__item--divided::before { + background-color: rgb(var(--color-foreground-grey-dark)) !important; } -.el-dropdown-menu.el-popper.el-dropdown-menu--medium.activity-extras-dropdown { - text-align: left; +/* List editor dropdown menu */ +.el-select-dropdown.el-popper { + background-color: rgb(var(--color-foreground-grey-dark)) !important; } -/* Announcement */ -.announcement { - background-color: rgb(var(--color-blue-800))!important; +.el-select-dropdown { + box-shadow: 0 1px 10px 0 rgba(var(--color-shadow-blue)); } -/* Reduce transparancy of card view notes to make them less easier to miss (accessibility)*/ -.medialist.cards .entry-card .notes, -.medialist.cards .entry-card .repeat{ - color: rgba(var(--color-white),1); - filter: drop-shadow(0 0 3px rgba(0,0,0,.9)); +.el-select-dropdown__item.hover, +.el-select-dropdown__item:hover { + background-color: rgb(var(--color-background)) !important; } -.review .banner .date{ - color: rgba(var(--color-white),.6); +/* Activity Textareas */ +.activity-edit .input.el-textarea textarea { + box-shadow: none; + will-change: height; + transition: height 0s; +} +/* Activity Feed Sort */ +.feed-select .el-dropdown, +.section-header .el-dropdown { + margin-right: 10px; +} +.feed-select .el-dropdown .feed-filter, +.section-header .el-dropdown .feed-filter, +.feed-select .el-dropdown .el-dropdown-link, +.section-header .el-dropdown .el-dropdown-link { + display: none; +} +.feed-select .el-dropdown .el-dropdown-menu, +.section-header .el-dropdown .el-dropdown-menu { + display: flex !important; + position: relative; + text-align: center; + margin: 0; + padding: 0; + box-shadow: none; + background-color: rgb(var(--color-foreground)); + border-radius: 3px; +} +.feed-select .el-dropdown .el-dropdown-menu .el-dropdown-menu__item, +.section-header .el-dropdown .el-dropdown-menu .el-dropdown-menu__item { + line-height: inherit; + font-size: 1.2rem; + font-weight: 400; + white-space: nowrap; + flex-grow: 1; + margin: 0; + padding: 6px 10px; + color: rgb(var(--color-text-lighter)); + border-radius: 3px; +} +.feed-select .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:hover, +.section-header .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:hover { + background-color: inherit; + color: rgb(var(--color-blue)); +} +.feed-select .el-dropdown .el-dropdown-menu .el-dropdown-menu__item.active, +.section-header .el-dropdown .el-dropdown-menu .el-dropdown-menu__item.active, +.feed-select .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:active, +.section-header .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:active, +.feed-select .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:focus, +.section-header .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:focus { + font-weight: 500; + background-color: rgb(var(--color-foreground-blue)); + color: rgb(var(--color-text)); + border-radius: 0; +} +.feed-select .el-dropdown .el-dropdown-menu .el-dropdown-menu__item.active:hover, +.section-header .el-dropdown .el-dropdown-menu .el-dropdown-menu__item.active:hover, +.feed-select .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:active:hover, +.section-header .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:active:hover, +.feed-select .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:focus:hover, +.section-header .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:focus:hover { + background-color: rgb(var(--color-foreground-blue)); +} +.feed-select .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:active:first-of-type, +.section-header .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:active:first-of-type, +.feed-select .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:first-of-type.active, +.section-header .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:first-of-type.active, +.feed-select .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:focus:first-of-type, +.section-header .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:focus:first-of-type { + border-radius: 3px 0 0 3px; +} +.feed-select .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:active:last-of-type, +.section-header .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:active:last-of-type, +.feed-select .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:last-of-type.active, +.section-header .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:last-of-type.active, +.feed-select .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:focus:last-of-type, +.section-header .el-dropdown .el-dropdown-menu .el-dropdown-menu__item:focus:last-of-type { + border-radius: 0 3px 3px 0; +} +.overview .section-header { + align-items: center; + display: flex; +} +.overview .section-header .el-dropdown { + margin-right: 0px; + margin-left: auto; + padding-right: 0; +} +/* Announcement */ +.announcement { + background-color: rgb(var(--color-blue-800)) !important; } /* Date Picker */ .el-picker-panel { border: 1px solid rgb(var(--color-foreground)); background-color: rgb(var(--color-foreground-grey-dark)); color: rgb(var(--color-text-bright)); - .el-date-picker__header-label { - color: rgb(var(--color-text)); +} +.el-picker-panel .el-date-picker__header-label { + color: rgb(var(--color-text)); +} +.el-picker-panel .el-picker-panel__icon-btn, +.el-picker-panel .el-date-table th { + color: rgb(var(--color-text-light)); +} +.el-picker-panel .el-date-table td.current:not(.disabled) span { + background-color: rgb(var(--color-blue-700)); +} +.el-picker-panel .el-date-table th { + border-bottom: 1px solid #60656c; + padding: 1px; +} +.el-picker-panel .el-date-table td.next-month, +.el-picker-panel .el-date-table td.prev-month { + color: #76777a; +} +.el-picker-panel .el-date-table tbody tr:nth-of-type(2) td { + padding-top: 10px; +} +.el-picker-panel .popper__arrow::after { + border-bottom-color: rgb(var(--color-foreground-grey-dark)) !important; + border-top-color: rgb(var(--color-foreground-grey-dark)) !important; +} +/* hoh styling */ +#hohSettings .hohCategories { + display: flex; + flex-wrap: wrap; + position: relative; + text-align: center; + margin: 0; + padding: 0; + box-shadow: none; + background-color: rgb(var(--color-background)); + border-radius: 3px; +} +#hohSettings .hohCategories .hohCategory { + border: none; + line-height: inherit; + font-size: 1.2rem; + font-weight: 400; + white-space: nowrap; + flex-grow: 1; + margin: 0; + padding: 6px 10px; + color: rgb(var(--color-text-lighter)); + border-radius: 3px; +} +#hohSettings .hohCategories .hohCategory:hover { + background-color: inherit; + color: rgb(var(--color-blue)); +} +#hohSettings .hohCategories .hohCategory.active, +#hohSettings .hohCategories .hohCategory:active, +#hohSettings .hohCategories .hohCategory:focus { + font-weight: 500; + background-color: rgb(var(--color-foreground-blue)); + color: rgb(var(--color-text)); + border-radius: 0; +} +#hohSettings .hohCategories .hohCategory.active:hover, +#hohSettings .hohCategories .hohCategory:active:hover, +#hohSettings .hohCategories .hohCategory:focus:hover { + background-color: rgb(var(--color-foreground-blue)); +} +#hohSettings .hohCategories .hohCategory:active:first-of-type, +#hohSettings .hohCategories .hohCategory:first-of-type.active, +#hohSettings .hohCategories .hohCategory:focus:first-of-type { + border-radius: 3px 0 0 3px; +} +#hohSettings .hohCategories .hohCategory:active:last-of-type, +#hohSettings .hohCategories .hohCategory:last-of-type.active, +#hohSettings .hohCategories .hohCategory:focus:last-of-type { + border-radius: 0 3px 3px 0; +} +#hohSettings .hohDisplayBox { + border-color: #0e1216; + border-radius: 5px; +} +#hohSettings .scrollableContent { + padding: 30px; + padding-top: 35px; + padding-left: 15px; +} +#hohSettings .hohDisplayBoxTitle { + top: 25px; + left: 35px; + font-weight: bold; + font-size: 1.7em; +} +#hohSettings .hohResizePearl { + right: 10px; + bottom: 10px; +} +#hohSettings .hohDisplayBoxClose { + padding: 4px; + border-radius: 20px; + border-width: 2px; + border-color: #900; + width: 30px; + height: 30px; + text-align: center; + vertical-align: bottom; + font-weight: bold; +} +#hohSettings input, +#hohSettings select { + height: 40px; + border-radius: 4px; + color: rgb(var(--color-text)); + outline: 0; + transition: 0.2s; + border: 0; + background: rgb(var(--color-background)); + box-shadow: none; + padding-right: 10px; + padding-left: 15px; +} +#hohSettings textarea { + border-radius: 4px; + color: rgb(var(--color-text)); + outline: 0; + transition: 0.2s; + border: 0; + background: rgb(var(--color-background)); + box-shadow: none; + padding: 10px; + width: 100%; + height: 200px; +} +.hohNativeInput { + height: 40px; + border-radius: 4px; + color: rgb(var(--color-text)); + outline: 0; + transition: 0.2s; + border: 0; + background: rgb(var(--color-background)); + box-shadow: none; + padding-right: 10px; + padding-left: 15px; +} +.info.hasMeter { + position: absolute !important; + width: 100%; + left: 0 !important; + bottom: 0 !important; + padding: 12px; +} +.info.hasMeter meter { + border-radius: 4px; + width: 100%; + height: 5px; +} +.info.hasMeter meter::-moz-meter-bar { + border-radius: 4px; +} +.activity-entry { + border-radius: 4px; + margin-right: 0 !important; +} +/* Forum */ +.comment-wrap { + border-left: 7px solid rgba(var(--color-foreground-blue)); +} +.comment-wrap .child.odd { + border-left: 7px solid rgba(var(--color-foreground-grey-dark)); +} +/* Staff/character page header */ +@media screen and (max-width: 700px) { + .character-wrap > .character > .header .mobile-background, + .staff-wrap > .staff > .header .mobile-background { + background: rgb(var(--color-foreground)); } - .el-picker-panel__icon-btn, - .el-date-table th { - color: rgb(var(--color-text-light)); +} +@media screen and (min-width: 701px) { + .character-wrap > .character > .header, + .staff-wrap > .staff > .header { + background: rgb(var(--color-foreground)); } - .el-date-table { - td.current:not(.disabled) span { - background-color: rgb(var(--color-blue-700)); - } - th { - border-bottom: 1px solid #60656c; - padding: 1px; - } - td.next-month, - td.prev-month { - color: #76777a; - } - tbody tr:nth-of-type(2) td { - padding-top: 10px; - } +} +.character-wrap > .character > .header .name, +.staff-wrap > .staff > .header .name { + color: rgb(var(--color-gray-900)); +} +.character-wrap > .character > .header .name-alt, +.staff-wrap > .staff > .header .name-alt { + color: rgb(var(--color-gray-800)); +} +.character-wrap > .character > .header .edit, +.staff-wrap > .staff > .header .edit { + color: rgb(var(--color-gray-800)); +} +/* ------ Database Tools ------ */ +@media screen and (max-width: 800px) { + .media.container { + grid-template-columns: auto; + gap: 20px; + min-width: 250px; + } + /* Popup modal */ + .media.container .el-dialog__wrapper.dialog .el-dialog { + width: 98%; + } + /* Navigation tabs */ + .media.container .pages { + grid-column: 1; + grid-row: 1; } - .popper__arrow::after { - border-bottom-color: rgb(var(--color-foreground-grey-dark)) !important; - border-top-color: rgb(var(--color-foreground-grey-dark)) !important; + .media.container > div:last-of-type { + grid-column: 1; + grid-row: 2; + } +} +/* General form inputs */ +.media.container .submission-form .col-2 { + gap: 0 10px; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); +} +.media.container .submission-form .col-3 { + gap: 0 10px; + grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); +} +.media.container .submission-form.select-group .col-3 { + gap: 10px; + grid-template-columns: repeat(auto-fit, minmax(180px, 250px)); +} +/* Character page */ +.media.container .character-row { + grid-template-columns: 1fr 1.3fr 0.1fr; +} +@media screen and (min-width: 1000px) { + .media.container .character-row { + grid-template-columns: 0.6fr 1.3fr 0.1fr; } } +@media screen and (max-width: 450px) { + .media.container .character-row { + grid-template-columns: auto auto 40px; + grid-template-rows: auto; + gap: 10px; + } + .media.container .character-row .character.col { + grid-row: 1; + } + .media.container .character-row .actor.col { + grid-row: 2; + } + .media.container .character-row .actions { + grid-column: 3; + grid-row: 1 / span 2; + } +} +/* Images */ +@media screen and (min-width: 550px) { + .media.container .images .submission-form:first-of-type { + display: grid; + grid-template-columns: min-content; + } + .media.container .images .submission-form:first-of-type .el-input { + grid-column: 2; + grid-row: 1; + } + .media.container .images .submission-form:first-of-type .cover { + margin-right: 15px; + grid-column: 1; + grid-row: 1; + } +} +.media.container .images .submission-form .cover.banner { + width: 100%; +} +/* Increased active tab contrast in media and user nav */ +.media .nav .link.router-link-exact-active.router-link-active, +.user .nav .link.router-link-exact-active.router-link-active { + background: rgba(var(--color-background-200)); +} +.media .nav .link.router-link-exact-active.router-link-active { + color: rgb(var(--color-blue)); + border-radius: 3px 3px 0 0; + padding: 15px 30px; +} +/* Reduce transparancy of card view notes to make them less easier to miss (accessibility) */ +.medialist.cards .entry-card .notes, +.medialist.cards .entry-card .repeat { + color: rgba(var(--color-white),1) !important; + filter: drop-shadow(0 0 3px rgba(0,0,0,.9)) !important; +} +/* Increased contrast of review date */ +.review .banner .date { + color: rgba(var(--color-white),.6); +} ` if(useScripts.reinaDarkEnable){ darkContrastStyle.textContent = style diff --git a/src/modules/socialTab.js b/src/modules/socialTab.js index 71d60e5b..2ff6647a 100644 --- a/src/modules/socialTab.js +++ b/src/modules/socialTab.js @@ -69,6 +69,7 @@ const handler = (data,target,idMap) => { e.notes //only if notes && !e.notes.match(/^,malSync::[a-zA-Z0-9]+=?=?::$/) //no need to show malSync-only notes, nobody is interested in that && !e.notes.match(/^\s+$/) //whitespace-only notes will not show up properly anyway + && !e.notes.match(/^\$({.*})\$$/) //list JSON feature ){ if(e.notes.trim().match(/^(#\S+\s+)*(#\S+)$/)){//use a separate symbol for tags-only notes. Also helps popularizing tags notesEL.appendChild(svgAssets2.notesTags.cloneNode(true)) diff --git a/src/modules/termsFeed.js b/src/modules/termsFeed.js index 541378ef..be03a9c9 100644 --- a/src/modules/termsFeed.js +++ b/src/modules/termsFeed.js @@ -1804,29 +1804,39 @@ onlyMediaInput.onblur = function(){ hohSpinner.classList.add("spinnerLoading"); if(entry){ authAPIcall( - `mutation($progress: Int,$score: Float,$id: Int){ - SaveMediaListEntry(progress: $progress,id:$id, score: $score){id} + `mutation($progress: Int${(parseFloat(scoreInput.value) ? ",$score: Float" : "")},$id: Int){ + SaveMediaListEntry(progress: $progress,id:$id${(parseFloat(scoreInput.value) ? ", score: $score" : "")}){id} }`, {id: entry.data.MediaList.id, progress: parseInt(progressInput.value), score: parseFloat(scoreInput.value)}, data => { - console.log(data); - hohSpinner.innerText = svgAssets.check; - hohSpinner.classList.add("spinnerDone"); hohSpinner.classList.remove("spinnerLoading"); + if(data && data[0] && data[0].message){ + hohSpinner.classList.add("spinnerError"); + hohSpinner.innerText = svgAssets.cross; + } + else{ + hohSpinner.innerText = svgAssets.check; + hohSpinner.classList.add("spinnerDone"); + } } ) } else{ authAPIcall( - `mutation($progress: Int,$score: Float,$id: Int){ - SaveMediaListEntry(progress: $progress, score: $score),mediaId:$id){id} + `mutation($progress: Int${(parseFloat(scoreInput.value) ? ",$score: Float" : "")},$id: Int){ + SaveMediaListEntry(progress: $progress${(parseFloat(scoreInput.value) ? ", score: $score" : "")}),mediaId:$id){id} }`, {id: media.id, progress: parseInt(progressInput.value), score: parseFloat(scoreInput.value)}, data => { - console.log(data); - hohSpinner.innerText = svgAssets.check; - hohSpinner.classList.add("spinnerDone"); hohSpinner.classList.remove("spinnerLoading"); + if(data && data[0] && data[0].message){ + hohSpinner.classList.add("spinnerError"); + hohSpinner.innerText = svgAssets.cross; + } + else{ + hohSpinner.innerText = svgAssets.check; + hohSpinner.classList.add("spinnerDone"); + } } ) } diff --git a/src/queries/popularFavourites.js b/src/queries/popularFavourites.js index 22ecd81e..f973ac24 100644 --- a/src/queries/popularFavourites.js +++ b/src/queries/popularFavourites.js @@ -97,25 +97,25 @@ fragment stuff on User{ }); miscResults.innerText = ""; create("h1",false,translate("$heading_anime"),miscResults,"color:rgb(var(--color-blue))"); - Object.keys(animeFavs).map(key => animeFavs[key]).sort((b,a) => a.count - b.count).slice(0,25).forEach(function(entry){ + Object.keys(animeFavs).map(key => ({ ...animeFavs[key], key })).sort((b,a) => a.count - b.count).slice(0,25).forEach(function(entry){ create("p",false,entry.count + ": " + titlePicker({//pretend we have all this fancy API info title: { native: entry.title, romaji: entry.title, english: entry.title }, - id: parseInt(key) + id: parseInt(entry.key) }),miscResults) }); create("h1",false,translate("$heading_manga"),miscResults,"color:rgb(var(--color-blue))"); - Object.keys(mangaFavs).map(key => mangaFavs[key]).sort((b,a) => a.count - b.count).slice(0,25).forEach(function(entry){ + Object.keys(mangaFavs).map(key => ({ ...mangaFavs[key], key })).sort((b,a) => a.count - b.count).slice(0,25).forEach(function(entry){ create("p",false,entry.count + ": " + titlePicker({ title: { native: entry.title, romaji: entry.title, english: entry.title }, - id: parseInt(key) + id: parseInt(entry.key) }),miscResults) }); create("h1",false,translate("$heading_similarFavs"),miscResults,"color:rgb(var(--color-blue))"); diff --git a/src/queries/reviews.js b/src/queries/reviews.js index 74e213bf..af091bf2 100644 --- a/src/queries/reviews.js +++ b/src/queries/reviews.js @@ -1,21 +1,21 @@ -{name: "Reviews",code: function(){ +{name: translate("$query_reviews"),code: function(){ miscResults.innerText = ""; let dataHeader = create("div",false,false,miscResults); - create("p",false,"Static statistics as of January 13, 2023. (Maybe this can become dynamic again one day)",dataHeader); + create("p",false,"Static statistics as of January 13, 2024. (Maybe this can become dynamic again one day)",dataHeader); create("span",false,"Scanned ",dataHeader); - let data_amount = create("span",false,"12401",dataHeader); + let data_amount = create("span",false,"14107",dataHeader); create("span",false," reviews on Anilist, with ",dataHeader); - let data_ratingAmount = create("span",false,"612920",dataHeader); + let data_ratingAmount = create("span",false,"751050",dataHeader); create("span",false," ratings (",dataHeader); - let data_ratingPositive = create("span",false,"68.3",dataHeader); + let data_ratingPositive = create("span",false,"68.2",dataHeader); create("span",false,"% positive)",dataHeader); let cache = { - "time": 1673628542376, - "largestId": 19658, - "prolificReviewers": [{"id":173334,"name":"TheRealKyuubey","rating":3781,"ratingAmount":7152,"amount":193},{"id":5477050,"name":"DomG26","rating":3791,"ratingAmount":5178,"amount":146},{"id":63817,"name":"TheGruesomeGoblin","rating":6640,"ratingAmount":8069,"amount":141},{"id":164274,"name":"CodeBlazeFate","rating":5116,"ratingAmount":9320,"amount":138},{"id":39746,"name":"Juliko25","rating":1668,"ratingAmount":2395,"amount":122},{"id":157905,"name":"Pockeyramune919","rating":3379,"ratingAmount":4495,"amount":102},{"id":98053,"name":"planetJane","rating":3984,"ratingAmount":4907,"amount":90},{"id":169913,"name":"GonzoLewd","rating":774,"ratingAmount":1114,"amount":86},{"id":5679514,"name":"SpiritChaser","rating":2588,"ratingAmount":5051,"amount":81},{"id":334159,"name":"saulgoodman","rating":3323,"ratingAmount":3522,"amount":67},{"id":899326,"name":"HidamariSeashore","rating":909,"ratingAmount":1039,"amount":66},{"id":160628,"name":"biogundam","rating":799,"ratingAmount":2326,"amount":66},{"id":5468370,"name":"R2R","rating":2066,"ratingAmount":2910,"amount":63},{"id":213985,"name":"TheAnimeBingeWatcher","rating":2502,"ratingAmount":3939,"amount":63},{"id":5478024,"name":"RoseFaerie","rating":795,"ratingAmount":877,"amount":59},{"id":151833,"name":"Shellshock","rating":617,"ratingAmount":1403,"amount":57},{"id":132095,"name":"CryingLad","rating":3074,"ratingAmount":4640,"amount":56},{"id":5464976,"name":"Mcsuper","rating":3004,"ratingAmount":4061,"amount":55},{"id":5670114,"name":"Benkei","rating":1306,"ratingAmount":1423,"amount":52},{"id":5502166,"name":"Kalladry","rating":1050,"ratingAmount":1307,"amount":51},{"id":135302,"name":"CaninnTurtle","rating":2979,"ratingAmount":3726,"amount":47},{"id":39336,"name":"KayiOu","rating":8987,"ratingAmount":14639,"amount":47},{"id":5687449,"name":"RebelPanda","rating":1191,"ratingAmount":1993,"amount":45},{"id":5306432,"name":"ZNote","rating":2030,"ratingAmount":2593,"amount":44},{"id":245642,"name":"ChillLaChill","rating":794,"ratingAmount":976,"amount":43}], - "bestReviewers": [{"id":475301,"name":"Kumichou","rating":246,"ratingAmount":253,"amount":4},{"id":5930257,"name":"pseudo","rating":291,"ratingAmount":300,"amount":5},{"id":133213,"name":"Dayne64","rating":62,"ratingAmount":62,"amount":2},{"id":5717442,"name":"Kizamui","rating":89,"ratingAmount":90,"amount":4},{"id":135898,"name":"ladyfreyja","rating":89,"ratingAmount":90,"amount":4},{"id":167196,"name":"Fleur","rating":343,"ratingAmount":356,"amount":6},{"id":334159,"name":"saulgoodman","rating":3323,"ratingAmount":3522,"amount":67},{"id":668464,"name":"Arciboldo","rating":106,"ratingAmount":108,"amount":7},{"id":287201,"name":"Goldiizz","rating":316,"ratingAmount":330,"amount":3},{"id":213918,"name":"springchild","rating":110,"ratingAmount":113,"amount":4},{"id":450490,"name":"nephilimk","rating":304,"ratingAmount":319,"amount":12},{"id":5318591,"name":"Rewsula","rating":375,"ratingAmount":395,"amount":6},{"id":5493316,"name":"Louistrea","rating":123,"ratingAmount":127,"amount":3},{"id":206429,"name":"DoodleDelta","rating":122,"ratingAmount":126,"amount":2},{"id":146557,"name":"ManlyButterBath","rating":183,"ratingAmount":191,"amount":3},{"id":256364,"name":"Ari","rating":183,"ratingAmount":191,"amount":3},{"id":563929,"name":"Kassenentleerer","rating":119,"ratingAmount":123,"amount":2},{"id":695961,"name":"CinccinoHome","rating":424,"ratingAmount":449,"amount":3},{"id":700869,"name":"Jaekoi","rating":1054,"ratingAmount":1128,"amount":8},{"id":682518,"name":"StorLucilfer","rating":116,"ratingAmount":120,"amount":4}], - "worstReviewers": [{"id":159522,"name":"Sun","rating":65,"ratingAmount":678,"amount":2},{"id":788401,"name":"malkafajas","rating":29,"ratingAmount":200,"amount":2},{"id":494283,"name":"Aaheel","rating":14,"ratingAmount":110,"amount":2},{"id":6023236,"name":"Aivvin","rating":15,"ratingAmount":113,"amount":2},{"id":126178,"name":"JOBEY","rating":13,"ratingAmount":100,"amount":2},{"id":467348,"name":"MaliTigar","rating":37,"ratingAmount":225,"amount":2},{"id":31405,"name":"Chibi243","rating":28,"ratingAmount":170,"amount":2},{"id":482910,"name":"ThePieGod","rating":48,"ratingAmount":270,"amount":3},{"id":5175766,"name":"FranMan","rating":112,"ratingAmount":573,"amount":2},{"id":375371,"name":"Mannoumi","rating":118,"ratingAmount":566,"amount":2},{"id":76257,"name":"AkiFosu","rating":91,"ratingAmount":426,"amount":4},{"id":143077,"name":"lublei","rating":60,"ratingAmount":291,"amount":4},{"id":5110196,"name":"boogiepopawa","rating":5,"ratingAmount":40,"amount":2},{"id":5830649,"name":"NerfMiner","rating":358,"ratingAmount":1495,"amount":7},{"id":5923658,"name":"WallahSous","rating":292,"ratingAmount":1177,"amount":12},{"id":365729,"name":"yabp1600","rating":73,"ratingAmount":315,"amount":7},{"id":126196,"name":"garthol","rating":167,"ratingAmount":650,"amount":13},{"id":5587883,"name":"JackDSF123","rating":48,"ratingAmount":208,"amount":2},{"id":5245658,"name":"lizeo","rating":97,"ratingAmount":390,"amount":2},{"id":151499,"name":"PlatinuMan","rating":238,"ratingAmount":885,"amount":20}], - "reviews": [[8804,30104,"Yotsuba to!",139,139,100,334159,"saulgoodman"],[9542,129574,"1-nichi Go ni Shinu Gorilla",999,1024,100,5104257,"who717"],[16527,86559,"Golden Kamuy",93,93,100,5325636,"fastlane956"],[10704,30657,"Real",87,87,100,589910,"unimportantuser"],[9825,85412,"Shoujo Shuumatsu Ryokou",128,129,100,422656,"Syne"],[9218,205,"Samurai Champloo",220,224,93,700869,"Jaekoi"],[14820,113024,"Shoujo☆Kageki Revue Starlight Movie",181,184,100,5318591,"Rewsula"],[6455,100557,"Sachi-iro no One Room",115,116,94,475301,"Kumichou"],[13609,139586,"Go! Saitama",110,111,90,334159,"saulgoodman"],[7344,100568,"Supyeongseon",248,254,100,524198,"benitobandito"],[4611,86099,"Wind Breaker",106,107,99,47730,"Fuchsia"],[7577,111444,"Musume no Tomodachi",70,70,80,334159,"saulgoodman"],[6528,31133,"Dorohedoro",188,192,100,19842,"MasterCrash"],[8923,98361,"Mikkakan no Koufuku",159,162,100,762381,"isyatup43"],[3741,38967,"Onani Master Kurosawa",185,189,85,127279,"waifwu"],[12176,128547,"Odd Taxi",255,262,90,334159,"saulgoodman"],[5008,15227,"Kono Sekai no Katasumi ni",128,130,90,323992,"seanny"],[9655,41514,"Otoyomegatari",66,66,90,373255,"Krankastel"],[2224,19315,"Pupa",250,257,10,63817,"TheGruesomeGoblin"],[11518,105790,"Subete no Jinrui wo Hakai Suru. Sorera wa Saisei Dekinai.",65,65,95,613706,"animejas"],[9700,30021,"DEATH NOTE",123,125,91,665346,"sadJoe"],[9385,30003,"20 Seiki Shounen",147,150,91,700869,"Jaekoi"],[2434,85277,"Kuro",63,63,100,63817,"TheGruesomeGoblin"],[9512,100994,"Jigokuraku",146,149,85,334159,"saulgoodman"],[3645,30912,"Tomie",61,61,75,63817,"TheGruesomeGoblin"],[12386,98263,"Tongari Boushi no Atelier",90,91,95,530637,"nicobonito"],[3174,413,"Hametsu no Mars",313,324,1,167047,"zakarias"],[13681,112802,"Uramichi Oniisan",163,167,95,838061,"Zmar234"],[3521,578,"Hotaru no Haka",185,190,95,124111,"Grassman"],[7340,110413,"Lupin III: THE FIRST",60,60,80,373255,"Krankastel"],[10229,118586,"Sousou no Frieren",115,117,90,334159,"saulgoodman"],[13377,39726,"Kubikiri Cycle: Aoiro Savant to Zaregotozukai",114,116,100,370192,"Railgun"],[3626,437,"PERFECT BLUE",347,360,98,22219,"DaLadybugMan"],[10335,106503,"EX-ARM",1085,1140,100,540135,"Pigooz"],[14194,40443,"Bakuon Rettou",57,57,90,450490,"nephilimk"],[17500,31706,"JoJo no Kimyou na Bouken: Steel Ball Run",84,85,100,355736,"aran"],[9177,21804,"Saiki Kusuo no Ψ-nan",126,129,90,155040,"RecDoT"],[3903,457,"Mushishi",146,150,100,43326,"aikaflip"],[7401,103373,"Gokiburi Taisou",102,104,100,80421,"JDinkleberg"],[3613,33575,"Saikyou Densetsu Kurosawa",102,104,100,146557,"ManlyButterBath"],[14561,132288,"Hirayasumi",53,53,80,334159,"saulgoodman"],[11270,33588,"Double House",53,53,95,167908,"faktory"],[15673,5680,"K-ON!",238,247,100,287201,"Goldiizz"],[19322,130003,"Bocchi the Rock!",272,283,100,544588,"Sirion"],[9960,30107,"Chobits",52,52,90,85141,"ninjamushi"],[11364,21837,"Gakuen Handsome",196,203,100,5232975,"groggy1"],[9691,30729,"Emma",51,51,80,373255,"Krankastel"],[9148,4896,"Umineko no Naku Koro ni",51,51,20,197973,"pixeldesu"],[10213,108725,"Yakusoku no Neverland 2",347,363,40,495720,"An1meDweeb"],[9440,101583,"Sono Bisque Doll wa Koi wo Suru",136,140,80,334159,"saulgoodman"],[6639,350,"Ojamajo Doremi",50,50,85,155143,"Tani"],[5320,90911,"Dead Word Puzzle",50,50,1,63817,"TheGruesomeGoblin"],[4499,85911,"Tomodachi Game",74,75,83,125448,"afwcal"],[9931,94490,"The Fable",73,74,90,334159,"saulgoodman"],[14402,30745,"PLUTO",49,49,90,5436130,"Lyadh"],[16171,146983,"Sayonara Eri",286,299,100,5272329,"LuminousMagic"],[9861,126287,"PUPARIA",219,228,78,604123,"imnap"],[10904,98579,"Henkei Shoujo",72,73,100,5232975,"groggy1"],[16305,125828,"SAKAMOTO DAYS",48,48,95,5670114,"Benkei"],[6541,108196,"My Home Hero",48,48,90,133213,"Dayne64"],[11478,74489,"Houseki no Kuni",111,114,92,5240018,"SXNGXNG"],[10671,100855,"Emiya-san Chi no Kyou no Gohan",111,114,80,5232975,"groggy1"],[17716,100568,"Supyeongseon",71,72,70,5137884,"EpicSponge101"],[13160,38967,"Onani Master Kurosawa",71,72,95,780369,"NegevTv"],[2215,20645,"Glasslip",147,152,10,63817,"TheGruesomeGoblin"],[11421,30002,"Berserk",534,564,100,403142,"c4e"],[15794,143690,"AMONG US",385,405,100,695961,"CinccinoHome"],[4388,185,"Initial D",109,112,90,137953,"serime"],[11052,30642,"Vinland Saga",177,184,100,950180,"lloydcyber"],[10885,132692,"GHOST",69,70,100,31227,"Hideki"],[3841,47465,"Omoide Emanon",69,70,95,118275,"BastBard"],[7608,2251,"Baccano!",125,129,100,602195,"laforet"],[7451,100991,"act-age",234,245,99,206087,"WhiteHikari"],[9836,86781,"Ashizuri Suizokukan",45,45,80,334159,"saulgoodman"],[6491,82,"Kidou Senshi Gundam 0080: Pocket no Naka no Sensou",45,45,100,245642,"ChillLaChill"],[4260,16664,"Kaguya-hime no Monogatari",67,68,95,119023,"Mionge"],[7567,101233,"Gokushufudou",122,126,90,334159,"saulgoodman"],[4562,108556,"SPY×FAMILY",292,307,90,111469,"OttoVonBismarck"],[7770,110349,"GREAT PRETENDER",153,159,86,404903,"pointydelta"],[6617,98034,"Saiki Kusuo no Ψ-nan 2",85,87,92,493585,"AnishG555"],[14860,113024,"Shoujo☆Kageki Revue Starlight Movie",120,124,100,140376,"SpookSpark"],[4802,20668,"Gekkan Shoujo Nozaki-kun",120,124,100,221282,"Revisionary"],[12227,131773,"Wonder Egg Priority: Tokubetsu-hen",310,327,10,825358,"bebop"],[6586,87459,"Sabishisugite Rezu Fuzoku ni Ikimashita Report",195,204,100,225075,"meniel"],[15057,43290,"Ningen Shikkaku",43,43,90,682518,"StorLucilfer"],[9084,21595,"Sakamoto desu ga?",43,43,78,899326,"HidamariSeashore"],[7421,119944,"Tenkyuu, Suisei wa Yoru wo Mataide",64,65,100,31227,"Hideki"],[3907,86238,"Kono Subarashii Sekai ni Shukufuku wo!",64,65,95,97990,"bonbons"],[2608,21170,"Ansatsu Kyoushitsu 2",179,187,98,130243,"AmishaelAL"],[10423,103047,"Violet Evergarden Movie",148,154,94,665346,"sadJoe"],[11820,918,"Gintama",132,137,100,751934,"JabroniPie"],[15732,139589,"Kotarou wa Hitorigurashi",115,119,80,5468370,"R2R"],[12807,33285,"Holyland",63,64,100,302649,"Laevatein"],[10223,117696,"Tenchi Souzou Design-bu",63,64,95,948063,"ranrannerson"],[5360,85198,"Kasane",81,83,100,63817,"TheGruesomeGoblin"],[17667,100994,"Jigokuraku",42,42,80,5923019,"polkura"],[15944,85316,"Dead Dead Demon's Dededededestruction",42,42,85,5568115,"hoeberries"],[7100,34625,"Kamigami no Itadaki",42,42,100,563929,"Kassenentleerer"],[5330,42549,"Fourteen",42,42,99,63817,"TheGruesomeGoblin"],[4532,30481,"Planetes",42,42,90,279478,"AdmiralTofuKing"],[13193,30002,"Berserk",31,409,30,159522,"Sun"],[7105,99426,"Sora yori mo Tooi Basho",16,211,30,375097,"Saudade"],[15626,21366,"3-gatsu no Lion",11,144,60,31405,"Chibi243"],[12796,21284,"Flying Witch",3,61,20,5502166,"Kalladry"],[11291,19,"MONSTER",48,459,1,151833,"Shellshock"],[6567,4224,"Toradora!",7,99,65,494283,"Aaheel"],[8381,20623,"Kiseijuu: Sei no Kakuritsu",29,278,0,719139,"NickCrouton"],[2799,1535,"DEATH NOTE",24,232,65,123510,"isahbellah"],[19340,130003,"Bocchi the Rock!",24,228,45,5679514,"SpiritChaser"],[3022,232,"Cardcaptor Sakura",6,80,62,160628,"biogundam"],[19555,130003,"Bocchi the Rock!",18,178,60,6029546,"Redpillman"],[11023,268,"GOLDEN BOY: Sasurai no Obenkyou Yarou",11,122,32,5315218,"sarre"],[12405,30002,"Berserk",16,160,60,5435290,"P3PO"],[6512,101348,"VINLAND SAGA",25,226,42,76257,"AkiFosu"],[11934,98478,"3-gatsu no Lion 2",8,94,61,5420721,"YuiHirasawa39"],[17460,97986,"Made in Abyss",49,398,30,5923658,"WallahSous"],[18506,7791,"K-ON!!",14,141,30,5784148,"namenotgiven"],[11947,12531,"Sakamichi no Apollon",4,59,51,5420721,"YuiHirasawa39"],[8723,329,"Planetes",6,75,30,324025,"geovannyboss"],[18180,5680,"K-ON!",52,404,40,5784148,"namenotgiven"],[9958,33,"Kenpuu Denki Berserk",22,195,40,211521,"Eagleshadow"],[3543,99426,"Sora yori mo Tooi Basho",15,142,40,126196,"garthol"],[14871,20607,"Ping Pong THE ANIMATION",12,118,30,5699600,"commandrbigglesworth"],[11238,477,"ARIA The ANIMATION",51,386,14,5345052,"Puppyhumper"],[17277,125367,"Kaguya-sama wa Kokurasetai: Ultra Romantic",67,491,63,677174,"Alicemagic18"],[8655,9253,"Steins;Gate",14,131,69,332074,"Fractured"],[13391,20954,"Koe no Katachi",34,269,10,159522,"Sun"],[7108,21355,"Re:Zero kara Hajimeru Isekai Seikatsu",25,204,30,442831,"Criiza"],[8814,11741,"Fate/Zero 2nd Season",25,198,38,482910,"ThePieGod"],[5893,9617,"K-ON! Movie",5,60,67,132397,"TK8878"],[15507,9260,"Kizumonogatari I: Tekketsu-hen",18,150,65,5732627,"Wilza"],[9844,21366,"3-gatsu no Lion",19,156,34,860175,"JGamer"],[9445,104578,"Shingeki no Kyojin 3 Part 2",48,339,20,382192,"VirtuousZero"],[2780,33104,"Helter Skelter",17,142,40,123510,"isahbellah"],[18059,9253,"Steins;Gate",21,168,55,5670443,"SuperVak"],[6837,20972,"Shouwa Genroku Rakugo Shinjuu",4,51,70,151499,"PlatinuMan"],[18641,47,"AKIRA",11,100,46,6023236,"Aivvin"],[18275,106286,"Tenki no Ko",24,184,20,5784148,"namenotgiven"],[16111,108632,"Re:Zero kara Hajimeru Isekai Seikatsu 2nd Season",7,72,30,5813892,"Seff"],[8290,457,"Mushishi",17,138,30,788401,"malkafajas"],[18222,20912,"Hibike! Euphonium",12,104,50,5784148,"namenotgiven"],[11948,19703,"Kyousougiga (TV)",4,49,54,5420721,"YuiHirasawa39"],[6900,99424,"SSSS.GRIDMAN",7,70,33,470469,"magnifico"],[6206,108617,"Somali to Mori no Kamisama",10,90,44,365729,"yabp1600"],[2575,21126,"ChäoS;Child",6,63,30,127754,"beanwolf"],[11741,10165,"Nichijou",43,291,30,5175766,"FranMan"],[9360,875,"Mind Game",15,121,30,213985,"TheAnimeBingeWatcher"],[7380,21875,"No Game No Life Zero",44,294,30,365383,"Visconde"],[8281,101348,"VINLAND SAGA",14,112,70,606215,"akasinan"],[11933,21366,"3-gatsu no Lion",7,67,57,5420721,"YuiHirasawa39"],[2977,21087,"One Punch Man",10,86,66,160628,"biogundam"],[6368,115122,"DEATH NOTE: Tokubetsu Yomikiri",33,221,1,467348,"MaliTigar"],[3301,98505,"Princess Principal",15,116,31,164274,"CodeBlazeFate"],[17358,125367,"Kaguya-sama wa Kokurasetai: Ultra Romantic",14,109,64,5420721,"YuiHirasawa39"],[13083,19,"MONSTER",39,252,43,5528428,"AsteRiA004"],[12651,918,"Gintama",76,453,40,39336,"KayiOu"],[8550,20954,"Koe no Katachi",28,188,30,829256,"RatPoison69"],[16396,687,"Tokyo Mew Mew",4,45,38,5826452,"Fluoxetine50mg"],[5342,30656,"Vagabond",43,270,50,359721,"GGShang"],[8500,20954,"Koe no Katachi",91,526,0,375371,"Mannoumi"],[14672,127720,"Mushoku Tensei: Isekai Ittara Honki Dasu Part 2",49,301,35,677174,"Alicemagic18"],[17688,5680,"K-ON!",22,152,52,39746,"Juliko25"],[9444,104578,"Shingeki no Kyojin 3 Part 2",43,267,39,238614,"TobioMark"],[19228,101338,"Mob Psycho 100 II",10,82,60,5815844,"Granzchesta"],[12864,1535,"DEATH NOTE",16,116,60,5386493,"inductionstove"],[17009,486,"Kino no Tabi: the Beautiful World",2,30,30,5110196,"boogiepopawa"],[10559,108465,"Mushoku Tensei: Isekai Ittara Honki Dasu",21,141,50,823985,"Iero"],[15756,131586,"86: Eighty Six Part 2",67,381,45,5679514,"SpiritChaser"],[10869,11981,"Mahou Shoujo Madoka☆Magica: Hangyaku no Monogatari",10,79,65,213985,"TheAnimeBingeWatcher"],[12724,124675,"Osananajimi ga Zettai ni Makenai Love Come",12,90,100,5287139,"Swiftr13"],[7375,34632,"Oyasumi Punpun",14,101,65,373722,"hamzafezzaz12"],[9620,101922,"Kimetsu no Yaiba",100,542,100,5124525,"KimetsuNoTanjiro"],[12342,9253,"Steins;Gate",33,202,45,5344597,"GhostHardware"],[14694,138714,"Heike Monogatari",4,42,75,142076,"tinyraccoon"],[1033,136,"HUNTER×HUNTER",91,493,100,20306,"aeptia"],[3037,97980,"Re:CREATORS",7,60,53,160628,"biogundam"],[13858,6956,"Working!!",11,83,20,406399,"Shisui0"],[5809,20954,"Koe no Katachi",28,173,40,151499,"PlatinuMan"],[10359,5680,"K-ON!",29,178,30,194615,"Lili1228"],[9794,104647,"Otome Game no Hametsu Flag shika Nai Akuyaku Reijou ni Tensei shiteshimatta…",25,157,25,5142007,"BaronS"],[2198,1358,"Hokuto no Ken Movie",5,47,0,91709,"JTurner82"],[4852,11061,"HUNTER×HUNTER (2011)",101,528,4,309857,"PatricianBliss"],[7408,20954,"Koe no Katachi",47,266,30,622511,"spacexdragon"],[9491,30,"Shin Seiki Evangelion",26,159,45,383328,"CandycaneRay"],[16300,30149,"BLAME!",9,69,35,596338,"LauruxKittyCat"],[11935,20602,"Amagi Brilliant Park",6,52,63,5420721,"YuiHirasawa39"],[3620,100077,"Hinamatsuri",12,85,50,147221,"Fountainstand"],[5798,7791,"K-ON!!",13,90,66,132397,"TK8878"],[16452,112151,"Kimetsu no Yaiba: Mugen Ressha-hen",27,162,100,5830649,"NerfMiner"],[19476,127230,"Chainsaw Man",14,95,20,886302,"DYNASTIA"],[13989,21355,"Re:Zero kara Hajimeru Isekai Seikatsu",16,105,30,5581051,"ImmoralOrel"],[13325,1142,"Hachimitsu to Clover II",2,27,50,660526,"cmac1027"],[8459,21719,"Fate/stay night [Heaven's Feel] III. spring song",19,120,60,229298,"Struggler"],[17675,5680,"K-ON!",10,73,65,5803895,"NBreviews"],[18988,6746,"Durarara!!",5,45,67,5559434,"AllLuckBased"],[9384,97917,"Yoru wa Mijikashi Arukeyo Otome",11,78,60,213985,"TheAnimeBingeWatcher"],[7258,14131,"Girls und Panzer",3,33,10,589910,"unimportantuser"],[2188,136,"HUNTER×HUNTER",36,203,40,69738,"spacebro"],[18398,100178,"Liz to Aoi Tori",18,114,10,5784148,"namenotgiven"],[9769,102976,"Kono Subarashii Sekai ni Shukufuku wo! Kurenai Densetsu",17,108,50,5142007,"BaronS"]] + "time": 1705133829415, + "largestId": 23242, + "prolificReviewers": [{"id":173334,"name":"TheRealKyuubey","rating":4716,"ratingAmount":8824,"amount":223},{"id":39746,"name":"Juliko25","rating":2627,"ratingAmount":3763,"amount":181},{"id":5477050,"name":"DomG26","rating":8733,"ratingAmount":10460,"amount":171},{"id":63817,"name":"TheGruesomeGoblin","rating":7426,"ratingAmount":9049,"amount":142},{"id":164274,"name":"CodeBlazeFate","rating":5596,"ratingAmount":10271,"amount":140},{"id":5478024,"name":"RoseFaerie","rating":2159,"ratingAmount":2430,"amount":118},{"id":157905,"name":"Pockeyramune919","rating":3911,"ratingAmount":5168,"amount":107},{"id":5468370,"name":"R2R","rating":3004,"ratingAmount":4299,"amount":94},{"id":5464976,"name":"Mcsuper","rating":5723,"ratingAmount":8247,"amount":93},{"id":98053,"name":"planetJane","rating":4383,"ratingAmount":5380,"amount":90},{"id":5679514,"name":"SpiritChaser","rating":2991,"ratingAmount":5738,"amount":87},{"id":169913,"name":"GonzoLewd","rating":976,"ratingAmount":1416,"amount":87},{"id":213985,"name":"TheAnimeBingeWatcher","rating":3118,"ratingAmount":5069,"amount":73},{"id":5687449,"name":"RebelPanda","rating":1973,"ratingAmount":3826,"amount":70},{"id":5306432,"name":"ZNote","rating":3321,"ratingAmount":4354,"amount":68},{"id":899326,"name":"HidamariSeashore","rating":1055,"ratingAmount":1210,"amount":67},{"id":334159,"name":"saulgoodman","rating":3796,"ratingAmount":4016,"amount":66},{"id":160628,"name":"biogundam","rating":861,"ratingAmount":2511,"amount":65},{"id":151833,"name":"Shellshock","rating":711,"ratingAmount":1596,"amount":58},{"id":132095,"name":"CryingLad","rating":3325,"ratingAmount":5043,"amount":56},{"id":5670114,"name":"Benkei","rating":1669,"ratingAmount":1835,"amount":54},{"id":219462,"name":"Lenlo","rating":1833,"ratingAmount":2863,"amount":51},{"id":5502166,"name":"Kalladry","rating":1127,"ratingAmount":1403,"amount":51},{"id":5956233,"name":"C00kieMaster","rating":1146,"ratingAmount":1506,"amount":49},{"id":39336,"name":"KaizokuOtaku","rating":9678,"ratingAmount":16098,"amount":47}], + "bestReviewers": [{"id":133213,"name":"Dayne64","rating":85,"ratingAmount":85,"amount":2},{"id":5717442,"name":"Trem0lO","rating":118,"ratingAmount":119,"amount":4},{"id":135898,"name":"ladyfreyja","rating":100,"ratingAmount":101,"amount":4},{"id":668464,"name":"Arciboldo","rating":118,"ratingAmount":120,"amount":7},{"id":167196,"name":"Fleur","rating":398,"ratingAmount":413,"amount":6},{"id":475301,"name":"Kumichou","rating":314,"ratingAmount":325,"amount":5},{"id":334159,"name":"saulgoodman","rating":3796,"ratingAmount":4016,"amount":66},{"id":213918,"name":"springchild","rating":129,"ratingAmount":132,"amount":4},{"id":287201,"name":"Goldiizz","rating":405,"ratingAmount":423,"amount":3},{"id":5895223,"name":"keishia","rating":53,"ratingAmount":53,"amount":3}], + "worstReviewers": [{"id":159522,"name":"Sun","rating":70,"ratingAmount":751,"amount":2},{"id":719139,"name":"NickCrouton","rating":29,"ratingAmount":300,"amount":1},{"id":5699600,"name":"commandrbigglesworth","rating":13,"ratingAmount":148,"amount":1},{"id":211521,"name":"Eagleshadow","rating":23,"ratingAmount":204,"amount":1},{"id":5345052,"name":"Puppyhumper","rating":68,"ratingAmount":500,"amount":1},{"id":5435290,"name":"P3PO","rating":21,"ratingAmount":181,"amount":1},{"id":5753239,"name":"kittyAISURU","rating":37,"ratingAmount":273,"amount":1},{"id":606215,"name":"akasinan","rating":15,"ratingAmount":122,"amount":1},{"id":6454797,"name":"nxtperfect","rating":27,"ratingAmount":195,"amount":3},{"id":494283,"name":"Aaheel","rating":14,"ratingAmount":113,"amount":2}], + "reviews": [[8804,30104,"Yotsuba to!",180,180,100,334159,"saulgoodman"],[16527,86559,"Golden Kamuy",109,109,100,5325636,"fastlane956"],[9542,129574,"1-nichi Go ni Shinu Gorilla",1076,1102,100,5104257,"who717"],[10704,30657,"Real",108,108,100,589910,"unimportantuser"],[9218,205,"Samurai Champloo",243,247,93,700869,"Jaekoi"],[6455,100557,"Sachi-iro no One Room",133,134,94,475301,"Kumichou"],[13609,139586,"Go! Saitama",122,123,90,334159,"saulgoodman"],[6528,31133,"Dorohedoro",214,218,100,19842,"MasterCrash"],[4611,86099,"Wind Breaker",117,118,99,47730,"Fuchsia"],[20384,457,"Mushishi",116,117,90,548220,"KeyserElric"],[7344,100568,"Supyeongseon",267,273,100,524198,"benitobandito"],[9512,100994,"Jigokuraku",177,180,85,334159,"saulgoodman"],[8923,98361,"Mikkakan no Koufuku",174,177,100,762381,"isyatup43"],[9655,41514,"Otoyomegatari",72,72,90,373255,"Krankastel"],[2224,19315,"Pupa",270,277,10,63817,"TheGruesomeGoblin"],[2434,85277,"Kuro",70,70,100,63817,"TheGruesomeGoblin"],[14561,132288,"Hirayasumi",70,70,80,334159,"saulgoodman"],[3521,578,"Hotaru no Haka",213,218,95,124111,"Grassman"],[9385,30003,"20 Seiki Shounen",159,162,91,700869,"Jaekoi"],[3645,30912,"Tomie",68,68,75,63817,"TheGruesomeGoblin"],[9700,30021,"DEATH NOTE",130,132,91,665346,"sadJoe"],[12386,98263,"Tongari Boushi no Atelier",100,101,95,530637,"nicobonito"],[6541,108196,"My Home Hero",67,67,90,133213,"Dayne64"],[9825,85412,"Shoujo Shuumatsu Ryokou",154,157,100,422656,"RevvieStarlight"],[12176,128547,"Odd Taxi",274,282,90,334159,"saulgoodman"],[11270,33588,"Double House",66,66,95,167908,"faktory"],[3174,413,"Hametsu no Mars",339,350,1,167047,"zakarias"],[3626,437,"PERFECT BLUE",402,416,98,22219,"DaLadybugMan"],[13377,39726,"Kubikiri Cycle: Aoiro Savant to Zaregotozukai",123,125,100,370192,"Railgun"],[3613,33575,"Saikyou Densetsu Kurosawa",122,124,100,146557,"ManlyButterBath"],[7340,110413,"Lupin III: THE FIRST",63,63,80,373255,"Krankastel"],[16375,110473,"Kimi wa Houkago Insomnia",93,94,96,5670114,"Benkei"],[10229,118586,"Sousou no Frieren",142,145,90,334159,"saulgoodman"],[10335,106503,"EX-ARM",1243,1304,100,540135,"Pigooz"],[14820,113024,"Shoujo☆Kageki Revue Starlight Movie",229,236,100,5318591,"Rew"],[14860,113024,"Shoujo☆Kageki Revue Starlight Movie",161,165,100,140376,"SpookSpark"],[6491,82,"Kidou Senshi Gundam 0080: Pocket no Naka no Sensou",59,59,100,245642,"ChillLaChill"],[5008,15227,"Kono Sekai no Katasumi ni",136,139,90,323992,"seanny"],[3903,457,"Mushishi",157,161,100,43326,"aikaflip"],[11364,21837,"Gakuen Handsome",220,227,100,5232975,"groggy1"],[3741,38967,"Onani Master Kurosawa",197,203,85,127279,"waifwu"],[13160,38967,"Onani Master Kurosawa",84,85,95,780369,"NegevTv"],[16171,146983,"Sayonara Eri",348,362,100,5272329,"LuminousMagic"],[6639,350,"Ojamajo Doremi",56,56,85,155143,"Tani"],[9836,86781,"Ashizuri Suizokukan",56,56,80,334159,"saulgoodman"],[14402,30745,"PLUTO",56,56,90,5436130,"Lyadh"],[4388,185,"Initial D",130,133,90,137953,"serime"],[10904,98579,"Henkei Shoujo",83,84,100,5232975,"groggy1"],[7401,103373,"Gokiburi Taisou",106,108,100,80421,"JDinkleberg"],[16305,125828,"SAKAMOTO DAYS",82,83,95,5670114,"Benkei"],[5320,90911,"Dead Word Puzzle",55,55,1,63817,"TheGruesomeGoblin"],[9960,30107,"Chobits",55,55,90,85141,"ninjamushi"],[20904,148370,"Uma Musume: Pretty Derby - ROAD TO THE TOP",81,82,100,5989894,"stellaguts"],[11052,30642,"Vinland Saga",206,213,100,950180,"lloydcyber"],[3841,47465,"Omoide Emanon",79,80,95,118275,"BastBard"],[3907,86238,"Kono Subarashii Sekai ni Shukufuku wo!",79,80,95,97990,"bonbons"],[9691,30729,"Emma",53,53,80,373255,"Krankastel"],[10671,100855,"Emiya-san Chi no Kyou no Gohan",123,126,80,5232975,"groggy1"],[9440,101583,"Sono Bisque Doll wa Koi wo Suru",142,146,80,334159,"saulgoodman"],[6991,43271,"Saraiya Goyou",52,52,100,213918,"springchild"],[17024,114998,"Bungou Stray Dogs BEAST",52,52,90,5468370,"R2R"],[15673,5680,"K-ON!",304,317,100,287201,"Goldiizz"],[9177,21804,"Saiki Kusuo no Ψ-nan",139,143,90,155040,"RecDoT"],[13349,30081,"ARIA",76,77,100,498659,"Eggsandwich04"],[9861,126287,"PUPARIA",264,275,78,604123,"imnap"],[12760,30657,"Real",97,99,100,859190,"InspectorJKB"],[15794,143690,"AMONG US",425,446,100,695961,"CinccinoHome"],[14429,14713,"Kamisama Hajimemashita",50,50,87,5502166,"Kalladry"],[19679,31224,"3-gatsu no Lion",50,50,95,427065,"baba13"],[5360,85198,"Kasane",96,98,100,63817,"TheGruesomeGoblin"],[9451,885,"Tenshi no Tamago",225,234,100,712368,"atahavali"],[10885,132692,"GHOST",74,75,100,31227,"Hideki"],[7577,111444,"Musume no Tomodachi",73,74,80,334159,"saulgoodman"],[9826,127340,"Bota Bota",49,49,70,334159,"saulgoodman"],[7451,100991,"act-age",254,265,99,206087,"WhiteHikari"],[9084,21595,"Sakamoto desu ga?",48,48,78,899326,"HidamariSeashore"],[15057,43290,"Ningen Shikkaku",48,48,90,682518,"StorLucilfer"],[9931,94490,"The Fable",92,94,90,334159,"saulgoodman"],[12807,33285,"Holyland",71,72,100,302649,"Laevatein"],[10213,108725,"Yakusoku no Neverland 2",355,373,40,495720,"An1meDweeb"],[5330,42549,"Fourteen",47,47,99,63817,"TheGruesomeGoblin"],[11518,105790,"Subete no Jinrui wo Hakai Suru. Sorera wa Saisei Dekinai.",70,71,95,613706,"animejas"],[7567,101233,"Gokushufudou",126,130,90,334159,"saulgoodman"],[8946,99699,"Golden Kamuy",89,91,93,477066,"peteg13"],[17667,100994,"Jigokuraku",46,46,80,5923019,"polkura"],[6617,98034,"Saiki Kusuo no Ψ-nan 2",88,90,92,493585,"AnishG555"],[15732,139589,"Kotarou wa Hitorigurashi",124,128,80,5468370,"R2R"],[9359,33104,"Helter Skelter",68,69,90,167196,"Fleur"],[4562,108556,"SPY×FAMILY",296,311,90,111469,"OttoVonBismarck"],[11820,918,"Gintama",156,162,100,751934,"JabroniPie"],[11421,30002,"Berserk",604,641,100,403142,"c4e"],[10052,82343,"Jun: Shotaro no Fantasy World",45,45,97,450490,"nephilimk"],[11753,105388,"Yagate Kimi ni Naru Saeki Sayaka ni Tsuite",45,45,100,901603,"maewemeetagain"],[14406,105577,"Giji Harem",45,45,80,5633296,"ZenTea"],[14194,40443,"Bakuon Rettou",67,68,90,450490,"nephilimk"],[5133,108430,"Given",186,194,95,138179,"ow9n"],[6047,21745,"Owarimonogatari (Ge)",201,210,100,344047,"tomservo"],[2182,9996,"Hyouge Mono",66,67,100,63817,"TheGruesomeGoblin"],[8731,85413,"Yugami-kun ni wa Tomodachi ga Inai",103,106,100,334159,"saulgoodman"],[2278,98291,"Tsurezure Children",85,87,83,84799,"choisoobin"],[13193,30002,"Berserk",35,470,30,159522,"Sun"],[23085,21450,"JoJo no Kimyou na Bouken: Diamond wa Kudakenai",6,116,42,5189683,"blizar"],[7105,99426,"Sora yori mo Tooi Basho",16,222,30,375097,"Saudade"],[15626,21366,"3-gatsu no Lion",11,150,60,31405,"Chibi243"],[12796,21284,"Flying Witch",3,63,20,5502166,"Kalladry"],[23100,11981,"Mahou Shoujo Madoka☆Magica: Hangyaku no Monogatari",1,39,13,310314,"Dinizo"],[21322,136430,"VINLAND SAGA SEASON 2",15,179,40,6294004,"Ionliosite2"],[8381,20623,"Kiseijuu: Sei no Kakuritsu",29,300,0,719139,"NickCrouton"],[11023,268,"GOLDEN BOY: Sasurai no Obenkyou Yarou",11,139,32,5315218,"sarre"],[6567,4224,"Toradora!",7,101,65,494283,"Aaheel"],[11291,19,"MONSTER",55,496,1,151833,"Shellshock"],[11934,98478,"3-gatsu no Lion 2",8,105,61,5420721,"YuiHirasawa39"],[14871,20607,"Ping Pong THE ANIMATION",13,148,30,5699600,"commandrbigglesworth"],[2799,1535,"DEATH NOTE",27,246,65,123510,"isahbellah"],[6512,101348,"VINLAND SAGA",26,235,42,76257,"AkiFosu"],[22036,119661,"Re:Zero kara Hajimeru Isekai Seikatsu 2nd Season Part 2",12,127,20,6173043,"Venucurius"],[18870,21175,"Dragon Ball Super",4,60,0,5909525,"WhatAGoodShow"],[9958,33,"Kenpuu Denki Berserk",23,204,40,211521,"Eagleshadow"],[19340,130003,"Bocchi the Rock!",31,259,45,5679514,"SpiritChaser"],[21365,105228,"Dorohedoro",2,40,66,134289,"moistmossyroc"],[3543,99426,"Sora yori mo Tooi Basho",16,151,40,126196,"garthol"],[8655,9253,"Steins;Gate",14,136,69,332074,"Fractured"],[23081,2001,"Tengen Toppa Gurren Lagann",7,81,42,393551,"mirphy"],[13391,20954,"Koe no Katachi",35,281,10,159522,"Sun"],[11238,477,"ARIA The ANIMATION",68,500,14,5345052,"Puppyhumper"],[17009,486,"Kino no Tabi: the Beautiful World",2,39,30,5110196,"boogiepopawa"],[6837,20972,"Shouwa Genroku Rakugo Shinjuu",4,56,70,151499,"PlatinuMan"],[12405,30002,"Berserk",21,181,60,5435290,"P3PO"],[5893,9617,"K-ON! Movie",6,71,67,132397,"TK8878"],[11948,19703,"Kyousougiga (TV)",4,55,54,5420721,"YuiHirasawa39"],[2780,33104,"Helter Skelter",17,151,40,123510,"isahbellah"],[8723,329,"Planetes",8,86,30,324025,"geovannyboss"],[11947,12531,"Sakamichi no Apollon",5,62,51,5420721,"YuiHirasawa39"],[17277,125367,"Kaguya-sama wa Kokurasetai: Ultra Romantic",72,506,63,677174,"Alicemagic18"],[17460,97986,"Made in Abyss",60,425,30,5923658,"WallahSous"],[21076,130003,"Bocchi the Rock!",19,159,20,6173043,"Venucurius"],[9445,104578,"Shingeki no Kyojin 3 Part 2",48,346,20,382192,"VirtuousZero"],[22916,160515,"Overtake!",8,82,48,6454797,"nxtperfect"],[21817,155783,"Tengoku Daimakyou",37,273,1,5753239,"kittyAISURU"],[9844,21366,"3-gatsu no Lion",20,162,34,860175,"JGamer"],[18059,9253,"Steins;Gate",22,174,60,5670443,"SuperVak"],[6900,99424,"SSSS.GRIDMAN",7,72,33,470469,"magnifico"],[15507,9260,"Kizumonogatari I: Tekketsu-hen",19,151,65,5732627,"Wilza"],[11933,21366,"3-gatsu no Lion",7,71,57,5420721,"YuiHirasawa39"],[18727,6954,"Kara no Kyoukai: Shuushou",28,203,1,143077,"lublei"],[2198,1358,"Hokuto no Ken Movie",5,56,0,91709,"JTurner82"],[8281,101348,"VINLAND SAGA",15,122,70,606215,"akasinan"],[6206,108617,"Somali to Mori no Kamisama",11,96,44,365729,"yabp1600"],[17358,125367,"Kaguya-sama wa Kokurasetai: Ultra Romantic",14,115,64,5420721,"YuiHirasawa39"],[11741,10165,"Nichijou",46,304,30,5175766,"FranMan"],[9360,875,"Mind Game",16,126,30,213985,"TheAnimeBingeWatcher"],[2977,21087,"One Punch Man",10,88,66,160628,"biogundam"],[3022,232,"Cardcaptor Sakura",10,88,62,160628,"biogundam"],[21799,145665,"NieR:Automata Ver1.1a",34,232,89,5830649,"NerfMiner"],[7258,14131,"Girls und Panzer",3,40,10,589910,"unimportantuser"],[2575,21126,"ChäoS;Child",8,74,30,127754,"beanwolf"],[17688,5680,"K-ON!",23,166,52,39746,"Juliko25"],[22948,161964,"Kage no Jitsuryokusha ni Naritakute! 2nd season",30,207,10,6294004,"Ionliosite2"],[16111,108632,"Re:Zero kara Hajimeru Isekai Seikatsu 2nd Season",9,80,30,5813892,"Seff"],[8550,20954,"Koe no Katachi",28,194,30,829256,"RatPoison69"],[12864,1535,"DEATH NOTE",16,123,60,5386493,"inductionstove"],[19555,130003,"Bocchi the Rock!",34,228,60,6029546,"Redpillman"],[6368,115122,"DEATH NOTE: Tokubetsu Yomikiri",36,239,1,467348,"MaliTigar"],[20535,155907,"Buddy Daddies",8,73,25,5561062,"emmerlad"],[7380,21875,"No Game No Life Zero",47,299,30,365383,"Visconde"],[12651,918,"Gintama",81,485,40,39336,"KaizokuOtaku"],[10192,102976,"Kono Subarashii Sekai ni Shukufuku wo! Kurenai Densetsu",4,46,65,823664,"leesonTV"],[22820,11981,"Mahou Shoujo Madoka☆Magica: Hangyaku no Monogatari",11,91,40,6173043,"Venucurius"],[9444,104578,"Shingeki no Kyojin 3 Part 2",43,275,39,238614,"Toby2B"],[22749,170206,"Scott Pilgrim Takes Off",21,150,50,5652228,"AquaLucas2"],[19228,101338,"Mob Psycho 100 II",10,84,60,5815844,"Granzchesta"],[3301,98505,"Princess Principal",16,120,31,164274,"CodeBlazeFate"],[8814,11741,"Fate/Zero 2nd Season",31,206,38,482910,"ThePieGod7"],[6193,105228,"Dorohedoro",5,52,68,365729,"yabp1600"],[19869,9253,"Steins;Gate",18,131,40,6147406,"LordEnglishSSBM"],[10559,108465,"Mushoku Tensei: Isekai Ittara Honki Dasu",21,148,50,823985,"Iero"],[3190,4181,"CLANNAD: After Story",18,130,40,173334,"TheRealKyuubey"],[21136,141391,"Yofukashi no Uta",21,146,30,6294004,"Ionliosite2"],[16716,6802,"So Ra No Wo To",1,23,46,169913,"GonzoLewd"],[8500,20954,"Koe no Katachi",97,549,0,375371,"Mannoumi"],[14694,138714,"Heike Monogatari",4,44,75,142076,"tinyraccoon"],[12724,124675,"Osananajimi ga Zettai ni Makenai Love Come",12,93,100,5287139,"Swiftr13"],[14672,127720,"Mushoku Tensei: Isekai Ittara Honki Dasu Part 2",52,311,35,677174,"Alicemagic18"],[5342,30656,"Vagabond",51,305,50,359721,"GGShang"],[8459,21719,"Fate/stay night [Heaven's Feel] III. spring song",20,138,60,229298,"Struggler"],[15756,131586,"86: Eighty Six Part 2",69,396,45,5679514,"SpiritChaser"],[3037,97980,"Re:CREATORS",7,62,53,160628,"biogundam"],[9769,102976,"Kono Subarashii Sekai ni Shukufuku wo! Kurenai Densetsu",18,125,50,5142007,"BaronS"],[10359,5680,"K-ON!",29,184,30,194615,"Lili23"],[9620,101922,"Kimetsu no Yaiba",103,562,100,5124525,"KimetsuNoTanjiro"],[20936,125367,"Kaguya-sama wa Kokurasetai: Ultra Romantic",30,189,55,6173043,"Venucurius"],[5809,20954,"Koe no Katachi",28,177,40,151499,"PlatinuMan"],[23076,232,"Cardcaptor Sakura",2,29,60,5295359,"KrenZane"],[5798,7791,"K-ON!!",13,95,66,132397,"TK8878"],[12342,9253,"Steins;Gate",34,207,45,5344597,"GhostHardware"],[13051,3786,"Shin Evangelion Movie:||",8,66,10,636674,"TheIkari"],[13350,249,"Inuyasha",11,83,20,850960,"Rishabh27"],[13083,19,"MONSTER",47,272,43,5528428,"AsteRiA004"],[21357,136430,"VINLAND SAGA SEASON 2",31,190,27,308148,"ChrisHacker"],[13858,6956,"WORKING!!",13,94,20,406399,"Shisui0"]] }; let list = cache.reviews.map(comp => ({ @@ -99,20 +99,20 @@ let cache = { link.href = "/user/" + rev.name || "removed"; create("span",false," average rating: " + (100*rev.rating/rev.ratingAmount).toPrecision(2) + "%",dataCel) }); - create("p",false,"That's " + Math.round(100*profilicSum/12401) + "% of all reviews on Anilist",miscResults); + create("p",false,"That's " + Math.round(100*profilicSum/14107) + "% of all reviews on Anilist",miscResults); - create("p",false,`3759 users have contributed reviews (3.2 reviews each on average, median 1, mode 1)`,miscResults); + create("p",false,`4306 users have contributed reviews (3.3 reviews each on average, median 1, mode 1)`,miscResults); - let lowRatingRating = 69065; - let lowRatingAmount = 152647; - let lowRatingCount = 1986; - let highRatingRating = 349671; - let highRatingAmount = 460273; - let highRatingCount = 10059; - let topRatingRating = 89024; - let topRatingAmount = 108245; - let topRatingCount = 1718; - let distribution = [65,56,6,5,4,36,4,3,4,3,110,1,4,9,6,38,4,6,9,7,177,4,10,10,9,46,8,4,7,4,236,15,10,10,15,77,9,8,36,15,241,21,20,25,16,79,21,15,24,8,426,16,23,25,19,135,24,25,28,29,445,31,45,43,32,237,40,56,61,62,721,52,107,84,81,470,70,100,118,77,995,87,109,104,112,583,127,166,132,100,1100,98,142,112,106,536,120,125,143,88,1718]; + let lowRatingRating = 83501; + let lowRatingAmount = 188362; + let lowRatingCount = 2320; + let highRatingRating = 428459; + let highRatingAmount = 562688; + let highRatingCount = 11787; + let topRatingRating = 109632; + let topRatingAmount = 131921; + let topRatingCount = 2005; + let distribution = [75,73,6,4,6,40,5,5,5,3,133,5,10,10,5,40,4,7,10,12,208,7,13,10,9,47,8,6,7,5,285,17,12,11,17,88,10,11,36,16,286,26,24,28,17,100,22,18,31,9,478,18,26,27,19,167,23,25,34,32,520,34,50,46,40,294,47,61,73,70,855,56,123,96,95,543,83,116,149,94,1168,101,129,118,131,692,151,190,153,121,1331,115,155,134,116,617,132,141,171,100,2005]; create("p",false,"The " + lowRatingCount + " reviews with a score 0-50 are rated " + (100*lowRatingRating/lowRatingAmount).toPrecision(2) + "% on average.",miscResults); create("p",false,"The " + highRatingCount + " reviews with a score 51-100 are rated " + (100*highRatingRating/highRatingAmount).toPrecision(2) + "% on average.",miscResults); create("p",false,"The " + topRatingCount + " reviews with a score 100/100 are rated " + (100*topRatingRating/topRatingAmount).toPrecision(2) + "% on average.",miscResults); @@ -206,7 +206,7 @@ let cache = { }) } render(); -/* +/* too API demanding now for(var i=1;i<=data.data.Page.pageInfo.lastPage;i++){ generalAPIcall( `query ($page: Int){ diff --git a/src/queries/seasonalStats.js b/src/queries/seasonalStats.js index 4abe9db8..2da0b4dc 100644 --- a/src/queries/seasonalStats.js +++ b/src/queries/seasonalStats.js @@ -81,7 +81,7 @@ splitProgress[splitProgress.length - 1] ) } - else if(entry.status === "completed"){ + else if(entry.status === "completed" || entry.status === "rewatched"){ addDefault(); animeEntries[entry.media.id].highestProgress = animeEntries[entry.media.id].total || 1; animeEntries[entry.media.id].completionCount++ @@ -109,7 +109,7 @@ splitProgress[splitProgress.length - 1] ) } - else if(entry.status === "completed"){ + else if(entry.status === "completed" || entry.status === "reread"){ addDefault(); mangaEntries[entry.media.id].highestProgress = mangaEntries[entry.media.id].total || 1; mangaEntries[entry.media.id].completionCount++ diff --git a/src/utilities.js b/src/utilities.js index 748b4d5f..f147ca99 100644 --- a/src/utilities.js +++ b/src/utilities.js @@ -925,7 +925,7 @@ function compatCheck(list,name,type,callback){ //used by the stats module, and to safeguard the manga chapter guesses //publishing manga is a bit tricky, since Anilist doesn't track chapters const commonUnfinishedManga = m4_include(data/commonUnfinishedManga.json) -if(NOW() - new Date(2022,11,11) > 365*24*60*60*1000){ +if(NOW() - new Date(2024,5,22) > 365*24*60*60*1000){ console.log("remind hoh to update the commonUnfinishedManga list") }