diff --git a/models/jsdata_pojo.py b/models/jsdata_pojo.py new file mode 100644 index 0000000..b5600b5 --- /dev/null +++ b/models/jsdata_pojo.py @@ -0,0 +1,274 @@ +from typing import Any +from dataclasses import dataclass +import json + + +@dataclass +class JsDataPojo: + opts: str + ttst: int + ifov: bool + hc: int + br_oh: int + br_ow: int + ua: str + wbd: bool + tagpu: float + wdif: bool + wdifrm: bool + npmtm: bool + br_h: int + br_w: int + isf: bool + nddc: int + rs_h: int + rs_w: int + rs_cd: int + phe: bool + nm: bool + jsf: bool + lg: str + pr: int + ars_h: int + ars_w: int + tz: int + str_ss: bool + str_ls: bool + str_idb: bool + str_odb: bool + plgod: bool + plg: int + plgne: str + plgre: str + plgof: str + plggt: str + pltod: bool + hcovdr: bool + hcovdr2: bool + plovdr: bool + plovdr2: bool + ftsovdr: bool + ftsovdr2: bool + lb: bool + eva: int + lo: bool + ts_mtp: int + ts_tec: bool + ts_tsa: bool + vnd: str + bid: str + mmt: str + plu: str + hdn: bool + awe: bool + geb: bool + dat: bool + med: str + aco: str + acots: bool + acmp: str + acmpts: bool + acw: str + acwts: bool + acma: str + acmats: bool + acaa: str + acaats: bool + ac3: str + ac3ts: bool + acf: str + acfts: bool + acmp4: str + acmp4ts: bool + acmp3: str + acmp3ts: bool + acwm: str + acwmts: bool + ocpt: bool + vco: str + vcots: bool + vch: str + vchts: bool + vcw: str + vcwts: bool + vc3: str + vc3ts: bool + vcmp: str + vcmpts: bool + vcq: str + vcqts: bool + vc1: str + vc1ts: bool + dvm: int + sqt: bool + so: str + wdw: bool + cokys: str + ecpc: bool + lgs: bool + lgsod: bool + psn: bool + edp: bool + addt: bool + wsdc: bool + ccsr: bool + nuad: bool + bcda: bool + idn: bool + capi: bool + svde: bool + vpbq: bool + ucdv: bool + spwn: bool + emt: bool + bfr: bool + dbov: bool + cfpfe: str + stcfp: str + ckwa: bool + glvd: str + glrd: str + wwl: bool + jset: int + + @staticmethod + def from_dict(obj: Any) -> 'JsDataPojo': + _opts = str(obj.get("opts")) + _ttst = int(obj.get("ttst")) + _ifov = False + _hc = int(obj.get("hc")) + _br_oh = int(obj.get("br_oh")) + _br_ow = int(obj.get("br_ow")) + _ua = str(obj.get("ua")) + _wbd = False + _tagpu = float(obj.get("tagpu")) + _wdif = False + _wdifrm = False + _npmtm = False + _br_h = int(obj.get("br_h")) + _br_w = int(obj.get("br_w")) + _isf = + _nddc = int(obj.get("nddc")) + _rs_h = int(obj.get("rs_h")) + _rs_w = int(obj.get("rs_w")) + _rs_cd = int(obj.get("rs_cd")) + _phe = + _nm = + _jsf = + _lg = str(obj.get("lg")) + _pr = int(obj.get("pr")) + _ars_h = int(obj.get("ars_h")) + _ars_w = int(obj.get("ars_w")) + _tz = int(obj.get("tz")) + _str_ss = + _str_ls = + _str_idb = + _str_odb = + _plgod = + _plg = int(obj.get("plg")) + _plgne = str(obj.get("plgne")) + _plgre = str(obj.get("plgre")) + _plgof = str(obj.get("plgof")) + _plggt = str(obj.get("plggt")) + _pltod = + _hcovdr = + _hcovdr2 = + _plovdr = + _plovdr2 = + _ftsovdr = + _ftsovdr2 = + _lb = + _eva = int(obj.get("eva")) + _lo = + _ts_mtp = int(obj.get("ts_mtp")) + _ts_tec = + _ts_tsa = + _vnd = str(obj.get("vnd")) + _bid = str(obj.get("bid")) + _mmt = str(obj.get("mmt")) + _plu = str(obj.get("plu")) + _hdn = + _awe = + _geb = + _dat = + _med = str(obj.get("med")) + _aco = str(obj.get("aco")) + _acots = + _acmp = str(obj.get("acmp")) + _acmpts = + _acw = str(obj.get("acw")) + _acwts = + _acma = str(obj.get("acma")) + _acmats = + _acaa = str(obj.get("acaa")) + _acaats = + _ac3 = str(obj.get("ac3")) + _ac3ts = + _acf = str(obj.get("acf")) + _acfts = + _acmp4 = str(obj.get("acmp4")) + _acmp4ts = + _acmp3 = str(obj.get("acmp3")) + _acmp3ts = + _acwm = str(obj.get("acwm")) + _acwmts = + _ocpt = + _vco = str(obj.get("vco")) + _vcots = + _vch = str(obj.get("vch")) + _vchts = + _vcw = str(obj.get("vcw")) + _vcwts = + _vc3 = str(obj.get("vc3")) + _vc3ts = + _vcmp = str(obj.get("vcmp")) + _vcmpts = + _vcq = str(obj.get("vcq")) + _vcqts = + _vc1 = str(obj.get("vc1")) + _vc1ts = + _dvm = int(obj.get("dvm")) + _sqt = + _so = str(obj.get("so")) + _wdw = + _cokys = str(obj.get("cokys")) + _ecpc = + _lgs = + _lgsod = + _psn = + _edp = + _addt = + _wsdc = + _ccsr = + _nuad = + _bcda = + _idn = + _capi = + _svde = + _vpbq = + _ucdv = + _spwn = + _emt = + _bfr = + _dbov = + _cfpfe = str(obj.get("cfpfe")) + _stcfp = str(obj.get("stcfp")) + _ckwa = + _glvd = str(obj.get("glvd")) + _glrd = str(obj.get("glrd")) + _wwl = + _jset = int(obj.get("jset")) + return Root(_opts, _ttst, _ifov, _hc, _br_oh, _br_ow, _ua, _wbd, _tagpu, _wdif, _wdifrm, _npmtm, _br_h, _br_w, + _isf, _nddc, _rs_h, _rs_w, _rs_cd, _phe, _nm, _jsf, _lg, _pr, _ars_h, _ars_w, _tz, _str_ss, _str_ls, + _str_idb, _str_odb, _plgod, _plg, _plgne, _plgre, _plgof, _plggt, _pltod, _hcovdr, _hcovdr2, + _plovdr, _plovdr2, _ftsovdr, _ftsovdr2, _lb, _eva, _lo, _ts_mtp, _ts_tec, _ts_tsa, _vnd, _bid, _mmt, + _plu, _hdn, _awe, _geb, _dat, _med, _aco, _acots, _acmp, _acmpts, _acw, _acwts, _acma, _acmats, + _acaa, _acaats, _ac3, _ac3ts, _acf, _acfts, _acmp4, _acmp4ts, _acmp3, _acmp3ts, _acwm, _acwmts, + _ocpt, _vco, _vcots, _vch, _vchts, _vcw, _vcwts, _vc3, _vc3ts, _vcmp, _vcmpts, _vcq, _vcqts, _vc1, + _vc1ts, _dvm, _sqt, _so, _wdw, _cokys, _ecpc, _lgs, _lgsod, _psn, _edp, _addt, _wsdc, _ccsr, _nuad, + _bcda, _idn, _capi, _svde, _vpbq, _ucdv, _spwn, _emt, _bfr, _dbov, _cfpfe, _stcfp, _ckwa, _glvd, + _glrd, _wwl, _jset) + +# Example Usage +# jsonstring = json.loads(myjsonstring) +# root = Root.from_dict(jsonstring) diff --git a/models/result_pojo.py b/models/result_pojo.py index 0499039..a6ff553 100644 --- a/models/result_pojo.py +++ b/models/result_pojo.py @@ -5,4 +5,5 @@ class RequestResult(Enum): BLOCKED = "BLOCKED" PROXY_ERROR = "PROXY_ERROR" SUCCESS = "SUCCESS" + COOKIES_ERROR = "COOKIES_ERROR" UNKNOWN = "UNKNOWN" diff --git a/queue_message/appointmentrequestsender.py b/queue_message/appointmentrequestsender.py index 9a4595c..a3a6e87 100644 --- a/queue_message/appointmentrequestsender.py +++ b/queue_message/appointmentrequestsender.py @@ -100,7 +100,8 @@ class AppointmentRequestSender(threading.Thread): print(f" [x] Received {body}") _message_count = self.cookiesPublisher.message_count() print("message count in queue is {}".format(_message_count)) - sender = Sender(body.decode("UTF-8"), cookiesPublisher=self.cookiesPublisher, + _received_cookies = body.decode("UTF-8") + sender = Sender(_received_cookies, cookiesPublisher=self.cookiesPublisher, proxy_to_use=random.choice(self.proxy_to_use_list)) self.contact_list = filter_contacts(self.contact_list) # remove already booked contacts @@ -116,12 +117,21 @@ class AppointmentRequestSender(threading.Thread): if self.valid_csrf is None: self.valid_csrf = captchaResultGetter.get_csrf(proxy_to_use=random.choice(self.proxy_to_use_list), cookie=body.decode("UTF-8")) - can_continue = sender.send_request(HERMES_REGISTER, con, csrf=self.valid_csrf) + _new_cookies = captchaResultGetter.get_valid_ch_cookie(sender.proxy_to_use, + old_valid_cookie=_received_cookies) + if _new_cookies is not None: + print("new cookie is " + _new_cookies) + sender.cookie_str = _new_cookies + can_continue = sender.send_request(HERMES_REGISTER, con, csrf=self.valid_csrf) + else: + can_continue = RequestResult.COOKIES_ERROR if can_continue == RequestResult.BLOCKED: print("cannot continue, valid_csrf is " + str(self.valid_csrf)) break elif can_continue == RequestResult.PROXY_ERROR: print("PROXY_ERROR, will not reset valid_csrf") + elif can_continue == RequestResult.COOKIES_ERROR: + print("COOKIES_ERROR, will not reset valid_csrf") else: print("can continue, will reset valid_csrf") self.valid_csrf = None diff --git a/workers/captcha_result_getter.py b/workers/captcha_result_getter.py index 900b651..705c0f5 100644 --- a/workers/captcha_result_getter.py +++ b/workers/captcha_result_getter.py @@ -141,7 +141,7 @@ class CaptchaResultGetter: _raw_data = "jsData=%7B%22log1%22%3Afalse%2C%22opts%22%3A%22endpoint%2CajaxListenerPath%22%2C%22ttst%22%3A38%2C%22ifov%22%3Afalse%2C%22hc%22%3A{}%2C%22br_oh%22%3A646%2C%22br_ow%22%3A360%2C%22ua%22%3A%22Mozilla%2F5.0%20(Linux%3B%20Android%2010%3B%20K)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F115.0.0.0%20Mobile%20Safari%2F537.36%22%2C%22wbd%22%3Afalse%2C%22tagpu%22%3A{}%2C%22wdif%22%3Afalse%2C%22wdifrm%22%3Afalse%2C%22npmtm%22%3Afalse%2C%22br_h%22%3A646%2C%22br_w%22%3A360%2C%22nddc%22%3A1%2C%22rs_h%22%3A800%2C%22rs_w%22%3A360%2C%22rs_cd%22%3A24%2C%22phe%22%3Afalse%2C%22nm%22%3Afalse%2C%22jsf%22%3Afalse%2C%22lg%22%3A%22fr-FR%22%2C%22pr%22%3A3%2C%22ars_h%22%3A800%2C%22ars_w%22%3A360%2C%22tz%22%3A-60%2C%22str_ss%22%3Atrue%2C%22str_ls%22%3Atrue%2C%22str_idb%22%3Atrue%2C%22str_odb%22%3Atrue%2C%22plgod%22%3Afalse%2C%22plg%22%3A2%2C%22plgne%22%3A%22err%22%2C%22plgre%22%3A%22err%22%2C%22plgof%22%3A%22err%22%2C%22plggt%22%3A%22err%22%2C%22pltod%22%3Afalse%2C%22hcovdr%22%3Afalse%2C%22hcovdr2%22%3Afalse%2C%22plovdr%22%3Afalse%2C%22plovdr2%22%3Afalse%2C%22ftsovdr%22%3Afalse%2C%22ftsovdr2%22%3Afalse%2C%22lb%22%3Afalse%2C%22eva%22%3A33%2C%22lo%22%3Afalse%2C%22ts_mtp%22%3A5%2C%22ts_tec%22%3Atrue%2C%22ts_tsa%22%3Atrue%2C%22vnd%22%3A%22Google%20Inc.%22%2C%22bid%22%3A%22NA%22%2C%22mmt%22%3A%22empty%22%2C%22plu%22%3A%226GLkaVK%2CjRvAfXq0%22%2C%22hdn%22%3Afalse%2C%22awe%22%3Afalse%2C%22geb%22%3Afalse%2C%22dat%22%3Afalse%2C%22med%22%3A%22defined%22%2C%22aco%22%3A%22probably%22%2C%22acots%22%3Afalse%2C%22acmp%22%3A%22probably%22%2C%22acmpts%22%3Atrue%2C%22acw%22%3A%22probably%22%2C%22acwts%22%3Afalse%2C%22acma%22%3A%22maybe%22%2C%22acmats%22%3Afalse%2C%22acaa%22%3A%22probably%22%2C%22acaats%22%3Atrue%2C%22ac3%22%3A%22%22%2C%22ac3ts%22%3Afalse%2C%22acf%22%3A%22probably%22%2C%22acfts%22%3Afalse%2C%22acmp4%22%3A%22maybe%22%2C%22acmp4ts%22%3Afalse%2C%22acmp3%22%3A%22probably%22%2C%22acmp3ts%22%3Afalse%2C%22acwm%22%3A%22maybe%22%2C%22acwmts%22%3Afalse%2C%22ocpt%22%3Afalse%2C%22vco%22%3A%22%22%2C%22vcots%22%3Afalse%2C%22vch%22%3A%22probably%22%2C%22vchts%22%3Atrue%2C%22vcw%22%3A%22probably%22%2C%22vcwts%22%3Atrue%2C%22vc3%22%3A%22maybe%22%2C%22vc3ts%22%3Afalse%2C%22vcmp%22%3A%22%22%2C%22vcmpts%22%3Afalse%2C%22vcq%22%3A%22%22%2C%22vcqts%22%3Afalse%2C%22vc1%22%3A%22probably%22%2C%22vc1ts%22%3Atrue%2C%22dvm%22%3A{}%2C%22sqt%22%3Afalse%2C%22so%22%3A%22portrait-primary%22%2C%22wdw%22%3Atrue%2C%22cokys%22%3A%22bG9hZFRpbWVzY3NpL%3D%22%2C%22ecpc%22%3Afalse%2C%22lgs%22%3Atrue%2C%22lgsod%22%3Afalse%2C%22psn%22%3Atrue%2C%22edp%22%3Afalse%2C%22addt%22%3Atrue%2C%22wsdc%22%3Atrue%2C%22ccsr%22%3Atrue%2C%22nuad%22%3Atrue%2C%22bcda%22%3Atrue%2C%22idn%22%3Atrue%2C%22capi%22%3Afalse%2C%22svde%22%3Afalse%2C%22vpbq%22%3Atrue%2C%22ucdv%22%3Afalse%2C%22spwn%22%3Afalse%2C%22emt%22%3Afalse%2C%22bfr%22%3Afalse%2C%22dbov%22%3Afalse%2C%22cfpfe%22%3A%22ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2%22%2C%22stcfp%22%3A%22aWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzUxMjIpCiAgICBhdCA8Y29tcHV0ZWQ%2BIFthcyBkZF9hYV0gKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODc0OTcpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxNTM1%22%2C%22ckwa%22%3Atrue%2C%22glvd%22%3A%22Google%20Inc.%20(Qualcomm)%22%2C%22glrd%22%3A%22ANGLE%20(Qualcomm%2C%20Adreno%20(TM)%20650%2C%20OpenGL%20ES%203.2)%22%2C%22wwl%22%3Afalse%2C%22jset%22%3A{}%7D&eventCounters=%5B%5D&jsType=ch&cid=HG1lksF0XhPB_eV20MFkjOIO23fSH1DxZ1lsGCJ3opnnvGKp_7gihsaJK76kIwphZYvAkAs19ohywGLxvAi~5F3VT6kg8ubmzYfBNcdbfXabTcb7Z4QNDG5UlD7lri90&ddk=789361B674144528D0B7EE76B35826&Referer=https%253A%252F%252Frendezvousparis.hermes.com%252Fclient%252Fregister&request=%252Fclient%252Fregister&responsePage=origin&ddv=4.19.3".format( hc, tag_pu, dvm, js_set) else: - _raw_data = "jsData=%7B%22log1%22%3Afalse%2C%22opts%22%3A%22endpoint%2CajaxListenerPath%22%2C%22ttst%22%3A38%2C%22ifov%22%3Afalse%2C%22hc%22%3A{}%2C%22br_oh%22%3A646%2C%22br_ow%22%3A360%2C%22ua%22%3A%22Mozilla%2F5.0%20(Linux%3B%20Android%2010%3B%20K)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F115.0.0.0%20Mobile%20Safari%2F537.36%22%2C%22wbd%22%3Afalse%2C%22tagpu%22%3A{}%2C%22wdif%22%3Afalse%2C%22wdifrm%22%3Afalse%2C%22npmtm%22%3Afalse%2C%22br_h%22%3A646%2C%22br_w%22%3A360%2C%22nddc%22%3A1%2C%22rs_h%22%3A800%2C%22rs_w%22%3A360%2C%22rs_cd%22%3A24%2C%22phe%22%3Afalse%2C%22nm%22%3Afalse%2C%22jsf%22%3Afalse%2C%22lg%22%3A%22fr-FR%22%2C%22pr%22%3A3%2C%22ars_h%22%3A800%2C%22ars_w%22%3A360%2C%22tz%22%3A-60%2C%22str_ss%22%3Atrue%2C%22str_ls%22%3Atrue%2C%22str_idb%22%3Atrue%2C%22str_odb%22%3Atrue%2C%22plgod%22%3Afalse%2C%22plg%22%3A2%2C%22plgne%22%3A%22err%22%2C%22plgre%22%3A%22err%22%2C%22plgof%22%3A%22err%22%2C%22plggt%22%3A%22err%22%2C%22pltod%22%3Afalse%2C%22hcovdr%22%3Afalse%2C%22hcovdr2%22%3Afalse%2C%22plovdr%22%3Afalse%2C%22plovdr2%22%3Afalse%2C%22ftsovdr%22%3Afalse%2C%22ftsovdr2%22%3Afalse%2C%22lb%22%3Afalse%2C%22eva%22%3A33%2C%22lo%22%3Afalse%2C%22ts_mtp%22%3A5%2C%22ts_tec%22%3Atrue%2C%22ts_tsa%22%3Atrue%2C%22vnd%22%3A%22Google%20Inc.%22%2C%22bid%22%3A%22NA%22%2C%22mmt%22%3A%22empty%22%2C%22plu%22%3A%226GLkaVK%2CjRvAfXq0%22%2C%22hdn%22%3Afalse%2C%22awe%22%3Afalse%2C%22geb%22%3Afalse%2C%22dat%22%3Afalse%2C%22med%22%3A%22defined%22%2C%22aco%22%3A%22probably%22%2C%22acots%22%3Afalse%2C%22acmp%22%3A%22probably%22%2C%22acmpts%22%3Atrue%2C%22acw%22%3A%22probably%22%2C%22acwts%22%3Afalse%2C%22acma%22%3A%22maybe%22%2C%22acmats%22%3Afalse%2C%22acaa%22%3A%22probably%22%2C%22acaats%22%3Atrue%2C%22ac3%22%3A%22%22%2C%22ac3ts%22%3Afalse%2C%22acf%22%3A%22probably%22%2C%22acfts%22%3Afalse%2C%22acmp4%22%3A%22maybe%22%2C%22acmp4ts%22%3Afalse%2C%22acmp3%22%3A%22probably%22%2C%22acmp3ts%22%3Afalse%2C%22acwm%22%3A%22maybe%22%2C%22acwmts%22%3Afalse%2C%22ocpt%22%3Afalse%2C%22vco%22%3A%22%22%2C%22vcots%22%3Afalse%2C%22vch%22%3A%22probably%22%2C%22vchts%22%3Atrue%2C%22vcw%22%3A%22probably%22%2C%22vcwts%22%3Atrue%2C%22vc3%22%3A%22maybe%22%2C%22vc3ts%22%3Afalse%2C%22vcmp%22%3A%22%22%2C%22vcmpts%22%3Afalse%2C%22vcq%22%3A%22%22%2C%22vcqts%22%3Afalse%2C%22vc1%22%3A%22probably%22%2C%22vc1ts%22%3Atrue%2C%22dvm%22%3A{}%2C%22sqt%22%3Afalse%2C%22so%22%3A%22portrait-primary%22%2C%22wdw%22%3Atrue%2C%22cokys%22%3A%22bG9hZFRpbWVzY3NpL%3D%22%2C%22ecpc%22%3Afalse%2C%22lgs%22%3Atrue%2C%22lgsod%22%3Afalse%2C%22psn%22%3Atrue%2C%22edp%22%3Afalse%2C%22addt%22%3Atrue%2C%22wsdc%22%3Atrue%2C%22ccsr%22%3Atrue%2C%22nuad%22%3Atrue%2C%22bcda%22%3Atrue%2C%22idn%22%3Atrue%2C%22capi%22%3Afalse%2C%22svde%22%3Afalse%2C%22vpbq%22%3Atrue%2C%22ucdv%22%3Afalse%2C%22spwn%22%3Afalse%2C%22emt%22%3Afalse%2C%22bfr%22%3Afalse%2C%22dbov%22%3Afalse%2C%22cfpfe%22%3A%22ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2%22%2C%22stcfp%22%3A%22aWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzUxMjIpCiAgICBhdCA8Y29tcHV0ZWQ%2BIFthcyBkZF9hYV0gKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODc0OTcpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxNTM1%22%2C%22ckwa%22%3Atrue%2C%22glvd%22%3A%22Google%20Inc.%20(Qualcomm)%22%2C%22glrd%22%3A%22ANGLE%20(Qualcomm%2C%20Adreno%20(TM)%20650%2C%20OpenGL%20ES%203.2)%22%2C%22wwl%22%3Afalse%2C%22jset%22%3A{}%7D&eventCounters=%5B%5D&jsType=ch&cid={}&ddk=789361B674144528D0B7EE76B35826&Referer=https%253A%252F%252Frendezvousparis.hermes.com%252Fclient%252Fregister&request=%252Fclient%252Fregister&responsePage=origin&ddv=4.19.3".format( + _raw_data = "jsData=%7B%22opts%22%3A%22endpoint%2CajaxListenerPath%22%2C%22ttst%22%3A53%2C%22ifov%22%3Afalse%2C%22hc%22%3A{}%2C%22br_oh%22%3A646%2C%22br_ow%22%3A360%2C%22ua%22%3A%22Mozilla%2F5.0%20(Linux%3B%20Android%2010%3B%20K)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F115.0.0.0%20Mobile%20Safari%2F537.36%22%2C%22wbd%22%3Afalse%2C%22tagpu%22%3A{}%2C%22wdif%22%3Afalse%2C%22wdifrm%22%3Afalse%2C%22npmtm%22%3Afalse%2C%22br_h%22%3A646%2C%22br_w%22%3A360%2C%22isf%22%3Atrue%2C%22nddc%22%3A1%2C%22rs_h%22%3A800%2C%22rs_w%22%3A360%2C%22rs_cd%22%3A24%2C%22phe%22%3Afalse%2C%22nm%22%3Afalse%2C%22jsf%22%3Afalse%2C%22lg%22%3A%22fr-FR%22%2C%22pr%22%3A3%2C%22ars_h%22%3A800%2C%22ars_w%22%3A360%2C%22tz%22%3A-60%2C%22str_ss%22%3Atrue%2C%22str_ls%22%3Atrue%2C%22str_idb%22%3Atrue%2C%22str_odb%22%3Atrue%2C%22plgod%22%3Afalse%2C%22plg%22%3A2%2C%22plgne%22%3A%22err%22%2C%22plgre%22%3A%22err%22%2C%22plgof%22%3A%22err%22%2C%22plggt%22%3A%22err%22%2C%22pltod%22%3Afalse%2C%22hcovdr%22%3Afalse%2C%22hcovdr2%22%3Afalse%2C%22plovdr%22%3Afalse%2C%22plovdr2%22%3Afalse%2C%22ftsovdr%22%3Afalse%2C%22ftsovdr2%22%3Afalse%2C%22lb%22%3Afalse%2C%22eva%22%3A33%2C%22lo%22%3Afalse%2C%22ts_mtp%22%3A5%2C%22ts_tec%22%3Atrue%2C%22ts_tsa%22%3Atrue%2C%22vnd%22%3A%22Google%20Inc.%22%2C%22bid%22%3A%22NA%22%2C%22mmt%22%3A%22empty%22%2C%22plu%22%3A%22LNGqVpzZ%2CyCJEKNO%22%2C%22hdn%22%3Afalse%2C%22awe%22%3Afalse%2C%22geb%22%3Afalse%2C%22dat%22%3Afalse%2C%22med%22%3A%22defined%22%2C%22aco%22%3A%22probably%22%2C%22acots%22%3Afalse%2C%22acmp%22%3A%22probably%22%2C%22acmpts%22%3Atrue%2C%22acw%22%3A%22probably%22%2C%22acwts%22%3Afalse%2C%22acma%22%3A%22maybe%22%2C%22acmats%22%3Afalse%2C%22acaa%22%3A%22probably%22%2C%22acaats%22%3Atrue%2C%22ac3%22%3A%22%22%2C%22ac3ts%22%3Afalse%2C%22acf%22%3A%22probably%22%2C%22acfts%22%3Afalse%2C%22acmp4%22%3A%22maybe%22%2C%22acmp4ts%22%3Afalse%2C%22acmp3%22%3A%22probably%22%2C%22acmp3ts%22%3Afalse%2C%22acwm%22%3A%22maybe%22%2C%22acwmts%22%3Afalse%2C%22ocpt%22%3Afalse%2C%22vco%22%3A%22%22%2C%22vcots%22%3Afalse%2C%22vch%22%3A%22probably%22%2C%22vchts%22%3Atrue%2C%22vcw%22%3A%22probably%22%2C%22vcwts%22%3Atrue%2C%22vc3%22%3A%22maybe%22%2C%22vc3ts%22%3Afalse%2C%22vcmp%22%3A%22%22%2C%22vcmpts%22%3Afalse%2C%22vcq%22%3A%22%22%2C%22vcqts%22%3Afalse%2C%22vc1%22%3A%22probably%22%2C%22vc1ts%22%3Atrue%2C%22dvm%22%3A{}%2C%22sqt%22%3Afalse%2C%22so%22%3A%22portrait-primary%22%2C%22wdw%22%3Atrue%2C%22cokys%22%3A%22bG9hZFRpbWVzY3NpL%3D%22%2C%22ecpc%22%3Afalse%2C%22lgs%22%3Atrue%2C%22lgsod%22%3Afalse%2C%22psn%22%3Atrue%2C%22edp%22%3Afalse%2C%22addt%22%3Atrue%2C%22wsdc%22%3Atrue%2C%22ccsr%22%3Atrue%2C%22nuad%22%3Atrue%2C%22bcda%22%3Atrue%2C%22idn%22%3Atrue%2C%22capi%22%3Afalse%2C%22svde%22%3Afalse%2C%22vpbq%22%3Atrue%2C%22ucdv%22%3Afalse%2C%22spwn%22%3Afalse%2C%22emt%22%3Afalse%2C%22bfr%22%3Afalse%2C%22dbov%22%3Afalse%2C%22cfpfe%22%3A%22ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2%22%2C%22stcfp%22%3A%22Oi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzYzMDIpCiAgICBhdCB0LmV4cG9ydHMuZGRfYWIgKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6OTA2MjIpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxNzMz%22%2C%22ckwa%22%3Atrue%2C%22glvd%22%3A%22Google%20Inc.%20(Qualcomm)%22%2C%22glrd%22%3A%22ANGLE%20(Qualcomm%2C%20Adreno%20(TM)%20650%2C%20OpenGL%20ES%203.2)%22%2C%22wwl%22%3Afalse%2C%22jset%22%3A{}%7D&eventCounters=%5B%5D&jsType=ch&cid={}&ddk=789361B674144528D0B7EE76B35826&Referer=https%253A%252F%252Frendezvousparis.hermes.com%252Fclient%252Fregister&request=%252Fclient%252Fregister&responsePage=origin&ddv=4.24.1".format( hc, tag_pu, dvm, js_set, old_valid_cookie) print("raw data is " + _raw_data) return _raw_data