Display GreasyFork user registration time (presumed)

Display GreasyFork user registration time (presumed). This script predicts the registration time of the commenter according to the greasyfork user ID is a continuous natural number.

// ==UserScript==
// @name         显示Greasyfork用户注册时间,识别恶意评论
// @name:zh-CN   显示Greasyfork用户注册时间,识别恶意评论
// @name:zh-TW   顯示Greasyfork用戶註冊時間,識別惡意評論
// @name:en      Display GreasyFork user registration time (presumed)
// @name:ja      GreasyForkのユーザー登録時刻を表示(推定)
// @name:ru      Отображение времени регистрации пользователя GreasyFork (предположительно)
// @name:kr      GreasyFork 사용자 등록 시간 표시(추정)
// @namespace    yysk.org
// @icon         https://www.google.com/s2/favicons?sz=64&domain=greasyfork.org
// @version      1.0.8
// @author       yysk.org
// @match        *://greasyfork.org/*
// @match        *://sleazyfork.org/*
// @require      https://unpkg.com/jquery@3.6.0/dist/jquery.min.js
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_xmlhttpRequest
// @description        如果你的脚本干涉了某些人的利益,收到恶意差评并不意外。恶意差评有两个特点,一是账号通常新注册,二是注册后不久就会给差评,且基本不会有后续活动。本脚本根据greasyfork用户ID为连续自然数的特点,推测评论者的注册时间,帮你识别恶意评论,举报不要手软。
// @description:zh-CN  如果你的脚本干涉了某些人的利益,收到恶意差评并不意外。恶意差评有两个特点,一是账号通常新注册,二是注册后不久就会给差评,且基本不会有后续活动。本脚本根据greasyfork用户ID为连续自然数的特点,推测评论者的注册时间,帮你识别恶意评论,举报不要手软。
// @description:zh-TW  如果你的腳本干涉了某些人的利益,收到惡意差評並不意外。惡意差評有兩個特點,一是賬號通常新註冊,二是註冊後不久就會給差評,且基本不會有後續活動。本腳本根據greasyfork用戶ID爲連續自然數的特點,推測評論者的註冊時間,幫你識別惡意評論,舉報不要手軟。
// @description:en     Display GreasyFork user registration time (presumed). This script predicts the registration time of the commenter according to the greasyfork user ID is a continuous natural number.
// @description:ja     GreasyForkのユーザー登録時刻を表示(推定). このスクリプトは greasyfork のユーザー ID が連続する自然数であることから、コメント投稿者の登録時間を予測します。
// @description:ru     Отображение времени регистрации пользователя GreasyFork (предположительно). Этот скрипт предсказывает время регистрации комментатора по идентификатору пользователя greasyfork — непрерывное натуральное число.
// @description:kr     GreasyFork 사용자 등록 시간 표시(추정). 이 스크립트는 greasyfork 사용자 ID가 연속적인 자연수에 따라 댓글 작성자의 등록 시간을 예측합니다.
// @license      Copyright yysk.org
// ==/UserScript==

/* jslint esversion: 6 */
/*globals jQuery,db2 */

(function () {
    'use strict';
    const now = new Date().getTime();
    const interval = 3000;
    const billion = 1000000000;
    var avggap = 3600 * 24 / 400;
    var db = [950796,661467770,950383,661365665,950020,661291594,949631,661207387,949202,661123407,948737,661026086,948326,660952532,947951,660855850,947571,660761239,947209,660688317,946815,660594047,946438,660520599,946090,660430146,945787,660343546,945481,660260260,945081,660147818,944829,660084717,944454,659984903,944122,659907262,943785,659827435,943433,659740968,943128,659655353,942791,659569792,942482,659481864,942145,659377799,941851,659309778,941491,659201693,941210,659139066,940827,659049644,940306,658950673,939637,658847061,939318,658770859,938963,658691042,938731,658618302,938404,658523034,938053,658443802,937649,658339400,937368,658272491,937057,658185781,936727,658102275,936442,658014782,936111,657922124,935760,657841502,935412,657755855,935075,657654533,934768,657582870,934408,657483799,934104,657385614,933806,657314825,933494,657236695,933125,657151355,932709,657039497,932134,656964758,931786,656884406,931475,656791792,931134,656709161,930823,656630226,930466,656521749,930198,656458990,929890,656370893,929599,656284608,929273,656194885,928943,656102821,928644,656024425,928312,655936418,927999,655838001,927701,655762208,927377,655679437,927001,655586180,926687,655503112,926317,655422515,925989,655334956,925652,655237787,925333,655155175,924981,655058122,924629,654989485,924257,654884598,923910,654806289,923560,654719748,923178,654645125,922850,654553171,922456,654467716,922076,654367742,921768,654299583,921397,654204269,921037,654104455,920708,654035736,920307,653929299,919976,653859050,919633,653774521,919465,653464789,918191,653434702,917790,653335675,917420,653260128,916983,653156655,916583,653069521,916235,652987196,915881,652918355,915457,652825388,915049,652737900,914676,652654882,914270,652549613,913933,652476054,913574,652399170,913222,652304802,912803,652209682,912409,652140420,911986,652045732,911586,651951888,911191,651862750,910822,651783283,910450,651703555,910057,651604969,909701,651534960,909344,651434436,909006,651360368,908628,651260700,908260,651183874,907816,651088912,907369,651012717,906851,650902457,906456,650815609,906121,650732565,905736,650671071,905313,650571580,904924,650496971,904437,650387593,904049,650326265,903605,650219844,903223,650148089,902720,650051138,902290,649971599,901853,649888598,901384,649793702,900929,649716310,900449,649632021,900001,649533538,899577,649461304,899109,649356070,898685,649282801,898269,649196733,897855,649115862,897246,649021461,896789,648938298,896388,648848527,895983,648765060,895548,648662762,895153,648588009,894748,648509350,894330,648408382,893388,648309675,892707,648229865,892069,648162435,891375,648061950,891002,647993170,890539,647903735,890019,647795280,889670,647732240,889207,647638361,888783,647554080,888314,647463578,887866,647362642,887457,647300867,887012,647204043,886584,647114734,886085,647037382,885584,646956206,885109,646869785,884649,646775243,884143,646674497,883780,646610133,883386,646515160,882934,646413056,882614,646338189,882299,646262242,881944,646177548,881588,646090365,881233,645990115,880886,645895339,880571,645820046,880229,645729093,879859,645641218,879488,645563652,879081,645471655,878753,645397161,878430,645307055,878062,645224162,877670,645113974,877342,645055536,876902,644933970,876653,644882812,876223,644790071,875925,644703010,875551,644609574,875159,644535830,874705,644431858,874248,644339081,873936,644277946,873546,644188692,873153,644085887,872769,643993398,872357,643900530,872085,643826404,871798,643753358,871485,643670869,871204,643579823,870903,643492481,870506,643387975,870170,643318522,869748,643238337,869330,643135433,868934,643064856,868433,642980271,868015,642891965,867626,642783565,867329,642716404,866878,642614376,866501,642526461,866118,642458635,865703,642365600,865356,642290977,864968,642187210,864548,642115090,864140,642029372,863742,641934866,863321,641855613,862870,641739445,862577,641671049,862191,641572460,861863,641505668,861465,641396773,861192,641340098,860777,641231502,860392,641137811,860097,641074186,859757,640971860,859485,640901427,859096,640818254,858640,640716844,858305,640647199,857980,640555418,857641,640466939,857315,640385300,856934,640271909,856636,640212639,856206,640104391,855879,640041926,855437,639949051,855042,639856256,854632,639774794,854207,639677404,853836,639612773,853401,639523888,852907,639422454,852433,639335711,851975,639258662,851493,639180130,851010,639089873,850500,639001061,850032,638919348,849503,638814859,849104,638741793,848674,638661652,848227,638568542,847754,638477306,847385,638402454,846912,638313766,846351,638218119,845830,638114905,845351,638056080,844866,637955020,844397,637882555,843798,637784960,843332,637700390,842813,637623633,842315,637538868,841781,637433662,841211,637353590,840736,637260495,840322,637191577,839834,637106977,839398,637010124,838684,636930268,838271,636834511,837879,636758592,837471,636664875,836906,636581484,836305,636480150,833705,636395088,833339,636320515,833002,636238266,832606,636143798,832189,636056701,831851,635977097,831447,635890535,831018,635777956,830716,635697023,830451,635637719,830051,635539136,829705,635437734,829402,635374676,829057,635285040,828673,635177380,828428,635119792,828125,635026953,827774,634929745,827492,634854884,827165,634762110,826829,634680606,826507,634600447,826207,634496508,825907,634411428,825570,634338766,825227,634247795,824867,634152608,824538,634067443,824215,633982909,823844,633904477,823498,633800155,823167,633714599,822857,633648940,822570,633558749,822220,633457738,821950,633383275,821658,633302375,821337,633204544,821013,633132322,820671,633043919,820306,632944478,819937,632848554,819658,632773098,819331,632687046,819022,632586343,818715,632521344,818345,632407172,818073,632348793,817717,632252041,817428,632168432,817116,632088780,816764,631985238,816450,631910177,816126,631815405,815755,631720826,815479,631650195,815131,631562850,814805,631475845,814460,631382850,814159,631303136,813856,631210080,813497,631131382,813156,631041923,812872,630957944,812551,630877544,812254,630795239,811951,630695917,811599,630625521,811212,630534646,810884,630453249,810494,630363131,810057,630275358,809639,630173601,809310,630106022,808982,630022017,808595,629926493,808276,629849569,807906,629758964,807481,629666913,807013,629555316,806715,629488619,806328,629392430,805966,629302591,805700,629230708,805334,629137257,805002,629062121,804636,628955052,804353,628880721,803851,628769899,803598,628710851,803209,628639478,802772,628543825,802262,628439931,801820,628374149,801098,628264675,800758,628192078,800396,628094373,800078,628023093,799717,627930832,799375,627835725,799090,627774441,798775,627679724,798441,627601507,798137,627513455,797791,627409850,797476,627325771,797159,627252655,796877,627170879,796604,627079152,796300,626978062,795985,626904484,795631,626803176,795282,626731737,795022,626649428,794708,626554215,794282,626452554,793960,626392220,793633,626303808,793225,626194112,792924,626134301,792588,626032659,792256,625932306,791992,625861280,791675,625774110,791392,625698727,791037,625587761,790735,625525472,790334,625415570,790050,625344148,789748,625260884,789385,625175500,789047,625080722,788731,624994037,788381,624903823,788082,624831592,787702,624729497,787400,624645124,787066,624577428,786655,624472018,786323,624404277,785909,624312250,785553,624230452,785208,624142740,784839,624041538,784509,623952699,784184,623868576,783833,623791860,783447,623697246,783049,623600859,782717,623517901,782400,623434660,782096,623365015,781743,623275067,781366,623187714,781001,623109967,780554,623018596,780052,622911544,779903,622837242,779496,622750753,779094,622673207,778718,622588580,778267,622473155,777984,622414912,777622,622324148,777283,622235221,776923,622140321,776540,622063618,776181,621972163,775808,621884563,775458,621804072,775051,621699960,774761,621633622,774364,621547837,774004,621458185,773632,621377218,773217,621285273,772874,621203450,772534,621118323,772153,621034562,771792,620944447,771403,620844226,771063,620766260,770702,620679069,770321,620595867,770004,620503766,769682,620420673,769307,620342885,768862,620253806,768514,620154790,767993,620042307,767783,619999388,767399,619907637,767009,619807527,766636,619722055,766198,619630498,765845,619565299,765380,619472810,764854,619363488,764504,619293747,764100,619219544,763630,619132167,763162,619045189,762666,618944149,762333,618874737,761858,618765964,761454,618690276,760709,618593012,759726,618504950,759286,618441414,758745,618340711,758165,618248669,757669,618168780,757260,618094148,756865,618003334,756497,617908513,756073,617822264,755682,617729820,755276,617639393,754941,617576187,754557,617465929,754287,617398344,753927,617317144,753506,617215982,753126,617132849,752766,617046756,752376,616946536,752126,616883832,751757,616777916,751372,616710253,751032,616628167,750637,616523650,750222,616418124,749940,616348149,749670,616280105,749309,616194951,748963,616104331,748415,616021956,748012,615912364,747665,615844851,747273,615763519,746885,615654509,746543,615571495,746172,615497018,745778,615407190,745391,615323284,745019,615240773,744613,615136535,744340,615053701,743977,614959086,743578,614861998,743331,614801622,742919,614711929,742526,614619326,742126,614525151,741887,614466991,741578,614371655,741176,614276433,740844,614208344,740464,614111948,740056,614029989,739649,613932591,739341,613848800,738969,613751885,738690,613686176,738357,613586831,738020,613489604,737719,613431517,737455,613340404,737217,613243659,736948,613157317,736624,613057408,736443,613001582,736156,612914514,735768,612799604,735515,612735618,735205,612637265,734830,612536898,734575,612481353,734244,612388733,733866,612298585,733530,612204917,733249,612134774,732921,612033644,732592,611944042,732302,611862474,731964,611784123,731620,611702109,731281,611607866,730904,611510203,730520,611413813,730196,611335502,729896,611273129,729550,611185288,729147,611083880,728805,610992316,728475,610909208,728135,610834750,727709,610719968,727491,610667624,727112,610562988,726675,610477512,726321,610395743,725934,610320246,725544,610232493,725254,610145972,724985,610061323,724634,609955981,724327,609890991,723956,609778307,723639,609695118,723423,609627816,723139,609543730,722867,609450708,722579,609356986,722227,609273551,721905,609178894,721509,609080985,721271,609022388,720784,608891663,720619,608848126,720300,608766597,719909,608665049,719498,608566283,719127,608505761,718709,608397696,718353,608309357,717997,608237064,717578,608152633,717170,608063859,716748,607967646,716409,607879746,716144,607808253,715800,607707476,715480,607638243,715054,607527084,714729,607471472,714350,607385311,713938,607296531,713392,607211962,713020,607125235,712306,607028163,711605,606939225,711100,606849018,710607,606743697,710319,606677735,709945,606574057,709721,606521341,709368,606419190,709038,606336039,708600,606239705,708281,606165579,707944,606081161,707648,605984560,707331,605901328,707019,605828262,706607,605731020,706187,605652160,705694,605535132,705433,605483907,705139,605374529,704804,605307412,704530,605217933,704178,605107875,703864,605026465,703372,604965581,702907,604849115,702686,604782242,702396,604696890,702076,604608693,701616,604520421,701026,604410178,700756,604356672,700346,604257819,700116,604186044,699799,604077677,699522,604015803,699228,603928226,698835,603825537,698453,603714757,698345,603667499,698011,603556140,697716,603469638,697393,603376016,697139,603322050,696832,603233123,696477,603132704,696185,603028149,695988,602968673,695737,602886619,695394,602789384,695014,602689310,694803,602628439,694505,602533043,694203,602438079,694009,602374375,693732,602280705,693467,602190863,693193,602098945,692943,602027307,692677,601937838,692467,601855771,692230,601754650,691888,601644886,691643,601565001,691387,601465082,691269,601409626,691058,601330945,690854,601246296,690629,601141789,690435,601067614,690193,600979907,689951,600883641,689749,600802756,689453,600708374,689249,600646155,689007,600536451,688726,600458011,688494,600371059,688134,600300641,687711,600194927,687434,600092836,687269,600038521,687026,599927901,686832,599850898,686570,599749439,686356,599674675,686036,599601664,685781,599515202,685530,599411492,685351,599333115,685058,599217848,684932,599152652,684726,599075269,684419,598997905,684163,598901497,683956,598824707,683708,598716414,683527,598657468,683245,598548340,682855,598461721,682568,598370690,682370,598293264,682155,598226873,681891,598136878,681617,598048548,681280,597943703,681003,597869893,679465,597777622,679165,597704057,676783,597617460,676532,597518301,676263,597439856,675998,597360785,675644,597246311,675423,597188198,675093,597074004,674826,597015258,674585,596931124,674295,596841168,673971,596750670,673657,596655722,673333,596585538,672926,596473941,672706,596411110,672417,596308810,672128,596232170,671793,596148591,671442,596066063,671086,595952546,670785,595892899,670478,595792603,670188,595710650,669944,595626966,669588,595520316,669272,595433369,669031,595368886,668659,595268706,668361,595187318,668046,595108694,667747,595011656,667443,594918941,667195,594855960,666744,594731279,666538,594673263,666198,594581327,665916,594504154,665551,594404802,665151,594306160,664834,594237671,664463,594164256,663967,594037875,663696,593965302,663422,593905398,663037,593807047,662636,593713695,662261,593637810,661907,593561460,661487,593460951,660993,593360324,660642,593297825,651924,593212799,651355,593128313,650701,593040060,639830,592943106,627956,592851540,619892,592750963,616194,592683290,610931,592601474,604041,592509226,600293,592438116,596213,592329325,594223,592251347,592110,592160341,590161,592079754,587118,591987375,585157,591915610,583920,591817362,583403,591738649,582733,591628427,582236,591554183,581743,591459857,581233,591370357,580779,591295835,580275,591226785,577878,591141713,576988,591054806,576392,590956014,575523,590868124,574703,590790324,574077,590688262,573508,590603281,572914,590531537,572330,590447600,571683,590333305,571333,590278061,570776,590175472,570189,590094343,569207,590001929,566829,589917395,564837,589824111,564325,589758879,563908,589665540,563433,589579422,562889,589498701,562194,589397163,560174,589314829,559296,589212645,558528,589136064,557856,589056389,556967,588978194,554305,588885328,553171,588784163,552512,588705057,551751,588609244,550996,588536783,548250,588445491,547818,588368584,547396,588287967,546805,588200504,545670,588102324,543547,588020129,542077,587912920,541592,587846143,540964,587735777,539348,587669957,536539,587583196,533361,587513244,529280,587425937,522840,587335858,521890,587253316,520193,587149039,517789,587062961,514695,586982610,511042,586900841,506657,586822140,505992,586731857,502105,586618922,500561,586525487,497263,586456456,484131,586378279,476879,586297535,476093,586181865,475666,586119501,475131,586033781,474421,585933398,473828,585845766,473215,585765449,472657,585679784,472005,585591617,471335,585507956,470849,585432827,470219,585337093,469665,585254988,469052,585162139,468498,585089408,467866,585007712,467239,584913050,466700,584824318,465333,584735652,462619,584644160,461659,584565165,460790,584443771,460311,584380002,459744,584302967,459278,584229891,458684,584109623,458205,584044924,457655,583950396,457142,583865060,456540,583770350,456029,583681078,455616,583598327,455110,583509696,454618,583429894,454021,583337521,453547,583269537,453034,583170014,452542,583096800,452031,583006942,451491,582913320,450864,582826549,450320,582736352,449900,582661446,449418,582575536,448978,582501915,448582,582413296,448104,582305062,447710,582227562,447271,582145544,446797,582045859,446317,581954254,445933,581894880,445500,581780076,445177,581714309,444737,581614492,444170,581497477,443854,581423949,443510,581346413,443176,581267531,442842,581189773,442518,581116160,442115,581028176,441733,580929324,441390,580854701,441031,580766758,440709,580679188,440435,580592902,440116,580488687,439818,580409383,439490,580338239,439028,580218413,438660,580109892,438347,579980867,438047,579870353,437928,579821486,437629,579724865,437248,579618514,437117,579558310,436508,579360178,436301,579299855,435969,579218953,435381,579063154,435284,579020078,434879,578901451,434763,578868193,434428,578778374,434058,578671267,433848,578609743,433509,578527853,433112,578395490,432891,578322446,432660,578262965,432390,578177394,432032,578068916,431578,577979189,430910,577922698,430488,577800938,429997,577741719,429684,577641560,429474,577576552,428703,577365531,428285,577256004,428159,577224558,427681,577131718,427373,577056937,427053,576950633,426757,576878103,424531,576795659,422197,576692895,421400,576608864,421010,576501310,420813,576453475,420396,576358333,417417,576261867,416683,576190256,416326,576096947,415912,576005939,414559,575884848,414189,575832591,413262,575755934,412958,575650660,412631,575559736,412318,575476770,411803,575390528,411551,575326141,410895,575224151,410547,575151642,409121,575034975,408316,574959394,406615,574878417,401586,574802765,401222,574716990,400918,574619693,400681,574527593,400438,574463150,400113,574365407,399813,574293367,399459,574193144,399155,574105673,398871,574034524,398582,573920780,398283,573844577,397967,573752704,397648,573668996,397355,573595055,396965,573477575,396756,573414589,396450,573317001,396176,573238538,395875,573158417,395485,573062921,395199,572978867,394885,572896748,394597,572802183,394280,572705994,393975,572621922,393754,572563660,393416,572457902,393093,572358143,392856,572285340,392607,572216559,392373,572125555,391534,572005961,390764,571929501,390268,571846813,389885,571766431,389583,571695099,389159,571595634,388714,571502905,388325,571406300,388114,571340126,387780,571264440,387314,571140531,387094,571087455,386685,571008819,386237,570880195,385967,570796745,385775,570741010,385344,570627641,385056,570556645,384749,570485695,384168,570375799,383646,570296158,383134,570223781,382574,570139931,382064,570049499,381511,569933598,381311,569875744,380849,569795871,380365,569680719,380185,569624230,379612,569534385,378466,569449513,377373,569342882,375395,569250530,374736,569194082,374461,569079435,374252,569013920,373937,568908461,373424,568822588,373085,568735396,372059,568635864,371443,568562812,371095,568481428,370897,568410467,370631,568315018,369614,568242262,368765,568148199,368428,568061800,367783,567945132,367581,567871165,366991,567803262,365389,567724158,363616,567623207,362181,567501340,361033,567441130,358015,567349371,356702,567284999,355475,567206180,353810,567065907,351334,567021770,343768,566891909,340252,566861184,339219,566775054,337202,566644341,336622,566600610,336031,566514930,331483,566412754,330520,566304789,329708,566245800,328418,566149689,327060,566078277,326796,565991580,326497,565883817,326244,565803438,325814,565703116,325563,565643433,325326,565553704,325115,565472314,324887,565389677,324566,565275173,324286,565215227,324019,565134048,323724,565035130,323421,564926839,323184,564843116,322945,564766061,322664,564681874,322398,564604267,322126,564513308,321836,564419588,321564,564336109,321364,564264013,321041,564163955,320503,564097376,320236,563988176,320015,563919775,319588,563776354,319501,563734503,319295,563665111,318940,563545061,318598,563425229,318538,563403533,318139,563268530,318001,563222702,317759,563114189,317578,563044604,317145,562905216,317100,562881441,316847,562776024,316602,562682099,316362,562601578,316076,562496973,315960,562454187,315639,562330123,315412,562246873,315205,562176589,314958,562087736,314748,562016905,314452,561894669,314274,561814497,314094,561747937,313867,561656587,313629,561579436,313304,561458926,312942,561396858,312291,561315399,311640,561188889,311497,561136762,311203,561040908,310988,560986431,310724,560882616,310440,560787181,310159,560685148,310032,560635567,309772,560534119,309570,560460083,309307,560379544,309031,560289416,308322,560112618,308075,560020072,307780,559931144,307588,559860342,307354,559753320,307133,559669616,306932,559591648,306654,559499260,306472,559433431,306223,559333754,305951,559255193,305668,559163068,305430,559075350,305212,558991606,304998,558914194,304766,558816999,304520,558738251,304239,558653129,303980,558568962,303657,558443208,303468,558379210,303212,558292592,302995,558218537,302676,558104616,302341,558007492,302169,557961318,301843,557848061,301526,557754369,301360,557699561,301173,557615810,300908,557516220,300194,557419708,299376,557339605,299082,557244163,298835,557171297,298572,557079490,298236,556993735,297945,556905804,297625,556825005,297265,556741965,296725,556666738,296402,556563182,296099,556455171,295936,556379310,295744,556311354,295490,556234632,295059,556121396,294454,556029723,294182,555958405,293779,555857478,293493,555751997,293374,555700233,293107,555605887,292893,555529062,292651,555459011,292378,555357751,292072,555253567,291913,555194104,291618,555097383,291173,554981790,290935,554906457,290681,554837074,290348,554741221,290019,554644593,289834,554586743,289550,554495363,289221,554407342,288574,554282481,288360,554240867,288091,554146216,287822,554045452,287632,553964332,287363,553865082,287196,553809864,286944,553720657,286670,553638083,286333,553520941,286097,553467252,285748,553351475,285423,553263050,285068,553190756,284056,553080367,283637,553036531,283043,552909429,282810,552864701,282274,552747323,281072,552670214,278284,552590989,270922,552469590,267723,552424436,261162,552311146,258613,552241378,257104,552145104,256418,552061502,255826,551995148,254712,551872336,254365,551821723,253322,551718374,252350,551650134,251275,551545277,251067,551477033,250714,551364555,250476,551300179,250123,551197528,249899,551124807,249680,551048806,249466,550958340,249176,550845176,248965,550755250,248831,550707188,248550,550618040,248396,550528485,248094,550428102,247902,550339025,247624,550234007,247312,550139421,247025,550062551,246799,550011183,246400,549913615,246036,549840791,245551,549726153,245298,549656642,245073,549571343,244855,549486316,244671,549394253,244462,549296247,244204,549182621,244133,549140384,243874,549044586,243630,548954324,243363,548859539,243179,548805955,242912,548700778,242475,548595199,242293,548518591,242000,548411356,241807,548342677,241565,548266786,241338,548195741,241086,548100276,240898,548016030,240626,547909068,240436,547830082,240279,547763201,240054,547676864,239774,547560376,239542,547467753,239379,547423163,239120,547312447,238923,547242640,238690,547162849,238431,547075852,238210,546989569,237958,546874708,237757,546808810,237565,546728653,237287,546636805,237051,546558062,236811,546472598,236500,546353738,236269,546242269,236176,546189880,236035,546120285,235788,546016689,235549,545937458,235307,545862999,235032,545770306,234711,545647115,234560,545583901,234338,545472300,234205,545413477,234027,545337344,233798,545254485,233562,545161600,233337,545081901,233017,544969481,232908,544913397,232680,544815644,232458,544733291,232230,544658415,232014,544561392,231782,544458401,231583,544395779,231419,544312613,231082,544183160,230876,544106191,230719,544052097,230421,543945662,230215,543862891,229946,543760154,229791,543682797,229536,543602895,229302,543505965,229107,543441575,228794,543324261,228640,543261531,228367,543170257,228159,543093961,227933,543014383,227658,542900502,227482,542836046,227243,542755084,226949,542634932,226749,542572906,226508,542464871,226291,542377830,226104,542307877,225800,542189638,225624,542115018,225448,542053683,225235,541945860,225042,541885512,224834,541802862,224575,541690573,224397,541623603,224162,541543981,223910,541462094,223674,541354673,223514,541270273,223141,541169604,222848,541062720,222711,541025395,222501,540915731,222300,540833140,222112,540753166,221937,540656104,221731,540571904,221526,540486899,221302,540390869,221121,540317893,220817,540200441,220677,540129442,220551,540056354,220350,539957191,220218,539893267,220005,539811038,219798,539733873,219565,539621730,219409,539543726,219176,539428693,219060,539388260,218793,539278961,218617,539212575,218402,539109929,218160,539008770,217977,538918696,217869,538860487,217614,538746632,217495,538691165,217263,538578575,217058,538483975,216923,538418401,216742,538329540,216574,538265469,216315,538158707,216006,538085732,215662,537992587,215328,537877460,215121,537829274,214896,537700502,214732,537655791,214530,537557932,214272,537454840,214057,537388275,213823,537288354,213631,537208037,213423,537116139,213154,537028266,212974,536956925,212753,536858011,212527,536784996,212284,536686715,211926,536587131,211690,536519482,211450,536449670,211167,536359785,210841,536266528,210440,536152228,210251,536092766,209941,535970233,209848,535916455,209669,535837558,209281,535715786,209098,535658397,208750,535562575,208462,535441149,208376,535408093,208089,535286381,207883,535214528,207723,535133352,207150,535051271,206900,534959436,206631,534873653,206412,534792571,206095,534700932,205880,534620625,205527,534502179,205383,534460033,205166,534373671,204973,534290460,204750,534202359,204542,534094258,204412,534024293,204213,533911240,203733,533756108,202721,533685763,201613,533584091,201196,533468694,201019,533376831,200936,533330740,200576,533211427,200304,533152603,200063,533075329,199862,532987917,199461,532890753,199177,532780345,198826,532709748,198640,532647750,198457,532549910,198189,532455290,197867,532338548,197720,532287556,197461,532200033,197293,532117120,197082,532010251,196950,531947828,196738,531846064,196583,531770833,196399,531671782,196255,531587629,196107,531515861,195912,531412449,195778,531348208,195607,531252717,195367,531128440,195302,531087607,195131,530988849,194969,530918203,194747,530799868,194551,530698433,194445,530649275,194262,530553722,194042,530447735,193915,530362378,193782,530283295,193683,530229552,193518,530114558,193368,530057302,193168,529959310,192987,529865398,192819,529773907,192668,529691283,192440,529593694,192300,529494581,192024,529412242,191828,529364996,191572,529232740,191402,529147752,191316,529098214,191128,529010353,190910,528890491,190775,528815130,190605,528728254,190440,528626107,190355,528575117,190176,528484242,190012,528396956,189849,528303239,189692,528230030,189518,528151393,189300,528051441,189142,527983957,188964,527886706,188750,527782127,188592,527705959,188403,527635763,188193,527538248,188039,527454874,187883,527374104,187686,527273583,187486,527182451,187323,527103811,187158,527025583,186994,526942035,186740,526806805,186649,526750023,186490,526676114,186275,526567135,186129,526478440,186026,526427347,185864,526342066,185612,526211805,185454,526137218,185318,526066509,185134,525966686,185000,525895149,184774,525783592,184617,525725171,184370,525623900,183871,525509858,183561,525458294,183363,525364689,183149,525261758,183050,525202791,182864,525103705,182718,525032455,182550,524945879,182342,524852747,182164,524777967,181956,524677124,181812,524613785,181595,524503797,181470,524440382,181298,524346520,181119,524265206,180934,524161571,180749,524066059,180606,524002559,180399,523895894,180238,523827571,180080,523743351,179707,523570632,179487,523450474,179187,523323163,179175,523309583,178837,523187515,178719,523140981,178436,523019396,178251,522948083,178036,522857343,177809,522760279,177700,522708720,177530,522596042,177416,522523038,177288,522447753,177136,522344633,176964,522247304,176833,522182456,176671,522081532,176495,521987778,176397,521925449,176256,521840978,176062,521751541,175819,521646351,175717,521585917,175495,521452939,175407,521383878,175223,521268722,175161,521223225,175023,521135976,174892,521067224,174737,520968156,174614,520885601,174440,520797371,174294,520710925,174124,520630732,173937,520524678,173700,520382774,173695,520377529,173504,520283921,173357,520190094,173237,520120854,173055,519995351,172963,519936599,172748,519820434,172631,519749580,172493,519678812,172307,519577534,172188,519502651,172022,519419186,171822,519327331,171587,519211694,171505,519166052,171228,518992108,171127,518911184,170971,518797044,170865,518724549,170755,518642833,170591,518526592,170513,518467451,170382,518378033,170161,518246737,170092,518196118,169965,518114553,169756,517972791,169725,517947322,169587,517849974,169449,517772275,169274,517672739,169161,517605287,169035,517507068,168905,517421386,168766,517325833,168665,517256960,168503,517161558,168421,517086692,168283,517006323,168077,516844815,167974,516774048,167935,516747512,167690,516593293,167639,516547111,167529,516488702,167381,516395842,167261,516315219,167120,516221551,166965,516116273,166849,516048168,166723,515965739,166616,515887930,166500,515797571,166361,515678544,166281,515609734,166144,515510597,166017,515420140,165918,515347155,165753,515248118,165666,515175282,165547,515094054,165449,515022594,165328,514923238,165215,514837897,165106,514739589,165032,514661225,164942,514586394,164850,514503118,164743,514413747,164575,514284611,164513,514234321,164402,514141580,164314,514054201,164183,513961192,164066,513893237,163920,513803297,163780,513727969,163551,513607230,163518,513553057,163343,513442367,163220,513376551,163110,513295922,162986,513189698,162840,513103073,162715,513034459,162585,512941065,162477,512857656,162358,512755111,162251,512683278,162115,512568784,161954,512469572,161856,512396942,161783,512324909,161675,512246362,161566,512169596,161431,512059776,161328,511996710,161180,511897514,161016,511788119,160940,511739100,160824,511648944,160694,511566808,160566,511470755,160379,511365983,160259,511281171,160132,511196898,159975,511107040,159869,511041206,159640,510921971,159502,510853060,159354,510775790,159213,510700430,159088,510605710,158984,510526761,158888,510442802,158772,510355960,158621,510226265,158563,510176434,158429,510082618,158342,510011444,158263,509921420,158111,509801685,157989,509715028,157912,509648613,157797,509557904,157716,509488609,157636,509340447,157483,509306811,157326,509206168,157234,509133685,157121,509035655,157013,508946650,156941,508863960,156871,508789404,156793,508711857,156695,508610130,156601,508526016,156502,508444655,156401,508367539,156292,508258005,156215,508190224,156107,508103367,156008,508010559,155895,507910724,155826,507851807,155692,507738758,155592,507648685,155481,507554316,155383,507477510,155223,507356081,155153,507294247,155090,507231515,154957,507117273,154883,507056182,154751,506949594,154647,506865255,154577,506806204,154435,506683206,154349,506613279,154223,506516008,154117,506465039,153917,506319476,153884,506290215,153751,506205050,153631,506106721,153503,506018469,153402,505946361,153274,505863228,153127,505751377,153037,505690566,152887,505559848,152827,505514263,152690,505413481,152594,505337581,152520,505240290,152412,505167564,152297,505084633,152117,504950693,152026,504888570,151933,504828499,151807,504741883,151699,504636041,151564,504540239,151429,504433876,151356,504375424,151274,504305298,151137,504206017,151038,504131319,150898,504045408,150759,503939621,150647,503865556,150527,503766080,150416,503691508,150255,503574283,150180,503515977,150096,503440875,149967,503339219,149863,503262291,149760,503184970,149645,503084468,149501,502992855,149358,502894660,149248,502819636,149173,502749576,149043,502656335,148736,502548691,148423,502466627,148271,502405152,147991,502308606,147576,502200907,147404,502135444,147055,502022589,146913,501977240,146518,501859187,146295,501798690,145974,501689062,145628,501596458,145321,501509286,145093,501440384,144638,501299327,144547,501268965,144201,501186501,143913,501106658,143644,501019552,143401,500936950,143135,500841154,142790,500727687,142631,500670770,142253,500531071,142181,500505126,141766,500378440,141615,500322081,141339,500227722,140705,500015629,140498,499947647,140353,499895914,139994,499780611,139788,499713921,139530,499622483,139316,499557841,139031,499453257,138600,499310819,138436,499256118,138264,499203842,137942,499120341,137636,499009240,137427,498935742,137095,498840193,136833,498761400,136440,498643908,136230,498575630,135943,498478380,135800,498416961,135345,498264861,134962,498141639,134771,498086843,134397,497970246,134111,497889133,133834,497814082,133498,497703945,133218,497622659,132989,497558098,132302,497357771,131601,497137471,131212,497025502,130639,496912259,130428,496879495,129896,496728373,129739,496673819,129427,496566006,129280,496513084,129078,496444586,128807,496342310,128310,496177906,127855,496042590,127641,495958967,127550,495915808,127265,495820223,127062,495751396,126557,495582976,126178,495461796,125908,495360561,125766,495298010,125449,495191180,125281,495131939,124929,495018560,124769,494972239,124277,494840890,124137,494800287,123835,494695752,123592,494631574,123317,494534068,123083,494449609,122615,494312545,122496,494273081,122182,494167710,122054,494109203,121599,493960233,121494,493925349,121186,493831002,120900,493736863,120672,493650416,120522,493580414,120115,493433769,119934,493364447,119664,493275212,119340,493153551,119125,493075483,118779,492951649,118589,492846991,118512,492801279,118214,492685936,118037,492611074,117876,492536755,117576,492422007,117475,492381712,117248,492291822,116963,492170446,116844,492116747,116653,492030077,116374,491933114,116208,491868145,115985,491772951,115714,491670043,115461,491583901,115208,491487913,115025,491401969,114854,491323276,114642,491239109,114367,491138115,114117,491037967,113995,490987947,113715,490886466,113527,490817127,113104,490661091,113082,490651387,112595,490455062,112418,490396972,111992,490225454,111676,490100803,111448,490012709,111075,489878754,110645,489746370,110497,489698393,110196,489594808,109685,489414160,109448,489323715,109224,489242309,108954,489185383,108452,489076950,108162,488986558,107957,488918621,107688,488820833,107273,488682467,107214,488652932,107015,488576247,106775,488485761,106334,488321541,106100,488224066,105865,488127792,105690,488052085,105387,487965005,105186,487884463,104926,487794514,104639,487708748,104327,487603448,104114,487533299,103800,487439653,103396,487358631,103119,487273497,102908,487194191,102521,487067898,102387,487027884,101911,486864213,101812,486841812,101599,486763345,101241,486641080,100943,486563557,100479,486413492,100212,486334997,99905,486218562,99687,486147902,99408,486049713,99201,485980556,98983,485895036,98726,485796747,98444,485683413,98119,485563306,97803,485450069,97549,485351906,97300,485270978,97137,485208303,96915,485127447,96607,485000061,96495,484956427,96202,484848388,96010,484782581,95718,484682644,95409,484584667,95186,484510557,94864,484412693,94572,484337709,94221,484230715,93976,484145983,93823,484092260,93258,483886756,92627,483705661,92359,483613764,92251,483570743,91875,483450526,91693,483393667,91424,483299691,91151,483201476,90941,483120621,90601,483015751,90468,482969383,90063,482854835,89722,482776952,89556,482676318,89432,482618357,89184,482521172,88950,482442403,88678,482349644,88433,482268181,88160,482166998,87909,482087086,87554,481964514,87397,481908582,86946,481753031,86599,481620558,86447,481551418,86301,481480172,86110,481390359,85905,481318967,85671,481219406,85469,481137059,85250,481039830,85033,480951209,84862,480880931,84640,480785743,84464,480707005,84216,480607104,84017,480534445,83718,480416725,83570,480359495,83372,480290040,83096,480186770,82864,480100889,82506,479982932,82380,479939283,82057,479829971,81792,479741834,81599,479667829,81341,479561147,81188,479504407,80912,479403374,80651,479334685,80277,479224862,79872,479094709,79822,479072573,79601,478993350,79342,478890415,79144,478809270,78966,478725402,78727,478614651,78591,478560822,78403,478468361,78194,478382835,77886,478269534,77505,478106042,77254,478008456,77126,477953157,76932,477862594,76696,477773713,76487,477693006,76172,477568499,76066,477523549,75774,477409193,75613,477335019,75324,477216116,75216,477165873,75021,477088820,74799,476992878,74412,476826146,74051,476700192,73929,476652183,73565,476535248,73382,476478094,73159,476401526,72908,476291039,72744,476227739,72518,476123918,72301,476042333,72009,475930330,71828,475863086,71587,475752421,71477,475711248,71144,475587316,71047,475515379,70559,475381884,70322,475306509,70145,475249078,69911,475187155,69475,475078441,69162,475009312,68921,474928888,68614,474831404,68380,474745131,68155,474669162,67676,474442919,67554,474387701,67336,474301211,67149,474215729,66925,474141819,66626,474043125,66127,473843707,66034,473808633,65654,473663746,65566,473615980,65366,473529278,65039,473403362,64919,473361754,64654,473251253,64483,473189249,64226,473070147,64084,473003621,63871,472900160,63753,472845370,63560,472768973,63318,472648967,63204,472597673,63027,472497041,62866,472419539,62559,472285025,62483,472246102,62332,472164665,62138,472078426,61864,471954385,61760,471907774,61586,471810716,61390,471715961,61240,471638208,60963,471509966,60795,471439244,60637,471390975,60263,471222915,60236,471200877,60057,471096057,59896,471020858,59677,470914870,59543,470844533,59378,470754210,59211,470667341,59102,470609769,58761,470425432,58547,470326013,58445,470252575,58274,470163305,58092,470081518,57828,469963390,57720,469912434,57483,469804314,57255,469682560,57200,469649332,57014,469548453,56877,469483479,56689,469391840,56466,469297576,56109,469183235,55924,469081300,55869,469054063,55722,468971914,55473,468844959,55274,468733403,55159,468678773,54918,468551248,54867,468516737,54647,468409467,54551,468356849,54295,468230881,54182,468166628,54034,468099075,53861,468015101,53676,467915058,53502,467823424,53267,467720639,53071,467637490,52927,467562170,52775,467491646,52509,467385080,52307,467320828,51788,467215404,51397,467135938,51135,467014610,51069,466971253,50913,466878413,50729,466765499,50637,466711317,50349,466564810,50041,466428859,49887,466360364,49727,466283532,49530,466169030,49417,466105490,49258,466025996,49027,465901712,48728,465743288,48555,465667766,48357,465590891,48170,465506493,47995,465415472,47767,465303312,47605,465210198,47326,465068776,47050,464919237,47017,464895456,46817,464805650,46500,464693368,46401,464634825,46233,464554908,46056,464458650,45912,464390533,45739,464289118,45443,464149247,45251,464057834,45155,464017453,45020,463934984,44846,463850546,44573,463700239,44423,463614693,44041,463424531,43723,463256157,43522,463148007,43402,463078146,43172,462967460,42990,462868811,42808,462768975,42776,462751007,42603,462660006,42196,462489325,42005,462405285,41828,462317050,41649,462225134,41358,462122366,41011,461927779,40899,461874170,40709,461755731,40638,461707912,40493,461628679,40327,461508954,40172,461434456,40027,461357008,39891,461268328,39670,461154109,39302,460956334,39185,460875531,39106,460834490,38854,460715957,38623,460596236,38614,460588599,38401,460482441,38124,460360881,37983,460276067,37897,460215537,37768,460159165,37567,460052349,37287,459915954,37267,459897593,36819,459640345,36460,459486023,36412,459461859,35905,459259055,35765,459193240,35411,459053858,35244,458964201,35214,458945774,35009,458841717,34629,458659536,34393,458502105,34230,458406893,34101,458340882,33921,458247818,33703,458110370,33652,458082289,33456,457970789,33284,457837764,33271,457810883,33188,457716546,32962,457502650,32909,457432173,32843,457367482,32696,457264717,32630,457197753,32550,457116268,32462,457036857,32297,456938676,32204,456837384,32048,456710442,31934,456601381,31824,456502939,31745,456443272,31579,456343786,31346,456165455,31213,456062264,30975,455903060,30882,455837536,30643,455686141,30604,455659547,30428,455531408,30356,455490508,30217,455383905,30017,455213056,29941,455130781,29741,454973693,29657,454884015,29554,454767357,29494,454712961,29385,454612221,29310,454532391,29162,454400672,29096,454360741,28989,454267397,28878,454154650,28801,454088736,28714,454008792,28607,453938853,28450,453844346,28322,453717416,28253,453642460,28185,453580910,28036,453448891,27987,453391599,27909,453318897,27709,453174124,27671,453143039,27512,453029638,27376,452932075,27329,452882774,27244,452806168,27166,452729513,26965,452581072,26852,452527743,26784,452468344,26667,452361409,26575,452286589,26463,452202523,26317,452087018,26250,452030977,26132,451922253,26046,451848137,25883,451769235,25711,451652547,25606,451584582,25462,451485213,25324,451373816,25267,451334020,25101,451230326,24915,451130741,24847,451084394,24677,450953724,24587,450891283,24413,450819153,24217,450714789,24095,450654954,23859,450553366,23726,450474598,23627,450395644,23504,450301166,23352,450208933,23219,450123380,23100,450044465,22994,449961548,22862,449872554,22755,449786985,22609,449676837,22517,449614142,22372,449512307,22257,449433207,22093,449322895,21991,449244181,21891,449169248,21778,449090268,21630,448976571,21539,448914170,21422,448826789,21277,448693931,21189,448616532,20982,448424645,20870,448332554,20849,448309742,20755,448230480,20656,448145739,20546,448057135,20475,447964334,20362,447791777,20287,447684308,20210,447588830,20133,447505309,20098,447448870,20036,447355006,19939,447234043,19881,447128900,19867,447109686,19764,446955553,19737,446915167,19670,446819531,19637,446763263,19582,446680407,19502,446578445,19431,446508796,19356,446407469,19260,446281530,19146,446142958,19052,446037259,18999,445960237,18941,445894883,18827,445777961,18724,445681870,18678,445637963,18554,445513861,18502,445456504,18441,445381629,18291,445202937,18218,445111857,18139,445022475,18052,444931703,17983,444852826,17905,444763288,17839,444684910,17730,444564551,17655,444497675,17582,444420848,17434,444270184,17428,444256105,17272,444082022,17207,444000988,17044,443816230,16973,443725378,16887,443630756,16801,443528209,16781,443479623,16681,443371481,16557,443280793,16489,443215428,16416,443135198,16350,443052371,16268,442965402,16164,442848667,16080,442764015,15941,442637638,15834,442522164,15714,442407170,15590,442297667,15511,442226060,15458,442177971,15294,442059355,15188,441981233,15133,441884655,15120,441831888,15056,441688131,15026,441592379,15021,441577521,14990,441479069,14959,441396115,14924,441310173,14872,441216075,14807,441097094,14793,441051856,14765,440943937,14746,440886894,14699,440779608,14648,440627316,14592,440448605,14531,440273934,14503,440196023,14454,440074243,14414,439961132,14398,439901387,14376,439821921,14353,439747239,14299,439596861,14283,439548372,14234,439455460,14213,439395034,14173,439291609,14129,439160886,14108,439066815,14068,438937594,14052,438898841,14007,438787713,13973,438683493,13956,438643166,13903,438487290,13894,438463422,13869,438364772,13825,438297016,13755,438194682,13732,438124186,13690,438027787,13669,437953483,13609,437803665,13596,437771305,13551,437666554,13527,437574251,13502,437493761,13479,437420395,13443,437338282,13409,437248323,13374,437139091,13352,437062691,13331,436985837,13306,436912779,13270,436817314,13223,436646763,13189,436555145,13152,436472492,13095,436318650,13081,436272405,13057,436212968,13029,436125907,12974,435968519,12930,435795814,12925,435777104,12893,435688944,12846,435587991,12819,435517221,12784,435429839,12760,435336799,12735,435267111,12709,435185291,12672,435100033,12633,435016509,12599,434913452,12566,434808971,12493,434614546,12478,434567393,12434,434478167,12406,434408832,12363,434259832,12348,434221030,12324,434150749,12266,434037032,12155,433824619,12152,433807051,12104,433681826,12075,433608463,12049,433537601,12028,433458072,12000,433373719,11951,433260041,11925,433176155,11897,433093787,11878,433029937,11827,432925793,11772,432740967,11734,432665774,11691,432541805,11679,432506373,11651,432418244,11626,432296741,11614,432230344,11580,432153504,11554,432062833,11523,431990976,11470,431870368,11439,431771033,11409,431678048,11392,431640453,11361,431549958,11326,431473248,11291,431387351,11261,431296243,11232,431205869,11203,431122943,11172,431041031,11109,430908880,11092,430858127,11056,430766098,11033,430681854,11010,430582145,10961,430377783,10937,430330298,10909,430241239,10891,430152310,10865,430065073,10847,429987747,10811,429856349,10806,429830074,10751,429708026,10720,429609427,10666,429514635,10649,429478657,10613,429377485,10579,429285238,10556,429216924,10513,429123768,10462,429007810,10428,428908780,10419,428879870,10385,428778434,10343,428631607,10328,428585910,10293,428487948,10283,428449869,10239,428331334,10223,428257857,10206,428186109,10182,428088044,10155,428012970,10118,427885248,10105,427835825,10076,427731807,10060,427669784,9972,427352445,9946,427257399,9932,427205043,9885,427007542,9869,426943492,9837,426841179,9823,426793780,9798,426692794,9774,426581001,9756,426475137,9738,426403393,9731,426370586,9713,426268686,9667,426078713,9645,426006680,9612,425887003,9579,425820784,9574,425682843,9545,425571362,9529,425503022,9492,425403758,9470,425269489,9465,425243973,9443,425157665,9426,425072626,9408,424979388,9382,424883376,9364,424803201,9344,424726204,9316,424641264,9291,424562228,9246,424355552,9233,424301686,9198,424129269,9177,424040960,9109,423843356,9090,423769250,9058,423687825,9031,423587562,8992,423483035,8976,423422500,8955,423352983,8917,423226292,8896,423150853,8858,423026842,8851,422998708,8813,422871502,8803,422814974,8779,422742587,8746,422630092,8728,422569832,8701,422481890,8677,422382514,8658,422283972,8639,422206043,8615,422128737,8557,421903211,8538,421838013,8515,421759065,8501,421709068,8471,421611823,8428,421478509,8412,421411006,8394,421339176,8370,421252646,8353,421189411,8332,421103719,8314,421017480,8290,420922272,8259,420827520,8232,420734393,8194,420595482,8188,420583225,8159,420499634,8142,420408396,8113,420312628,8089,420238041,8063,420152110,8032,420006542,8025,419975905,7963,419800975,7913,419627182,7888,419539819,7865,419449645,7838,419346613,7823,419291930,7793,419181850,7765,419079499,7736,418984973,7720,418915315,7686,418783339,7680,418762333,7642,418637510,7614,418570313,7591,418502014,7568,418420784,7531,418334387,7513,418236917,7493,418126474,7484,418065143,7454,417973359,7435,417907226,7415,417815173,7385,417725112,7360,417629216,7333,417543202,7311,417465854,7271,417370723,7242,417258647,7229,417203451,7203,417100609,7178,417036624,7153,416945210,7071,416702353,7068,416687836,7008,416485542,6992,416427380,6948,416333576,6932,416256106,6879,416063744,6844,415980369,6832,415897620,6807,415808608,6779,415742609,6746,415633903,6727,415567694,6676,415379694,6654,415306117,6631,415213580,6576,415057156,6547,414967547,6522,414881219,6484,414789422,6457,414682768,6441,414627151,6401,414518090,6372,414446495,6357,414365868,6317,414225606,6301,414164027,6279,414064304,6252,413996639,6205,413838485,6177,413747342,6148,413655624,6110,413531585,6079,413406139,6061,413319920,5992,413054627,5963,412982084,5921,412832430,5890,412705255,5866,412632468,5832,412522108,5798,412392349,5776,412319040,5774,412275700,5749,412187330,5729,412089566,5699,412004913,5680,411913600,5659,411820021,5621,411662515,5594,411600568,5559,411515385,5536,411400031,5510,411321090,5466,411175523,5444,411077863,5370,410891758,5341,410787055,5306,410686415,5289,410623612,5269,410540047,5238,410458764,5201,410357177,5178,410300179,5151,410191173,5117,410125666,5086,410033979,5056,409949511,5030,409872627,4994,409784906,4947,409646179,4876,409454205,4868,409424277,4839,409319060,4822,409262501,4785,409132483,4763,409078438,4725,408960440,4707,408896368,4676,408799292,4654,408733452,4635,408664608,4606,408577944,4582,408469638,4547,408346523,4540,408313391,4514,408209077,4495,408145065,4469,408036746,4443,407944857,4404,407821200,4401,407794654,4376,407706767,4324,407587531,4305,407518511,4271,407426796,4252,407355650,4220,407242830,4192,407162279,4158,407072655,4138,407009123,4114,406922818,4090,406829908,4053,406764370,4009,406632679,3975,406532041,3941,406435583,3936,406416272,3898,406307971,3853,406205940,3831,406157466,3783,406044007,3750,405955573,3719,405894332,3672,405808616,3571,405606547,3517,405480111,3512,405468189,3461,405329271,3446,405278771,3412,405197093,3374,405115159,3339,405034183,3318,404937077,3293,404822249,3279,404774044,3256,404680234,3225,404560852,3214,404486222,3185,404381691,3171,404334388,3149,404231816,3121,404072691,3100,403953130,3079,403852731,3074,403822642,3040,403713006,3020,403654079,2995,403566032,2968,403469613,2948,403385644,2927,403293488,2904,403180107,2889,403122968,2860,403025692,2844,402925313,2818,402822193,2806,402757959,2778,402608250,2758,402524210,2720,402431294,2673,402322565,2646,402270583,2596,402184523,2551,402071287,2499,401983500,2465,401917793,2443,401831201,2419,401746688,2392,401665342,2336,401456675,2322,401401765,2297,401321379,2240,401227782,2223,401123893,2203,401059039,2172,400971770,2140,400883376,2016,400799995,1919,400712363,1728,400576264,1652,400521772,1518,400440870,1402,400361374,1275,400267723,1183,400135645,1153,400103570,1058,400017067,965,399909958,870,399789775,814,399763330,712,399665968,634,399566915,568,399499167,539,399324708,516,399211657,508,399160094,482,399069408,394,398745083,365,398626196,326,398350430,315,398188766,304,398116766,272,397948198,249,397745016,236,397650343,233,397605695,217,397507017,183,397370524,182,397341406,157,396922460,156,396882366,147,396803779,142,396701690,133,396600604,91,395978376,87,395943246,81,395641605,75,395354126,64,394617939,59,394471174,57,394347239,50,394055167,47,393973444,35,393873324,31,393761769,30,393699855,28,393610932,23,393432343,15,393107867,4,392813448,1,392753103];
    var lang = document.querySelector('html').lang.toLowerCase() || navigator.language.toLowerCase();
    if (!["en", "zh-cn", "zh-tw", "ja", "ru", "kr"].includes(lang)) lang = "en";
    const i18n = {
        en: {
            title: "presumed registration time",
            prefix: "R",
        },
        "zh-cn": {
            title: "推测的注册时间",
            prefix: "注",
        },
        "zh-tw": {
            title: "推測的註冊時間",
            prefix: "注",
        },
        ja: {
            title: "推定登録時間",
            prefix: "R",
        },
        ru: {
            title: "Предполагаемое время регистрации",
            prefix: "R",
        },
        kr: {
            title: "예상 등록 시간",
            prefix: "R",
        },
    };
    const title = i18n[lang].title;
    const prefix = i18n[lang].prefix;

    function ts2dt(ts) {
        return new Date(ts * 1000).toISOString();
    }

    function genregtime(uid) {
        var uid1;
        var uid2;
        var ts1;
        var ts2;
        var ts;
        if (uid >= db[0]) {
            ts = db[1] + (uid - db[0]) * avggap + billion;
            //console.log(avggap, uid - db[0], (ts - db[1] - billion) / 3600);
            if (ts * 1000 > maxts) ts = maxts / 1000;
            return ts2dt(ts);
        }
        for (var i = 0; i < db.length; i+=2) {
            uid1 = db[i];
            ts1 = db[i + 1];
            if (uid >= uid1) {
                ts = ts1 + (ts2 - ts1) / (uid2 - uid1) * (uid - uid1) + billion;
                return ts2dt(ts);
            }
            uid2 = uid1;
            ts2 = ts1;
        }
    }

    function gensnippet(regtime, uid) {
        return `<span class="regtime" style="margin-left: 10px; font-weight: bold; color: red;" title="uid ${uid} ${title}">${prefix} <relative-time datetime="${regtime.split(".")[0]}+00:00" prefix="">${regtime.split("T")[0]}</relative-time></span>`;
    }

    function run() {
        //console.log(`${db.length / 2} uid records in db, max uid is ${db[0]} @ ${db[1]}`);
        var regtime;
        var maxuid = 0;
        const uids = document.documentElement.innerHTML.matchAll(/\/users\/(\d+)/g);
        for (const uid of uids) {
            if (parseInt(uid[1]) > maxuid) maxuid = parseInt(uid[1]);
        }
        // 如果最大uid超出了db中所记录,假设页面上最大的uid为刚注册,并依此设定超出数据库范围的uid的注册间隔;如果算得的gap显然不合理,则沿用初始值
        if (maxuid >= db[0]) {
            avggap = (maxts / 1000 - billion - db[1]) / (maxuid - db[0]);
        }
        //console.log(avggap);
        if (!window.location.href.match(/(greasyfork|sleazyfork).org\/\w+-\w+\/users(\?page=1)?$/) && avggap > 216) avggap = 216;
        if (window.location.href.match(/(greasyfork|sleazyfork).org\/\w+-\w+\/users\/\d+(-[^/]*)?$/) && jQuery("section#about-user > span.regtime").length === 0) {
            let uid = jQuery("section#about-user > a.report-link").attr("href").match(/item_id=(\d+)/)[1];
            regtime = genregtime(uid);
            jQuery("section#about-user > h2").after(gensnippet(regtime, uid));
        }
        jQuery("a.user-link, dd.script-list-author > span > a, dd.script-show-author > span > a, table.log-table > tbody > tr > td > a, i:contains('Deleted user ')").each(function(i, el) {
            var lastele = jQuery(el).parent().children().last();
            if (lastele.attr("class") === "regtime") return;
            var m = (el.tagName === "A") ? jQuery(el).attr("href").match(/\/users\/(\d+)/) : jQuery(el).text().match(/Deleted user (\d+)/);
            if (!m) return;
            regtime = genregtime(m[1]);
            lastele.after(gensnippet(regtime, m[1]));
        });
        return run;
    }

    var maxts = 0;
    for (const datetime of document.documentElement.innerHTML.matchAll(/<relative-time datetime="(.*?)"/g)) {
        let ts = new Date(datetime[1]).getTime();
        if (ts > maxts) maxts = ts;
    }
    console.log("maxts: " + maxts);
    if (maxts === 0) maxts = now;
    if (new Date().getTime() - GM_getValue("utime", 0) <= 86400000) {
        console.log("skip db2 update");
        db = GM_getValue("db2", []).concat(db);
        setInterval(run(), interval);
    } else {
        GM_xmlhttpRequest({
            method: "GET",
            url: `https://greasyfork.org/scripts/450618-db2-for-script-450603/code/db2%20for%20script%20450603.js?v=${now}`,
            onload(res) {
                console.log("db2 updated");
                GM_setValue("utime", now);
                var db2 = JSON.parse(res.responseText.match(/var db2 = (\[.*?\]);/)[1]);
                GM_setValue("db2", db2);
                db = db2.concat(db);
                setInterval(run(), interval);
            },
            onerror(res) {
                console.error("db2 update failed");
                db = GM_getValue("db2", []).concat(db);
                setInterval(run(), interval);
            },
            onabort(res) {
                console.warn("db2 update abort");
                db = GM_getValue("db2", []).concat(db);
                setInterval(run(), interval);
            },
            ontimeout(res) {
                console.error("db2 update timeout");
                db = GM_getValue("db2", []).concat(db);
                setInterval(run(), interval);
            },
        });
    }
})();