ELF>w@@*)1ff.fHH=H51H=HAWAVIAUATUHSHLl$@Ll$zI}8IEAHIEHI]`IELMe HHD$ǀǀHHNMHCIA)IE(LsIHD$8IAPME0HsMIA+1MHLHDHL\$LT$0LD$(LsHt$ L\$GHt$ LD$(HcMALT$0YL{H9AHSIHL9LcHLHHCHCHHiHKH H MLHH{HCHHLCHL)LH)HLEH@HHH8|uMLD$H=IALD$HbLH{1LLLD$LLcLLD$HJHCM9DAHsH IML{ЅH{HHRL[AMH{H HH-HSHׅG HCHHHKH7fMHCHH]HkHL)H)HH1ADž6 HH9 LHxH{HsHH4HSH,HH9LHYHkH{HHHCAMAL{HCM$H|M9r|LLcLHH{HHLHpL{MBH{HHSHkLM9sLLH=m@I98HLHL$ H=HD$HD$HL$ @LHH{HCHHHKHHH9LHHSHHLH H{HSHHL{HH)LH)HLEH@H}pHHH8Ep<H HMHEIAH{LL1LD$A…LcLLD$H\HKM9wAHsHHL8HCE H{HHdL[pDLHH{HKHHqHSHH/H9/LHHCH'H H{HH]L{HH)I)H@LElHZLHLƒ8|bMlHH1LHcI9XLHH{HsHHHCL<HL9LH@L{H{HHHKH@HHH8|(}zLHLH{HHCHHH HSHHHkHH)H)HH1ADž'HcH9KLHKHsHtHH HkEGH{HHHK&@LHH{HsHHHCL<HL9LHL{ofH{HHHCL<H_L9_LLHH{L{HHL[HLHHKHm H{HHL{HfH{HHBHSL<HL9LLHH{L{HHL[HQLHmHC4LHlH{HsHHHCH,HoH9oLH\HkL9l$HD$ǀǀHĨ[]A\A]A^A_tH{HHHKHaLHL{8f.LHHsHtIIL{ЅfDLHH{HsHHHCH,H7H97LHFHkfI9LH=H9IHH=HT$ HD$HD$HT$ LH9HHHD$ H=HL$HL$HD$ @I9HLL\$ H=HL$HL$L\$ v@I9)HLL\$ H=HD$HD$L\$ LDH9HH=}I9 LH=HL$HL$fHfE H{HH^L[fDH{HH[L[yHCHcH{HHGHkHH9HH=HL$HL$H@H}L)HLHCHgHSHH H{HHHKHH)H)IHg@]H}6HHH8|\DE6H@HHM1LH`HcI9 LHH{HsHH1HCL<H3I93LH0L{H{HHDLH H{HsHH HCH,Hx#H9r#LHLfH9sHH=f.LHHsHtHHQHkEGDH LH{H HCH"H{HSHH H)HCI1HL&HcI9LH H{HsHH HCL<H9I99LH{ L{H{HHZ HKH> @4 H}8LUH LHCH HSHgHgH{HH HKHH)H)IH @ H}jHHH8|/ DEjH; @1 HMHKHHGH9GLHHSHHLHH{HSHHL{HH)LH)HLEH@H}pHHH8Ep<H HMHEIAH{HL1LT$A|LcLLT$HjHKM9AHsHHHLOHCE H{HHL[lLHH{HKHHHSHHH9LHHCHH> H{HHyL{HH)I)H@LElHLHLƒ8|MlHH1L$HcI9(LHGH{HsHH3HCL<HWL9WLHEL{H{HHHKH@HHH8|}zLHLHKHHkHH H{HH H)HkHHH1ADžHH9LH1H{HsHH.HSH,HH9LHHkH{HH HCL9l$ HD$ǀǀHĨ[]A\A]A^A_LH H{HsHH HCH,Hx+H9r+LH HkhfH9sHH=f.tH{HHLCLHHkH_ H/LH HsHtHH HkEDLH H{HsHH HCL<H?L9?LH L{fH{HH HCL<HL9LLH H{L{HH{ L[HiLH HKHH{HH$L{HIfH{HH HSL<HL9LLH H{L{HH HKHLH HCtH{HHHKHLH L{xf.LHc HsHtIIr L{ЅfDH9"HH=HD$HD$fI9LH=H9HH=HT$ HD$HD$HT$ H9IHHHD$ H=HL$HL$HD$ @I9IHLHL$ H=HD$HD$HL$ @I9QHLL\$ H=HL$HL$L\$ &@I9LH=HL$HL$fHfEH{HH HKfDEH{HH L[fDH @ H}`LH LLSHl HCM[HH{HHK L)HCIH @ H}6HHH8| DE6Hp @f 1HMHLLHcI9LHN H{HsHH HCL<HI9LH L{H{HH HKHh@^H}8LMH* LHKHL@LHB H{HkHH! HCHLHx"H9r"LHHKvH9sHHHL$H=HL$DH{HHHCL|HxBI9rBLLHCH{L{HH"LCL9sLHLD$H=LD$DHLLSHHCMHH{HHhL)HCIH7@-H}jHHH8|DEjHM@C1HM5LkHLH[HHCHtH=HHH-HH5H1=H[]-@t gHHtsuoHHH8|ua}H=HHHuGH-HHH5H1{HH=HfAWAVAUATUSHHH-$HHHL#HL5L9u @MHLkHyLMTAJIUI(L{ LHt<{ MALHt<C HHg@]HHAL+HUHH{HHHCMAIUIHH|IEHSKHH/L(H@HH@HC H5HMALLHu~M,$MtdAu^LM9HHuH[]A\A]A^A_@H=H[]A\A]A^A_LH=LLH=SHH=HH=HHH=H$H$HLH=HD$H$HD$H$BLH=H$H$HH=HHH=HH=hLLH=LLH=LH=LHH=pHH=NHH=HHH=AWAVAUATUHSHH8D5IJL%HBI4H|LK *'' *[2]' 'result_format''const char *''char *[2][2]' 'int''char *''char''int''struct llist_head''struct socket_client''struct osmo_fd''const struct osmo_mslookup_result''_Bool'1.8.0.15-74e4osmo-mslookup-client version %s Copyright (C) 2019 by sysmocom - s.f.m.c. GmbH Copyright (C) 2019 by Neels Hofmeyr This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. lastnot-last%s ERROR %s %u %s %u truefalse{"query": "%s", "result": "ERROR", "result": "%s", "last": %s, "age": %u, "v4": ["%s", "%u"], "v6": ["%s", "%u"]}Failed to accept a new connection struct socket_clientosmo-mslookup-client.ccAssert failed %s %s:%d Failed to register new connection fd osmo-mslookup-client.c:527query result last age v4_ip v4_port v6_ip v6_port%s: write() returned %d instead of %zu 2342NULL][--send needs a query string like foo.123456.imsi Invalid query string '%s', need a query string like foo.123456.imsi --send needs an age invalid age invalid port: %s invalid IP addr: %s Sending mDNS to %s%s%s:%u: %s unable to open mDNS socket unable to encode mDNS response unable to send mDNS message osmo-mslookup-client.c:330%s Could not create unix socket: %s: %s Could not register listen fd: %d osmo-mslookup-client.c:427osmo-mslookup-client.c:630ERROR: timeouts part too long in query string ERROR: invalid min-delay number: %s ERROR: invalid timeout number: %s ERROR: query string is too long: '%s' struct queryqERROR: cannot parse query string: '%s' osmo-mslookup-client.c:699ERROR: cannot send query: '%s' osmo-mslookup-client.c:707 ERROR: failed to read line from socket ERROR: Only one query per client connect is allowed; received '%s' and '%s' on the same connection query: %s osmo-mslookup-clientf:Hdm:M:D:t:T:s:SqhVInvalid mDNS IP address: %s Invalid cmdline_opts.mdns_addr.port: %s Invalid cmdline_opts.min_delay: %s Invalid cmdline_opts.timeout: %s Standalone mslookup client for Distributed GSM Receiving mslookup results means listening for responses on a socket. Often, integration (e.g. FreeSwitch dialplan.py) makes it hard to select() on a socket to read responses, because that interferes with the main program (e.g. FreeSwitch's dialplan.py seems to be integrated with an own select() main loop that interferes with osmo_select_main(), or an smpp.py uses smpplib.client.listen() as main loop, etc.). This program provides a trivial solution, by outsourcing the mslookup main loop to a separate process. Communication is done via cmdline arg and stdout pipe or a (blocking) unix domain socket, results are returned in CSV or JSON format. This can be done one-shot, i.e. exit as soon as the response has been determined, or in daemon form, i.e. continuously listen for requests and return responses. About running a local daemon: it is unintuitive to connect to a socket to solve a problem of reading from a socket -- it seems like just more of the same problem. The reasons why the daemon is in fact useful are: - The osmo-mslookup-client daemon will return only those results matching requests issued on that socket connection. - A program can simply blockingly recv() from the osmo-mslookup-client socket instead of needing to run osmo_select_main() so that libosmo-mslookup is able to asynchronously receive responses from remote servers. - Only one long-lived multicast socket needs to be opened instead of a new socket for each request. Output is in CSV or json, see --format. The default is tab-separated CSV with these columns: query result last age v4_ip v4_port v6_ip v6_port One-shot operation example: $ osmo-mslookup-client 1000-@sip.voice.12345.msisdn -f json {"query": "sip.voice.12345.msisdn", "result": "result", "last": true, "age": 5, "v4": ["1.2.3.7", "23"]} $ Daemon operation example: $ osmo-mslookup-client -s /tmp/mslookup -d (and a client program then connects to /tmp/mslookup, find an implementation example below) Integrating with calling programs can be done by: - call osmo-mslookup-client with the query string as argument. It will open a multicast DNS socket, send out a query and wait for the matching response. It will print the result on stdout and exit. This method launches a new process for every mslookup query, and creates a short-lived multicast listener for each invocation. This is fine for low activity, but does not scale well. - invoke osmo-mslookup-client --socket /tmp/mslookup -d. Individual queries can be sent by connecting to that unix domain socket, blockingly reading the response when it arrives and disconnecting. This way only one process keeps one multicast listener open. Callers can connect to this socket without spawning processes. This is recommended for scale. Python example clients for {CSV,JSON}x{cmdline,socket} can be found here: http://git.osmocom.org/osmo-hlr/tree/contrib/dgsm/osmo-mslookup-pipe.py http://git.osmocom.org/osmo-hlr/tree/contrib/dgsm/osmo-mslookup-socket.py Options: [[delay-][timeout]@]service.number.id A service query string with optional individual timeout. The same format is also used on a daemon socket, if any. The timeout consists of the min-delay and the timeout numbers, corresponding to the --min-delay and --timeout options, in milliseconds. These options apply if a query string lacks own numbers. Examples: gsup.hlr.1234567.imsi Use cmdline timeout settings 5000@gsup.hlr.1234567.imsi Return N results for 5 seconds 1000-5000@sip.voice.123.msisdn Same, but silent for first second 10000-@smpp.sms.567.msisdn Return 1 result after 10 seconds --format -f csv (default) Format result lines in CSV format. --no-csv-headers -H If the format is 'csv', by default, the first output line prints the CSV headers used for CSV output format. This option disables these CSV headers. --format -f json Format result lines in json instead of semicolon separated, like: {"query": "sip.voice.12345.msisdn", "result": "ok", "v4": ["10.9.8.7", "5060"]} --daemon -d Keep running after a request has been serviced --mdns-ip -m 239.192.23.42 -m ff08::23:42 --mdns-port -M 4266 Set multicast IP address / port to send mDNS requests and listen for mDNS reponses --mdns-domain-suffix -D mdns.osmocom.org Append this suffix to each mDNS query's domain to avoid colliding with the top-level domains administrated by IANA. --min-delay -t 1000 (in milliseconds) Set minimum delay to wait before returning any results. When this timeout has elapsed, the best current result is returned, if any is available. Responses arriving after the min-delay has elapsed which have a younger age than previous results are returned immediately. Note: When a response with age of zero comes in, the result is returned immediately and the request is discarded: non-daemon mode exits, daemon mode ignores later results. --timeout -T 1000 (in milliseconds) Set timeout after which to stop listening for responses. If this is smaller than -t, the value from -t will be used for -T as well. Note: When a response with age of zero comes in, the result is returned immediately and the request is discarded: non-daemon mode exits, daemon mode ignores later results. --socket -s /path/to/unix-domain-socket Listen to requests from and write responses to a UNIX domain socket. --send -S Do not query, but send an mslookup result. This is useful only for testing. Examples: --send foo.123.msisdn 300 23.42.17.11 1234 --send foo.123.msisdn 300 2323:4242:1717:1111::42 1234 --send foo.123.msisdn 300 23.42.17.11 1234 2323:4242:1717:1111::42 1234 --quiet -q Do not print errors to stderr, do not log to stderr. --help -h This helpError in command line options. Exiting. --send option cannot have any listening related args.In daemon mode, --timeout must not be zero. jsoncsvInvalid format: %s Failed to start mDNS client osmo-mslookup-client.c:892/build/inst-osmo-hlr/include/osmocom/core/linuxlist.hformatno-csv-headersdaemonmdns-ipmdns-portmdns-domain-suffixtimeoutmin-delaysocketsendquiethelpversionsocket_acceptsocket_client_respond_resultdo_sendmdns.osmocom.org1 32 32 6 sb:3511 32 32 6 sb:3801 32 8 10 endptr:2271 32 1024 9 rxbuf:443*.Lubsan_data544*.Lubsan_data543*.Lubsan_data541*.Lubsan_data540*.Lubsan_data539*.Lubsan_data538*.Lubsan_data537*.Lubsan_data536*.Lubsan_data535*.Lubsan_data534*.Lubsan_data533*.Lubsan_data532*.Lubsan_data531*.Lubsan_data530*.Lubsan_data529*.Lubsan_data528*.Lubsan_data527*.Lubsan_data526*.Lubsan_data525*.Lubsan_data524*.Lubsan_data523*.Lubsan_data522*.Lubsan_data521*.Lubsan_data520*.Lubsan_data519*.Lubsan_data518*.Lubsan_data517*.Lubsan_data516*.Lubsan_data515*.Lubsan_data514*.Lubsan_data513*.Lubsan_type19*.Lubsan_data512*.Lubsan_data511*.Lubsan_data510*.Lubsan_data509*.Lubsan_data507*.Lubsan_data506*.Lubsan_data505*.Lubsan_data504*.Lubsan_data503*.Lubsan_data501*.Lubsan_data500*.Lubsan_data499*.Lubsan_data498*.Lubsan_data497*.Lubsan_data496*.Lubsan_data495*.Lubsan_data494*.Lubsan_data493*.Lubsan_data492*.Lubsan_data491*.Lubsan_data490*.Lubsan_data489*.Lubsan_data488*.Lubsan_data487*.Lubsan_data486*.Lubsan_data485*.Lubsan_data484*.Lubsan_data483*.Lubsan_data482*.Lubsan_data481*.Lubsan_data480*.Lubsan_data479*.Lubsan_data478*.Lubsan_data477*.Lubsan_data476*.Lubsan_data475*.Lubsan_data474*.Lubsan_data473*.Lubsan_data472*.Lubsan_data471*.Lubsan_data470*.Lubsan_data469*.Lubsan_data468*.Lubsan_data467*.Lubsan_data466*.Lubsan_data465*.Lubsan_type18*.Lubsan_data464*.Lubsan_data463*.Lubsan_data462*.Lubsan_data461*.Lubsan_data460*.Lubsan_data459*.Lubsan_data458*.Lubsan_data457*.Lubsan_data456*.Lubsan_data455*.Lubsan_data454*.Lubsan_data453*.Lubsan_data452*.Lubsan_data451*.Lubsan_data450*.Lubsan_data449*.Lubsan_data448*.Lubsan_data447*.Lubsan_data446*.Lubsan_data445*.Lubsan_data444*.Lubsan_data443*.Lubsan_type17*.Lubsan_data442*.Lubsan_type16*.Lubsan_type15*.Lubsan_data441*.Lubsan_data440*.Lubsan_data439*.Lubsan_data438*.Lubsan_data437*.Lubsan_data436*.Lubsan_data435*.Lubsan_data434*.Lubsan_data433*.Lubsan_data432*.Lubsan_data431*.Lubsan_data430*.Lubsan_data429*.Lubsan_data428*.Lubsan_data427*.Lubsan_data426*.Lubsan_data425*.Lubsan_data421*.Lubsan_data418*.Lubsan_data417*.Lubsan_data416*.Lubsan_data415*.Lubsan_data414*.Lubsan_data413*.Lubsan_data412*.Lubsan_data411*.Lubsan_data410*.Lubsan_data409*.Lubsan_data408*.Lubsan_data407*.Lubsan_data406*.Lubsan_data405*.Lubsan_data404*.Lubsan_data403*.Lubsan_type14*.Lubsan_data402*.Lubsan_type13*.Lubsan_type12*.Lubsan_data401*.Lubsan_data400*.Lubsan_data399*.Lubsan_data398*.Lubsan_data397*.Lubsan_data396*.Lubsan_data395*.Lubsan_data394*.Lubsan_data393*.Lubsan_data392*.Lubsan_data391*.Lubsan_type11*.Lubsan_data390*.Lubsan_data389*.Lubsan_type10*.Lubsan_data388*.Lubsan_data387*.Lubsan_data386*.Lubsan_type9*.Lubsan_data385*.Lubsan_data383*.Lubsan_data382*.Lubsan_data381*.Lubsan_data380*.Lubsan_data379*.Lubsan_type8*.Lubsan_data377*.Lubsan_data376*.Lubsan_data375*.Lubsan_data374*.Lubsan_data373*.Lubsan_data372*.Lubsan_data371*.Lubsan_data370*.Lubsan_data369*.Lubsan_data368*.Lubsan_data367*.Lubsan_data366*.Lubsan_type7*.Lubsan_data365*.Lubsan_data364*.Lubsan_type6*.Lubsan_data361*.Lubsan_data360*.Lubsan_data359*.Lubsan_data349*.Lubsan_data348*.Lubsan_data347*.Lubsan_data346*.Lubsan_data345*.Lubsan_data337*.Lubsan_data336*.Lubsan_data335*.Lubsan_data334*.Lubsan_data333*.Lubsan_data332*.Lubsan_data324*.Lubsan_data323*.Lubsan_data322*.Lubsan_data321*.Lubsan_data320*.Lubsan_data319*.Lubsan_data318*.Lubsan_data308*.Lubsan_data307*.Lubsan_data306*.Lubsan_data305*.Lubsan_data298*.Lubsan_data297*.Lubsan_data296*.Lubsan_data295*.Lubsan_data288*.Lubsan_data287*.Lubsan_data286*.Lubsan_data278*.Lubsan_data277*.Lubsan_data276*.Lubsan_data270*.Lubsan_data269*.Lubsan_data268*.Lubsan_data260*.Lubsan_data259*.Lubsan_data258*.Lubsan_data250*.Lubsan_data249*.Lubsan_data248*.Lubsan_data247*.Lubsan_data246*.Lubsan_data238*.Lubsan_data237*.Lubsan_data236*.Lubsan_data235*.Lubsan_data227*.Lubsan_data226*.Lubsan_data225*.Lubsan_data224*.Lubsan_data223*.Lubsan_data215*.Lubsan_data214*.Lubsan_data213*.Lubsan_data212*.Lubsan_data211*.Lubsan_data210*.Lubsan_data209*.Lubsan_data199*.Lubsan_data198*.Lubsan_data197*.Lubsan_data196*.Lubsan_data189*.Lubsan_data188*.Lubsan_data187*.Lubsan_data186*.Lubsan_type5*.Lubsan_data179*.Lubsan_data178*.Lubsan_data177*.Lubsan_data169*.Lubsan_data168*.Lubsan_data167*.Lubsan_data161*.Lubsan_data160*.Lubsan_data158*.Lubsan_data157*.Lubsan_data155*.Lubsan_data154*.Lubsan_data153*.Lubsan_data152*.Lubsan_data150*.Lubsan_data149*.Lubsan_data148*.Lubsan_data147*.Lubsan_data145*.Lubsan_data144*.Lubsan_data143*.Lubsan_data142*.Lubsan_data140*.Lubsan_data138*.Lubsan_data137*.Lubsan_data135*.Lubsan_data134*.Lubsan_data132*.Lubsan_data131*.Lubsan_data129*.Lubsan_data128*.Lubsan_data126*.Lubsan_data123*.Lubsan_data122*.Lubsan_data120*.Lubsan_data118*.Lubsan_data115*.Lubsan_data114*.Lubsan_data112*.Lubsan_data111*.Lubsan_data109*.Lubsan_data108*.Lubsan_data107*.Lubsan_data105*.Lubsan_data104*.Lubsan_data102*.Lubsan_data101*.Lubsan_data99*.Lubsan_data97*.Lubsan_data96*.Lubsan_data95*.Lubsan_data94*.Lubsan_data93*.Lubsan_data91*.Lubsan_data89*.Lubsan_data88*.Lubsan_data86*.Lubsan_data85*.Lubsan_data83*.Lubsan_data82*.Lubsan_data81*.Lubsan_data79*.Lubsan_data78*.Lubsan_data76*.Lubsan_data75*.Lubsan_data73*.Lubsan_data72*.Lubsan_data70*.Lubsan_data67*.Lubsan_data66*.Lubsan_data64*.Lubsan_data63*.Lubsan_data62*.Lubsan_data60*.Lubsan_data59*.Lubsan_data57*.Lubsan_data55*.Lubsan_data54*.Lubsan_data53*.Lubsan_data51*.Lubsan_data45*.Lubsan_data44*.Lubsan_data43*.Lubsan_data42*.Lubsan_data40*.Lubsan_data39*.Lubsan_data37*.Lubsan_data31*.Lubsan_data20*.Lubsan_type3long_options__func__formattersglobalsg_bufcmdline_opts*.LC18*.LC58*.LC114*.LC15*.LC30*.LC107*.LC9*.LC117*.LC41*.LC84*.LC108*.LC4*.LC109*.LC20*.LC115*.LC76*.LC91*.LC74*.LC62*.LC89*.LC64*.LC10*.LC78*.LC96*.LC97*.LC51*.LC75*.LC23*.LC8*.LC90*.LC6*.LC113*.LC42*.LC94*.LC99*.LC66*.LC48*.LC45*.LC111*.LC61*.LC83*.LC54*.LC43*.LC55*.LC24*.LC5*.LC52*.LC92*.LC101*.LC95*.LC40*.LC98*.LC7*.LC47*.LC72*.LC105*.LC116*.LC12*.LC104*.LC22*.LC70*.LC0*.LC81*.LC29*.LC2*.LC46*.LC73*.LC93*.LC32*.LC112*.LC49*.LC71*.LC50*.LC19*.LC82*.LC106*.LC28*.LC16*.LC36*.LC35*.LC88*.LC87*.LC17*.LC77*.LC21*.LC69*.LC110*.LC103*.LC53*.LC1*.LC44*.LC34*.LC11*.LC100*.LC31*.LC33H=D$D$LH=D$D$H=H $H $AH=H=H=DL$ $ $DL$ H=H $H $H=DL$ $ $DL$ AH=D $D $H=H$H$@H=L$L$@H=L$L$H=H $H $H=H=H=HL$(HL$(H=HL$(HL$(AH=AH=AH=H=HL$(HL$(H=H=H=H=H$H$H=H $H $H=H $H $H|$H=HT$H=L$ L$ H=L$ L$ H=@H=H=HL$HL$@H=H=H=$$H=H=H=H$H$@H=@H=H=H=H=H=1@HH=AH=@H=HT$HT$H=AH=AH=AH=H=HL$HL$H=HT$HT$H=HD$LD$LD$HD$H=H=H=HD$LD$LD$HD$H=H=H=H=EH=H=HL$HL$H=HL$HL$@H=HL$HL$@H=H=AH=H=H=H=H=H=H=@H=H=HL$HL$@H=HL$HL$H=H=H=HL$HL$H=@H=HL$HL$H=2 32 4 7 len:506 48 110 11 un_addr:5055 48 4 6 rc:260 64 32 11 ip_strs:253 128 52 8 addr:285 224 96 5 q:257 352 116 5 r:2584 48 4 6 rc:647 64 16 5 h:639 96 16 12 timeouts:648 128 16 13 min_delay:6644 48 4 16 option_index:739 64 4 7 _rc:790 80 4 7 _rc:796 96 4 7 _rc:799AWAVAUATUHSHLd$0|$Ld$3 HM11ID$IHHI$AHM$ID$HALJALJALJALJ 1HH H= H=y H= H= H=1w H=5 H=1I\$0L5HHƀAEH|$IHH HD0w IcL-@@uAH=HH H H(H=IMHIHD$HIAƁ H1LL$(HL$ LL$(HL$ At< A}HƁHHƀH=HH HHHHD$HA H5H=H=u j-@v @HD$H H=L-HHq H-HLH5H1]H=1HƃH=H=H5L9d$SfAHĸ[]A\A]A^A_H=HH* HHNB[IMHIHD$HIAƁ,H1LL$(HL$ LL$(HL$ At<A}-@@ufHD$HH=L-HHH-HLH5H1HL$HL$HƁ#IMHIHD$HIAƁLL$(HHL$ LL$(HL$ fAt<A}-@@IHD$HgH=L-HH@H-HLH5H1HL$HL$H=HHHHHƃAA<E`=F H5HH=H=HHH{LH5HUH=Ht UH=HHH8|-Dl$A)HcHMcH\HH9LHH-L-1]u=tL9-u1pH=HHH8|D$9!D-AAWE<EuH=uDH=HH:HHHٺ5H=H=HHH8|Lc5JLLlHx"I9r"l$)TL2L9sLHH=ʃ=wH=fH9HHH=HHH=uH=HH5HHHٺ,H=VH=HHGHHHٺH= H5H=1-@@$HD$HH=L-HHH-HLH5H1HL$HL$H='{H=6H=H-HHHHHH5H1HLEH=foI$6EAID$xH=H=H=H=H=H=H=H=Hct$LH=H|$H=H|$H|$H=H=HHHH|$Hct$HH=;ff.HH=Hl'?l?#w v v       Q Q P O O   D; dddeeddw v v ut sdddeeddX QQTw v v  RRQQN N N ::w v v  ::'  '''&&&0###!(!(!%  / Q Q P O O          }}}tttqqqooooonmmmkkkkkjh gggggffffeeeeccc```qcc[2VVMIIHC==<;66t X TR00''BB==77''##    2  ffHdmMDTtsSqhV239.192.23.42* V@@@@@ @@ @ @ @@ @@ @ @ @@ @@ @ @@ @ @ @@ @@@ @ @@ @ @@ @@ @ @@ @ @ @@ @ @@ @ @@ @ @@@ @ @ @@ @ @ @ @ @ @@ @@ @ @ @ @ @ @ @@ @ @ @@ @ @ @ @ @ @ @@ @@ @ @ @@ @ @@ @ @ @@ @@ @@@ @ @ @ @ @@ @@ @ @ @@ @@ @ @ @ @@ @@ @ @@ @ @@ @ @@ @ @@ @@ @@ @@ @@ @@ @@ @@ @ @ @ @ @ @ @ @ @ @ @@ @ @@ @@ @ @ @ @@ @@ @@ @@ @@@ @@@@@@@@ @ @ @@@@ @ @ @ @@@@@ @@@@ @@@@ @@@@@@@@@@@@@@@@ @ @ @@@@@@@ @ @ @ @@@@@ @@@@ @@@@ @(`@@@@@@@(`@@(`@@(`@@@(`@@@(`@(`@(`@(`@(`@(`(`@(`@(`@(`@(`@(`(`@(`@(`@(`@@@(`(`@(`@(`@(`(`(`@(`@(`@(`@(`@(`@(`@(`@(`@(`@@(`@(`@@@ @@@@@p `@@@@@@@@@ @ @@@ @@@$`@"`@@@@-`@@(`@@)`@@@)`@@ @2` @&`d@@@@ @@"`@6`@@ @@'`@@@@@%`@@@XE @@@@#`@@(`@#`@(`2`@@@ @ @/`@6` @!`@@@@@&`H=R6Sr.r.r.y.yT&{(Uint*r&r136 7 8 9 : (; 0< 8= @@ HA PB XD`FhHpItJ xMNOQY [\]^ y_ *`b V+ 6  6 M&' ' > &1' $' 2  2 4 7 8val 9S&Wn 6k/,  -J 0 2:  5J X 8 `(:r(<r (>r (@r (Br (Dr  Gd5h pd     '.q0v0vJJ/( k#catp  r  r u z {    W   )rĖ      )r       8ctxy6 ?%%6!KKUZPXvty 6W_*6r      6r  6r& $J,#outL  M O1 ,$R] S T$Wv#vtyX y$[#rb\ y$_ ` a b $e#rawf YI: *P*U6*Y]*]v*c*gyJ 6!d rO ! r =i 0 !Jfd#&rcb) +y -r(?  r  )rb       Z[   6 4. af0ip2 4 +2  6-3 4 7str5  M buflen *pos * )r"t    \t @. A/ A0  6, -R 5 )r7  '?" `D2 G7 idI DLyX G 6@tP rcR! U X 8agec 7lfpG   !  7   2  ' ? 7O 7U  @dy eJhkyn r (x 0| 8!   7 y !  7 !   /05; 7 8 9 : ; $ <; = >E(b &; @%iBdst& yBtrx'n i. J5J)3l1h+8 l2h,8(l3h-80l4h.88cb0=@2 +hlen3 +j58p68x788M .{6M6{]]68 aiE0])r ^`0  78 7<@HPXYZ_ W`6aF $pN#ctxOy Pr Q  R @ SJH TJX UhCVm >[!* ,6b  c@} J#ofd  F@/C DJ F G H 76d7` K % - +^ Cy]_"p B """"""(">YyUX 7y  y ** F +r7H! *A*\dxy* f G e 0 ay*2 @$$& zJ**a w8 7 K  z *0 y7!]   %s!"%Ty+  yr yr d 0ry  N+  ^ 0i  y>*"^6f#% 8$1rc1x cval C$  #_rcYU1T R~UvT Q}U~ȕU~U~ѕU ڕU Tv *_rc`U0T R~UvT Q}U~U~ȕU~ѕU ڕU Tv 1_rcgU0T R~UvT Q}U~U~ȕU~ѕ U ڕU Tv,U pU~TvQ R XsU T1Q( U )U TUvT Q}U~U~ѕU ڕU Tvѕ<U ѕ[U ڕU TvUs eDU ,U0T0Q >CT0(ZT2qT1T1T1T0T1T0H>*T CIU -{T R  ?$UsT}U0U T1Q5Rs} UvT}6 U TvQ}6TU U  U TvQs_ U T1Q,Rs U T1QLRsC !U 6!UsT Qv!U T ~ $ &Qsȕȕȕa"U T ~ $ &Qsѕ"U ڕ"U Tsڕ"U Tsڕ"U ѕ#U ڕC#U T}ѕb#U ڕ#U Tsڕ#U Tsڕ#U Tsѕ#U ڕ!$U Tsڕ@$U ڕh$U TsڕU TsS$6 g%11*i%.%U T}QsF%Usk%U TsU Tv $ &Q1+z1z"q|1 }at~h& 9*rc   ' 6&6~&UvT@Q~R~~&U0T QvR~'U}T QvG'U T~Q~ȕa'U~"ѕ'U ڕU T}6'66 B(66U~T0~e(U~T@QvA(U~T-(U T1Q.(U0T Q~R~"(U}ȕ)U~4)UvT c)U T~Q~+)U T0ڕ)U Tvڕ)U Tvѕ*U ѕU 6 *66UvT06 *66UvT0 M,DɎ^ގӎ4Z+Uv+U T~Qv+U T~4+U~+U T~4+U}*,U TvQ}U Tv6 ,66UvT0A,UvT@J,Uv,TQ !-U}TvQ9-U~T}d-U}T Qv-U~T -U}T QvY-T~Q.U}T Qv%.U~T ""J.U}=.U T Q R 4F.U T~/U T~Q~(/U T~S/U T~Q}x/U T~/U T~/U T~"/U}0U T~Q}*0U T~O0U T~ѕ0U ѕ0U ѕ0U A0U0T@ѕ1U ڕ71U T}ѕV1U ڕ~1U T}ڕU T}}+k\6k6 l 7m& n' qp1 \6p3n62z6%6o26%6262U TsUsȕ2Uv3U TsQv+3U TsP3U Tsu3U Ts3U TsU Ts qu~5{34:4U Tve4U TvQ}4}4U}4U T|4U|4U Ts4Us5U TsQ|75U|\5U TsU Ts65UsT~E5T 5U Ts6U T~+76U TsڕU Tvha16Fa(7qc196d6Gd6U TXq:\6F\+KC>K!rKO cMC>nMC>iv7 Q6 7 Q67U}U T} $8 Q68U~U T~ 6TO8AT}8U~T Q a8U|8U|ѕU  TU;T2)T q:{3949U T49U TQU T :U T}E:U T}w:U T}:U}U T}:U:U}T ;U ȕ4;U} [;U T;U T;U T};U T}"H <U T QsRv!<UsPRF<U}T k<U T~<U T}Q<U T}<U T|=U T}>=U T|"Oc=U T~=U Tv+=U+=U Tvڕ=U Tڕ'>U TsѕU C:7 ?c9C>n9C>9y>:69>:6>UsU TsG:6>UvU T|8 A ofd" rc#?U5T0QsR2?U ?UvT Qs^@UvT QsQ@U Tvȕi@Uvڕ@U Tvѕ@U ڕ@U TvѕU 8Hofd# 5rcC>len $rc;I  Blen *rc)AT Q1BUsT Q X1ȕ3BUXBU TsѕBU ڕU Ts DDɎ^ގӎ40CU}[CU TsQ}CU Ts4CUsCU Ts4CU T}Q}U T}:DT}~Q}~`DT @Q xDUs=DU T Q R ȕDU""EU}"EUDEU T1Q"nEU T1Q%EUsT FEU TsEU TsQ(FU TsQ}MFU TsrFU Ts4FU}FU TsQFU TsQ}GU Ts4GU}HGU TsQ}mGU TsGU TsGU TsGU Ts"HU&HU Tsȕ>HUѕjHU ڕHU T}ڕHU TsѕHU ڕU T}I6 Hj Iofd& 8rrcIIk PRofd+ cC>rcF  at1 TrMT2)T qL{3OK4JUJU T4-KU TsQvU TstKU T|KU T|KUKU T|QKU|U T|.LUs`LU|T ȕxLULU TsLU TsLU T|QsMU T|7MU Ts"OMUU T|xMTQ R0\MUT AMUT@NUsT RvH-NU T R0PRRNU|T !kNQ %NUNU T^ȕ+X OU Tv1Qv=OU T1Q'Rsaj|OU TsOU|OU TsQ|OU Ts PU T|O0PU TvUPU TPU Tv"PU T|QvȕPU TvQU T|O7QU TaQU Tsv"QU TsQU T|ѕQU ڕ RU Tsѕ+RU ڕU Ts+Sc9C>Hlen *rc; T JRUv)RTvQ|E#ST Q ȕ;SU}fSU TsQ}SU TsѕSU ڕSU TsѕU  T6Sl 6Tofd :OTkU~4VkU|{kU QvkU|4U| &n e* e 1elCU| eJl$wqlT~Q lU T~Q~lU T~QlU Tvȕ mUv"mU|GmU~lmU QmU|mU~4mU|4mU|4mU| p f* f 1fnCU|nTQ nU T~Q~oU T~Q,oUsHQoU Tv+voU|oU~oU~oU|4oU|4pU|4:pU|npU Q~ڕU T~ r g* g 1g qC.qTQ SqU QxqU QqU TvQ~ȕqU TvqU~rUsH9rU Q4QrU|4irU|rU~4rU|rU|rU~ Du k* k 1kdsCsTQ RvsUsX4sU|sU Q tU Q!tU|9tU~4QtU|itU~tU TvstU|tU TvtU~uU QU~ v m* m 1muCUsHuTQ uU Q vU QEvU~]vU|vU~4vU|vU|vU Q4U| Ly o* o 1olwCwTQ Rv<wUsX4wU|wU QvxU Qv)xU~AxU|sfxU|xU TvxU TvxU~xU Q|4yU|*yU~U~ { q* q 1qyCUsHyTvQ yUsX4zU|3zU QvXzU QvpzU~zU|zU Qv4zU|zU|U~ | t* t 1te{C{TvQ {U Qv{U Qv{U||U~4)|U|[|U Qv|U~|U|4U||Uv|Uv84}U|44)}U~ȕA}Uvf}U Tv}U TvU Tvm6441JJK6q rG ircctxy;\  1Imsg;%1G   +U1T RzU|ȕ7UzȕOU|tUsT UsT U T}U T U Tz"UIU TzaU}U TzU}ŀU T}|U|T4T4|U|T47U|T4~U TzQ~U U TzQ {z" U ѕ)U ڕQU TvڕyU TvѕU U0T0Q ނUvTzU0T QzRz8U T1Q1eUsT QzU T1QDUzTvQzۃU Q|TUzT|R X0Y0*?UzT0QvRzWU|"qUzU|UzT لU T1Q<U T1QK"ȕ)UzRU T1QO{U T1QL4UvT`хU|Tp"UzU Tz7U~4kU TzU TzQ~U~4ȆU~U TzU TzQv4Uv4hU TzU TzU TzQ~U TzQ|U|44&U~MU TzzU TzQ~4U~"Uz4ȕUz4ѕgU ڕU TsڕU Tsѕ։U ѕU ڕU T~ڕEU T|ڕmU T~ѕU ڕU TsѕӊU ڕU TsѕU ѕU L66\6LLnfd& Uo7rTL'4'4=MargQMrc[pvalK^>ST|Q:+kUsȕUs"Us"U}"ˌU}U|U Ts:U Ts^U T0U T}U T}q8 r+ )U T NU O@1Pval@Y s*P_S>]>%g>l>%y>~> T;BT2)T q{304ԐU T4U T}QU T}UU TszU TsU TsđUsU TsU}0UsT UU Ts"mUU T}ȕUϒU T}U T}U TsQ}U Ts%>]>H>7QS>Q]>Us˓UsU TvU Ts=6U6N6UUT0=\6n6z6%66%66U TXȕUs*U TXQsPU TXvU TXU TXU TX,,,,,,I~H}H}I : ; 9 I8 H} !I1B 4:!;9 IB : ;9 I8 ( 1RBUX!YW  U.?: ; 9 'I<4:!;9 IBI : ; 9 I8 &I : ; 9!.?<n:!;!: ; 9 I!I/ :!;9 IB4:!;9 I41B$ > .?: ;9 'I<4:!;9 I1RBX!YW :!;9 IB:!; 9 I <!'".?:!;9!'<# : ;9 I8 $ : ;9 % 1U&7I'4: ; 9 I?<( :!;9!I !k)>! !I: ; 9!* :!;9!I+.?:!;9!'U@z,.?<n-.:!; 9!' !. :!;!I8 / : ;9!01 :!;9!2 U31RBUX!Y!W!4:!; 9 IB5 I8 6>! !I:!;9!7.?: ; 9!'<8.?:!;9!'IU@z9 :.?:!;9!' !;4I4<: ;9 I=.1@z>: ;9 I?'I@ : ; 9!A :!; 9!IB :!; 9 IC4:!;9 ID1RBUX!Y W!EH}F:!;9 IG HH}IH}J4:!; 9!IBK4:!; 9 IL.?:!; 9 'I@zM:!; 9 IBNH}O.: ; 9 'I !P: ; 9 IQ41R% US : ; T U$ > V: ; 9 W&X<Y : ;9 Z([(\!]!I7 ^ : ; 9 _4: ; 9 I`!I/a4: ; 9 I?b4: ;9 I?c : ;9 d.?: ;9 '<e.?: ; 9 '<f.?: ; 9 'I<g.?: ;9 '@zh.?: ;9 'I i j.: ;9 'I@zk.: ;9 'IU@zl.: ;9 ' m.?: ; 9 'IU@zn: ; 9 Io: ; 9 Ip4: ; 9 IBq.: ; 9 ' r.: ; 9 '@zs.: ;9 'I t.1U@z:0U0C~CUU~UU0T0VTVTVT V T V T VTVTVTVTVTTVTVTVTVTVTVTVgVgTVTVTVTVTVTV10VP101P11V11 P PP]U]UU]T\TT\0TVTYPY}V}P0V-U-VUV U V UVUVUVUHUHzVzUP^^ ^ P ^ ^ P ^^^^ez^^^V~V ~ ~VVV~~~~&7~HiViz0~~~P~1~1 ~1P~~1~1~1~1&7~1`tP~1~1~1'P'~P ~~~~~~#QQ~~~ ~ V V P ^^zVz}x}xV P ^^ V'U'UUUU'T'\T\T\T\T\\'Q'QQQQ'R'^R^R^R^^SUSST\\T\Sv~SS0SS$SSSSdVVd\\%U%SUS,S,@U@YS%T%VT V T VYVs]s^]_^] ] ] ]],Y]x^xP^P^^ ^ ^ ^ ^^@Y^s]] ]E^^PPc   ]]]] ] T ##}}}}}} }]]]]]PPZZUQQSQUSUSUSUUESEVU9 9NUN V P P uSuwPSPPSEVS*U*SpUSUS p U S U S UU*T* T T TTPSS`PSS S S P S ` S.SBc`|`SPv]]]P] ] ] ] ]P]5N]1 1!1:^1PP$} Ps  SS Sx] ] Ps  SS SUUTT00,U,S U S U S U S UrU\ \ \ \r\PSSPS S S SP____P_ _ _ _ ___%_%3P3r_X X vPPv1\ \ \S|S | S | S\\ \bSSSb___U|S|}`US}`5}`5FSTVTVTV5V5@T@FVP\X\\P\5\PRRL/U/^U^-U--^--U--^-.U..^.9UU/T/-T--T--~-9TT/Q/-Q--Q--~-9QQ/R/VRVRVR"V"$R$&V&'R'(V((R()V)*R**V*,R,-V--R--V--R--V-.R..V..R./V//R/0V00R00V00R01V11R12V22R22V22R23V33R33V33R35V55R55V55R57V77R77V77R77V77R78V88R88V88R89V99R99VV T o~~~~~-.~..~..~//~11~44~SPSeRPPR~PR--P..P..P..P//P01P11~44Rs@_ ___++_--_00_00_YP P XPPXX~++P--X--P00X00P00~%s@s@!!s@++s@..s@X**X**~PXZPZZZZ~Z++Z,,Z,,Z..Z..Z./Z//~33ZPs@#$s@++s@T_ ____""_#$_$$_%%_&&_&&_((_))_++_,,__PXXPX XXX~X##X$$X$$X$$X%%X''X''~((XPs@s@##s@__ _ _!!_""_""_P^RP P R ~ R R!!P##P##~!s@ s@s@s@!!s@%%s@_ _ _______P^RP P R ~P~PRR s@s@_________YPPPXX~PXXPPP~ s@s@bVVVVVV V P _P_________ _ s@s@s@s@/U/^U^5U55U55^56U66^6BU$U/T/5T55T55~5BT$T/Q/5Q55Q55~5BQ$Q/R/VR V R VRVRVRVRVR"V"#R#'V'(R()V))R))V))R)*V**R*+V+.R.2V24R45V55R55V55R55V56R68V88R8:V::R::V::R:;V;;R;;V;;R;<V<<R<<V<<R<=V==R==V==R=>V>>R>>V>>R>?V??R??V?@R@AVAARAAVAARABVBBRBBV$V T o~~~~~55~66~66~66~66~88~89~<<~SPSeRPPR~PR55P66P66P66P78P89P99~<<Rs@_VVV44V44V77V77V88V P _P_!"_44_44_66_77_77_88_%s@s@##s@45s@99s@X33X33~ P VRPRRR~R22R34R44~44R44R45R55R;;RPs@%%s@44s@T_____)*_,,_--_--_.._.._00_00_22_55_$_PXZPZZ ZZ~Z++Z,,Z,,Z,,Z--Z//Z//~11ZPs@s@,,s@__ _&'_**_++_++_P^RP P R ~((P((~))R))R**P!s@s@s@s@()s@,,s@_____ _ !_!!_!!_P^RPR~PP R P ~ R%s@ s@s@s@]_ ______P^R P R ~PRRPP~ s@s@___ _ _________ P KVK]PPV P ~ VVVVV%s@ s@s@s@_VVVVVVV P _P________ s@s@HVVV''V((V()VPk_P_P_ _ _%%_''_''_((_((_**_%s@ s@&&s@**s@.U.\U\U\ U U \ !U!"\"#U##\#$U$$\$%U%%\%%U%%\%'U''\''UU.T. T T z 'TTPHz P z!!P!!z##z##zPz 0 0zPt z!!z!!P!"z""0##0%%t%%z/R/Vv V vVVVVRVVVVVPzP z zzzzzzz zlzlzPzz#P#\P\\\K\KZP`u\PPP9PPPP{P5U5F~FUU~U5T5F~FTT~T5Q5QQ~QR]R]PP~0U0cUcfUfsUssQQXS\VSVVV\S#\#*]*\V]]V\OSS#\\SS]ss]SSa]]PP]]]UU"U"VUVUV"P.@PPPXPXPXPXPXPPXPPXlІ #=B$ 44556666666677778899::<<?? ))&*.F%%3444566666777788;;==!%=P%%44 (+ """#001112223333334455666688$!%=P,, %""##44557777888999 %.##!""""$$%%&((***+,,455577899999+ i{  (())****+++++++,,,--.. %.0B^   %%&&(((())))*+ %.      !!!!""""1 -  +    1 9 ,,--...///1111224444 ))&*.F$$++++-----.00014444!%=P$$++ (+  !!!"(((()******+++,,,,--..//11!%=P## %!!++++..0001 %1!!ew      !!""""####$$$$%%%% %.  0  !!!!(#$$$$$%%&&&&+     +    !:^' SsFV,a*Yc . - a )d ( &7 r   b  {|: /N:Ѝ#70 $ ~KK|xJ/I%ISIK BJ>X Bf>J?X =<CJ=JEt.. }#<} t }JX }<.ff#   JXz   J=Ef<><.8*  t  o1t=<.<1.<JJ@t.C)  f #   Jt<GttJf<[<5 t  6 s< <sJ Jf<<<  <   o<5* tt-2t<5&Jj$hJtJ'  <  J . <5*s@%.%.%s.yJ (v/;g6 ffj<5 t tx<5H  <  . >HL t<5 t  tJ/;g6 ffl.8 t tX ..Z#(J +J -.>HL t<.8* t<58<5(<5&J<5(JJ +...0   .  <  .  <  J .  <  J  .X<XY4  X+y 9<=XsX XzzXyXltXXzXsXȂ qX ..Xs JrXXX uYt3/S zz/ wX </x'..+uI 5 uI5vH fpxIs[UYj *XtX"%( 4.f0 s~a L# JX CnX8A.JKhOXHw  =,;tYpY M$ gG:& kFtY  LaLtw*t.QX\w /yf YAA Z ] (&(#(;&^W7J)X& %$Xf`0XzX\XXCq*XX&X*D*/*KgeWtr YXW {wX t f< J= ~h.4 4} .fr* .& ( ..JtOfvfy<|; t<$.. X<< :<9f<<J >BY~Ct.fJ.(f<.=t<X 8 ~.Lf> >}..rB & *  X2 YufJJw .< 8|<<< ~ }.8 |X< "<<~ }<t X< :< X< r u.t  7)  JJy ZJ FY|  r" .& t >vroX;<<<<<><;:X ><><XYt- h<"gJ#lX;.9t?sbHtAJ yXD. JI.{.mt .& g J%K t$"X>$uJ?Xt?&XX6XF&3TXf,<dX;h {<;;<y< 'Dp<uX. X'[XX XXX~t,c8 7/l. <= <X.'t_ tLu! iJ#U0"]X4! . 7 5}..tr(  & f . <}XYXX v`fthIXy<<<v  Bn+ &] ( jO-<9f}<; t<< <( }X)< ւ<< <4X 0V h,X#/#WXfYg.f# $KXff2 ~6<qqX%<u0^zXV%<lvȺ#.XwX 0$~ z< "*0[Vu(XfJcJ JXJ~x%`2Mh<zy` :IJJ<\<< J:!;c<< 0HXroE,Z,<vY'YtZZ&<2tA#:* X)3uf.7 Xt<a zYe.YY/~f)]u#XYmX#:tfwupX#>t<ksuX$)X!st u= tYX'A'vYzLt* KstXJD$<XJ=WX<2#~bf) IpI  .AXt<fX6 6 yYX~=XXy %:iXR'WX X$\XXQ!RX$ Up0XfXw tX']XX5# socklen_tllist_addosmo_panicsize_trequest_cleanupsa_familyLOG_FLT_BSC_SUBSCRlog_target_destroyquietprint_timestampresult_cblog_filename_posresult_formattailGNU C11 12.2.0 -mtune=generic -march=x86-64 -g -O2 -std=gnu11 -fsanitize=address -fsanitize=undefined -fsanitize=address -fsanitize=undefined -fasynchronous-unwind-tables__ssize_t_IO_codecvtosmo_mslookup_client_methodLOG_FLT_GB_NSVCrequestosmo_mslookup_resultlog_target_typelchan_IO_save_endosmo_stderr_targetsock_pathgsmtap_instlog_infollist_emptyai_flags__func__SOCK_RAWosmo_mslookup_result_code_name__builtin___ubsan_handle_add_overflowstrtollstart_query_strosmo_mslookup_result_name_c__asan_report_load1__asan_report_load2__asan_report_load4_IO_write_base__asan_report_load8__asan_stack_malloc_5ai_next_talloc_free_lockLOG_CTX_L1_SAPILOG_TGT_TYPE_VTYtype__builtin___asan_handle_no_return_IO_save_baseminvalmdns_domain_suffixformatter_tai_canonnamedestruct_data_chainssize_tendptrdata_lenpriv_cur_columndo_sendosmo_mdns_sock_send__uint8_tfilter_fnresultLOG_CTX_VLR_SUBSCRlog_set_print_filename_possockqueries_LOG_CTX_COUNTlong intSOCK_RDMraw_outputstrchrtimeoutshas_argFORMAT_JSONsocket_client_close_IO_markerprint_ext_timestampmainputsformattersprint_filename2__builtin___ubsan_handle_sub_overflowlog_set_print_extended_timestampheadLOG_FILENAME_BASENAMEsd_journalprint_versiongsm_lchansigned charuint8_t_IO_FILEOSMO_MSLOOKUP_RC_NONE_IO_wide_dataLOG_CTX_GB_NSVCLOG_TGT_TYPE_STRRBLOG_FILENAME_PATHSOCK_SEQPACKET__ubsan_handle_nonnull_argchars_neededunsigned char_freeres_listtgt_gsmtapwhatg_bufosmo_sockaddr_str_from_str_Bool__ubsan_handle_load_invalid_value__builtin___ubsan_handle_out_of_boundsvalue__socket_typeOSMO_MSLOOKUP_ID_MSISDNprint_filenameosmo_init_logging2log_info_catcharSOCK_STREAMoutput_IO_lock_t__uint16_t__asan_handle_no_returnprint_levelLOG_CTX_GB_BVCparse_intLOG_FLT_ALL__errno_locationuse_colorprint_tidprogram_exitflags__ubsan_handle_sub_overflow_IO_read_ptrtgt_rbfp_offsetstrcmp__socklen_tosmo_mdns_result_encode__llist_addnum_cat_userosmo_mdns_sockLOG_TGT_TYPE_GSMTAPosmo_strlcpy_markersprint_filename_pos__ubsan_handle_out_of_bounds__va_list_tagmaxvalcmdline_optsmslookup_result_cbosmo_strbufprintfosmo_mslookup_id__builtin___asan_report_store_nOSMO_MSLOOKUP_ID_NONESOCK_NONBLOCKlog_set_print_filename2_offsetlog_set_use_colorhost_v4long_optionshost_v6__ubsan_handle_add_overflowhostnameoptindenabledLOG_FLT_VLR_SUBSCR__builtin_fwritelog_filter__asan_report_store1long unsigned intformat_flags2talloc_named_constlog_set_print_level_IO_read_baseLOG_FLT_GB_BVCquery_with_timeoutoption_unused2ai_familyai_socktypeformat_strsun_pathwriteFORMAT_CSV_old_offsetargvquery_by_handlesnprintfrxbufsenddescription__uint32_tlong long intrespond_resultfnameprint_fnosmo_mslookup_client_add_mdnsprefetchmsisdnlog_set_print_category_hexosmo_mdns_sock_init_IO_write_endfacilityformatter_csvprint_helpLOG_TGT_TYPE_STDERR__builtin_putsgp_offsetdomain_strsocket_initrespond_errstrerrortimeout__builtin___ubsan_handle_load_invalid_valueaddrosmo_fd_is_registeredai_addrlen_IO_buf_baseunsigned int_sb_remainbuflensocket_closequery_strs_lentgt_vty__pad5socket_acceptflagosmo_select_main_ctx_newloglevel__builtin___asan_report_load_nosmo_mslookup_client_freeoverflow_arg_area_flags__builtin___ubsan_handle_type_mismatch_v1filter_datapriv_nrlist__asan_report_store8ip_strs__asan_stack_malloc_0__asan_stack_malloc_1__asan_stack_malloc_2__asan_stack_malloc_3_modeLOG_CTX_GB_NSEOSMO_MSLOOKUP_ID_IMSIlog_set_print_category__asan_report_store_n_codecvtosmo_fd_unregisterosmo_mslookup_client_requestosmo_mslookup_clientrecv__ubsan_handle_type_mismatch_v1osmo_mslookup_client_newqueryLOG_TGT_TYPE_SYSLOG__mptrai_addrrequests_handledlong doublellist_del__asan_stack_free_5FILEhandleentrygetopt_longmslookup_clientosmo_mslookup_id_typeSOCK_DGRAMsockaddr_unun_addrlong long unsigned intsun_familysa_family_tsocket_read_cbreg_save_areasocket_client_respond_resultlog_filename_typeresult_timeout_millisecondslog_ctx_indexage_struint16_t__off_tsocket_clientvalue_stringtgt_fileserviceosmo_mslookup_queryosmo_mslookup_query_handlingsa_datacsv_headers_freeres_buflog_print_filterslog_contextosmo_wqueuemsgbprint_category_hexquery_strlog_save_filterssockaddraddrinfoosmo_sock_unix_initLOG_CTX_BSC_SUBSCRosmo_fdwqueue_IO_backup_base_shortbufOSMO_MSLOOKUP_RC_NOT_FOUNDLOG_FLT_GB_NSEsocket_clientsargcsocket_cbcolor__off64_tosmo_sockaddr_strlog_filter_indexmin_wait_millisecondslog_finiexit_cleanup_sockoption_index_IO_buf_endosmo_fd_registerosmo_mslookup_result_code_names__asan_report_store4globalsSOCK_CLOEXECnamesave_fnfprintfportstart_query_strssocket_pathstrtokSOCK_PACKETstderrshort intnum_catwhenpriorityLOG_FILENAME_NONEget_value_string__builtin___ubsan_handle_nonnull_argident__builtin___asan_report_store1_vtable_offsetSOCK_DCCP__builtin___asan_report_store4__builtin___asan_report_store8__asan_report_load_ncb_doing_nothingosmo_str_startswithexit_cleanupacceptosmo_sockaddr_str_is_nonzeroosmo_mslookup_cb_ttgt_syslog_sb_l__builtin___ubsan_handle_pointer_overflowformatter_jsonresponsestrlen_LOG_FLT_COUNTrespond_str_stdoutLOG_FILENAME_POS_LINE_END_IO_read_end__ubsan_handle_pointer_overflowimsiosmo_mslookup_query_init_from_domain_strLOG_FILENAME_POS_HEADER_ENDosmo_print_nLOG_FLT_L1_SAPIgsm_bts_trxuint32_t_filenoOSMO_MSLOOKUP_RC_RESULT_wide_dataoptargfilter_mapdaemonshort unsigned intstdoutLOG_TGT_TYPE_SYSTEMDmdns_addr_IO_write_ptrllist_headdashmin_delay__builtin___asan_report_load1__builtin___asan_report_load2__builtin___asan_report_load4_osmo_strbuf_remain__builtin___asan_report_load8osmo_mslookup_result_codelog_categorysocket_ofd__llist_delosmo_mdns_sock_cleanupnextlog_targetdatacategoriesclosefflushclientrequest_handleprevai_protocolquery_strsLOG_TGT_TYPE_FILEprint_categoryfwrite_talloc_zerolastosmo-mslookup-client.c/build/osmo-hlr/src/mslookup/build/osmo-hlr/src/mslookup/build/inst-osmo-hlr/include/osmocom/core../../include/osmocom/mslookup/usr/lib/gcc/x86_64-linux-gnu/12/include/usr/include/x86_64-linux-gnu/bits/usr/include/x86_64-linux-gnu/bits/types/usr/include/usr/include/x86_64-linux-gnu/sysosmo-mslookup-client.cosmo-mslookup-client.cutils.hmslookup.hlinuxlist.hstddef.htypes.hstruct_FILE.hFILE.hstdio.hunistd.hgetopt_core.hgetopt_ext.hsockaddr.hun.hlogging.happlication.hstdint-uintn.hselect.hsocket_type.hsocket.hsockaddr_str.hmslookup_client.hnetdb.hmsgb.hmdns_sock.hmslookup_client_mdns.hstring.hsocket.hsocket.hpanic.htalloc.hmdns.hstdlib.herrno.hGCC: (Debian 12.2.0-14) 12.2.0zRx 0)D`LH)!BBE B(A0D8G& 8A0A(B BBBI $LBBE B(A0D8G 8A0A(B BBBD L(3BBB B(A0A8J( 8D0A(B BBBG xL'BEB E(A0A8D 8A0A(B BBBA LBBB B(D0A8G 8A0A(B BBBB 8(XsAAR0H AAE 0L#BBA D(G@ (I OBBO D (A ABBA F@4AKL0C CAA c CAI @V0`X_BBB B(A0A8DPc 8A0A(B BBBE a 8A0A(B BBBA HBBB B(A0D8GpL 8A0A(B BBBA YpP(BEB D(A0 (A BBBA a (H BBBE |00BAC D0  AABA Ln BBB B(A0D8G 8A0A(B BBBE 44LTm BBB B(A0A8J Q 8C0A(B BBBG r DKGD C(D0g(A ABBFA0L  BBB B(A0D8G1 8C0A(B BBBA p?#DZ)&+$>D$X   `Yp^h Z`u3A" ( 43FV]Y+ 14F|m U7[r o u @Wq?  #!"@)!;Ll0p!?U>3\cp PF'(0FINa.C]sOV]^#z0_`_k e Y0l0p#@p3rn CJWd $<Wk3QXm ! osmo-mslookup-client.cprint_version.LC3formatter_csv.cold.LC14formatter_json.cold.LC26socket_cbcmdline_opts__func__.1socket_accept.cold.LC38.LC39__func__.3.LC27do_send.coldrespond_str_stdout.cold__func__.2socket_client_respond_result.coldsocket_init.coldmslookup_result_cb.cold.LC68start_query_str.coldsocket_read_cb.LC80socket_read_cb.cold.LC86long_options.0main.cold_sub_D_00099_0_sub_I_00099_1cb_doing_nothingputs__asan_stack_malloc_1formatter_csv__asan_option_detect_stack_use_after_returnsnprintfosmo_mslookup_result_code_namesget_value_string__ubsan_handle_pointer_overflowosmo_sockaddr_str_is_nonzero__asan_report_load8__asan_report_store8__asan_report_load4__ubsan_handle_type_mismatch_v1__asan_report_load1__asan_report_load2__ubsan_handle_load_invalid_valueformatter_json__asan_stack_malloc_2socket_accept_talloc_zeroosmo_fd_registerstderrfprintf__asan_handle_no_returnosmo_panic__asan_report_store4fwrite_talloc_free__ubsan_handle_nonnull_arg__asan_stack_malloc_0parse_int__errno_locationstrtoll__asan_stack_malloc_3do_sendtalloc_named_constosmo_mslookup_query_init_from_domain_strosmo_sockaddr_str_from_strosmo_mslookup_result_name_cosmo_mdns_sock_initosmo_mdns_result_encodeosmo_mdns_sock_sendosmo_mdns_sock_cleanup__asan_report_store_n__asan_report_load_nrespond_str_stdoutfflushsocket_client_respond_resultstrlensocket_initosmo_sock_unix_initstrerrorsocket_closeosmo_fd_unregisterosmo_fd_is_registeredstrcmp__ubsan_handle_out_of_boundsmslookup_result_cbrespond_errquery_by_handlestart_query_strstrchrosmo_print_nosmo_strlcpyosmo_mslookup_client_request__asan_stack_malloc_5__asan_stack_free_5recvstrtok__asan_report_store1start_query_strs__ubsan_handle_add_overflowmainosmo_stderr_targetosmo_init_logging2log_set_print_filename2log_set_print_filename_poslog_set_print_levellog_set_print_categorylog_set_print_category_hexlog_set_print_extended_timestamplog_set_use_colorgetopt_longoptargosmo_mslookup_client_freelog_finiosmo_str_startswithosmo_mslookup_client_newosmo_mslookup_client_add_mdnsoptindosmo_select_main_ctxlog_target_destroy__ubsan_handle_sub_overflow__odr_asan.formatters__odr_asan.g_buf__asan_unregister_globals__asan_init__asan_version_mismatch_check_v8__asan_register_globals<%2,Y6~;X7897 7n&<=s:&|=:\7f\p7  7 &<9 : &|; : &|::?&:I:w&;:&3:&|9:&3:;7G<=&|<:v~7,;7<<&<!:7<=j=&<5:&|4:v=&6:&|7:&6):O&7Y:&|5:&4:4==X=`=h>r&:w?~@<&9:>&9?<&8?&;?#>+<3<8<@<H<P<U<]<e<j<t<|<<<<==<<<&8:&<;: <"<*=2<:=B<J<O<W=_<g<l<t<|=<=<==<==<=&<:<<<&|3:(<0<8<=<B<J<R<W<a&<6f?p<z&|8?&<::=<<<<<<<<< A<<!<+&5:?Q<V<^=f<k<s={<<<<&5?<<<&<8?=A<<< &|6 :( <2 &<4< :P &<<Z :l <t <~ &4 : < = < < &7 ? = < &<7 :!<!=!<!!<)!=.!<3!<;!<C!<K!<P!<X!<]!<e!<!6! k""7#8#9#\ $76%>%7%<&&2&:&&<3&:''\((7))7**7,&* ,:/&<+)/:O/&.T/:o/&<1~/:/&<0/:/&|1/:0&|0)0:O0&8<8<8<8<8<9< 9&|.9?9>'9<99&|/C9:Z9>d9&/n9?9<9&09?9<9<9<9<9=9<9<9<9<9=9=9<9<9=:< :<:<:<:=&:<+:<3:<;:=C:=K:<P:<X:=`:<e:<m:<u:=}:<:&*:::<:<:=:&<.:?:<:=:&,:?:<:<:=;< ;&2;::;<B;<G;<O;=W;=_;=g;<q;&.;:;&0;:;&/;:<<<< <=<<<<"<<,<&,:<:R<&-\<?k<<p<<u<A<&|,<?<<<<<<<<<<<<<A<<<&<,<?<=== =<===<=<&=&-5=?L=<Q=<Y==^=<c=<h=<p=<z=&1=:=<=<=<=<=&|+=:=<=<=<><&>6=> ?F?&\Y$?<.?GJ@Hn@&Y A&YA&YA&YdA&TZAAIA&VZAJBJ!B3(B< -BKABLOB|VB]BbBMjB>oBNwBNBNB&VZBJBJBBOB&VZCJCJ9C<>COrCPCCQCDCD&|*D?*D&<*/D:AD&<)FD:UD&|)ZD?gD=qD&'vD?D=D&)D:D&<(D:D&|(D?D=D&(D:D&(D?E&%E:!E&<&*E?;E=EE&|&NE?_E=lE&&zE:E&&E?E&<'E?E&)E?E>E&%E?E<F< F&|'F?FN(F&'-F?:F>?F<fF6F GU`GVdH@lH>tHN|HNHNH<HSH&$H?I&<%I?#I&$-I?AI&|$KI?_I&|%iI?I6IVM4eMYMZMTO /OTO[Q&VZQJQJQ QOCR&VZXRJsRJR< RK{S&VZSJSJS SOS\T&Y T&2ZT T\ &T 0T&Z7T AT2cT&2ZxT1T]T&LZT^T_TN|U`U VQ3V&VZLVJgVJV VOV&VZVJ WJ$W )WO7W>MW>\W&VZwWJWJW< WOW&VZWJWJX| XO+X&VZXJX XJX< XKX&VZYYJ|YJY| YKYWY=YaYZa ZN'Z&<$0Z?AZ<IZ<NZ=UZ&"_Z?sZ&"}Z:Z<Z=Z&|"Z?Z&<"Z:Z<Z=Z&!Z? [&\=J\&S\:d\<|\&\?\>\<\b\a\<\<\<\<\b\a\<\<\&]:]&<$]?.]<3]<8]==]<B]<O]&|T]:q]&v]?]d]d] ]K]d]<]<^gh^Ix^&VZ^J^J^3^< ^>^&|_:_&_?_<I_iO_&|Y^_Ee_&lYk_&|Yv_&Y{_H_&VZ_J_J__K_&|Y_P`&VZ!`UT`j[`Ju`J`<`K`<`&<`?`>`<`&Ya&YOalaPbbQc&lY%cmDclJc&|YOcPUc&xYrc&wc?c<c&<c?c&|c?c&c?c=c&c?c=c&<d:d&|"d?0d<:d&?d:Ld<Vd&[d?jd&<od?|dNd&|d?d>d&d:d&d?d&<d:d&|d?d&d?e<e&e?7e&YPeoepededepe eKedeef&YKf&YgqgpgfglgPi iQwi&cYi&|i?i<i&i?i&<i:i&|i?i&<j:j&|j?$j&)j?6j<=j&<Fj?Wj=aj&oj?j=j&j:j<j<j<j&<j?j&|j? k&krk&#k?2k@:k>Ak&|Jk:Zk&ck?vk&{k?k&<k?k<k&|k:k<k&k?k&k?kN l&l?l@"l&<'l?Al&Yll&Y6mnn<n>n&<n:n&|n?n&n?n&|n?n&n?o<o&o?%o&*o?9o&<>o?Mo&Ro?\o@fo&ko?zo&|o?o<o&<o:o<o&o?o&o:o=o&|o?o=p&< p?p&p?Mp&Yvp&Y+q&<5q?Gq>Yq& ^q:pq<zq& q?q&< q?q&| q?q&|q?q&q?'r6@rqr&4Zr&8Zss2swxsxswsxsTtgt&VZtn u&\YuuGNuyuZu&VZuJuJu|uKvn vvQ#vJ>vJQv[vKkv&VZvJvJv|vOvnv&Ywzw&Y!x&Y,x&YJxT}xNx>x&VZxJxJy<yK$y&VZ?yJZyJmywyKy&VZyJyJyyKyny\yQyNyN zLz|z<%z*zM2zbz=lzDz& z:z&| z?z&< z:z&< z?z& z:z& z? {={&{:,{&1{?>{=H{&< M{?Z{=g{&| l{:{{& {?{& {?{&< {?{N{&| {:{& {?|& |?|<|@"|&| ,|?@|& J|:\|>a|Nf|<k|<p|<u|<z|<|6| }}~~~+~w~&VZ~J~J~<~K&YoUpmpxfyv2U`lPہQ>@&:3&VZLJgJO{|͂&҂?߂<&<:&|?&|?2&|<rP&Z:t&<~?&<:>Ń&σ?ރ<&?&r4&|C?\&<f:u<&?>&:Ä&<Ȅ?ڄ&|߄:&?&?&?(=2&<7?F&K?XN]<e=w&||:&?<&:<˅&<Ѕ?߅&|?Uv&|:<&<?ņ&ʆ53' nAA BBkBBV(C=QfQLR|R2SCSpRM&SRB^&PgRw&RR&SR&NR&MR&MB&&\MCBO&\LTRc&KkB{&NR&|KB&KR&B&@B&@R&AR&CR&pR&tB&BB&AB ='V(CkBB BBAnAX0BXM YfpVzQ"O"d"u"F " ""l"G" "q" ""] 6" J"e"my"( ""63#Q`Y&\Y !+?FZdx/& J[ -` Og   X & : &Y &TZ  c &VZQ &|V :b z   J J |- O J J . O+ &DZ2 .7 G &YS &VZ J  J < K &;Z   3 &VZ J" &DZ= JP \.Z Ki 4|  <   <  <  <  <  <  <  <  < < &< ) <3 <8 >= >B <G >N S <X <b <g <q <v <}  < <  < < < > > > < < < &  < &Z>)#ymJ8 !GlO6 "G   ~ m ]   uF d  e@P@P00@0P000@0P@@P@@@@P@@@@0 0 @ 0P  0 0   @@ P @   @  @@   @  @ @ P @  @  @ P @  @  @@P@@@0@0P000@00@@P@@@@@@@@@P@0P000@0P00@P@@@@@P000@0000@P@@@@P@P@@@PX@   @   @   !@!P!@!!!!""@""""##@####$$@$P$$$$$@%%@%P%%%%%&0@&0P&&0&&0'0'@'P'''''((@(((())@))))**@***@*+@+++,@,P,,,,,-@----..@.P..../@////0@00001@11112@2223@3334@4445@555566@6P6667@77788@8P888889@999::@:::;;@;;;<<@<<<=@====>`>p>>>>@?P???? @0@`@p@@@@@APAAAAAB`BpBBCC@CCCC@DPDDDD EEEE FFFF G0G`GGGH`HpHHI`IpIIJJ@JJJJ@KPKKKKKL`LLLM`MpMMNN@NNO`OpOOPP@PPPP@QPQQQQ RRRR S0S`SSST`TpTTUU@UPUUUU VVVVVWW@W`0`W0W0W 1W`1W1X1 X 2@X`2`X2X2X 3X`3 Y5(YCY&YY&YY&YY&YPZ`4ZZZZZZZZ[&[M [@[&@X[^`[[&[o[[&[[\&\ \@\&@X\`\\&\\\&\\]&] ]@]&@X]`]]&]]]&]]^&^ ^@^&@X^*`^^&^;^^&^L^_&_] _@_&@X_n`__&___&__`&` `@`&@X````&```&``a&a a@a&@Xa`aa&aaa&aab&b) b@b&@Xb:`bb&bKbbb\bc&cl c@c&Xc}`cc&@ccc&ccd&d d@d& Xd`dd&@ ddd& dde& e e@e& Xe`ee&@ eee& e'ef& f8 f@f& XfI`ff&@ fZff& fkfg& g| g@g& Xg`gg&@ ggg& ggh& h h@h& Xh`hh&@ hhh& hhi& i i@i&Xi`ii&@i&ii&i7ij&jH j@j&XjY`jj&@jjjj&j{jk&k k@k&Xk`kk&@kkk&kkl&l l@l&Xl`ll&@lll&llm&m m@m&Xm%`mm&@m6mm&mGmn&nX n@n&Xni`nn@nznn&@nno&o o@o&Xo`oo&ooo&@oop&p p@p&Xp`pp&ppp&@ppq&q# q@q&Xq4`qq&qEqq&@qVqr&rg r@r&Xrx`rr&rrr&@rrs&s s@s&Xs`ss&sss&@sst&t t@tXt`tt&tttt!tuu1 u@u&XuA`uu&@uRuu&ucuv&vt v@v&Xv`vv&@vvv&vvw&w w@w&Xw`ww&@www&wwx&x x@x&Xx `xx&@xxx&x/xy&y@ y@y&XyQ`yy&@ybyy&ysyz&z z@z&Xz`zz&@zzz&zz{&{ {@{&X{`{{&@{{{&{{|&| |@|& X| `||&@ |. ||& |? |}& }P }@}&!X}a `}}&@!}r }}@} }~&!~ ~@~X~ `~~~ ~~&!~ ~&" @&@"X `&" &" &# @&@#X* `&#; &#؀L &$] @&@$Xn ` &$؁ &$ @@X `&% &@%؂ &% @X `&% &&؃ &@&% @&&X6 `&&G &'؄X i @&@'Xx `&' &'؅ &( @&@(X `&( &(؆ &) @&@)X `&) &)؇" &*3 @XD `&@*S &*؈d @u @&*X `&+ &@+؉ &+ @&+X `&, &@,؊ &, @&,X `&- &@-؋. &-? @&-XP `&.a &@.،r &. @&.X `&/ &@/؍ &/ @&/X `&0 &@0؎ &0  @&0X`&1-&@1؏>&1O @&1X``&2q&@2ؐ&2 @&2X`&3&@3ؑ&3 @&3X`&4&@4ؒ &4 @&4X,`&5=&@5ؓN&5_ @&5Xp`&6&@6ؔ&6 @&6X`&7&@7ؕ&7 @&7X`&8 &@8ؖ&8+ @&8X<`&9M&@9ؗ^&9o @&9X`&:&@:ؘ&: @&:X`&;&@;ؙ&; @&;X`&<ؚ*&@<9 @&<XJ`&<[&=؛l&@=} @&=X`&=&>؜&`> @&>X`&>&@?؝&? @&?X`& @'&`@؞8&@I @&@XZ`&@Ak&A؟|&A @&BX`&`B&Bؠ&C @&@CX`&C&Cء&@D @&DX&`&D7& EآH&EY @&EXj`& F{&Fأ&F @& GX`&`G&Gؤ&H @&`HX`&H&Iإ&`I% @&IX6`&JG&@JئX&Jh @&JXx`&@K&Kا&K @&LX`&`L&Lب&M @&`MX`&M&Nة&@N( @&NX8`&OH&`OتX&Oh @&PXx`&@P&Pث&P @&@QX`&Q&Qج& R @&RX`&R& Sح&`S( @&SX8`&TH&`TخX&Th @&UXx`&@U&Uد&U @& VX`&V&Vذ&W @X`&@W&Z3ر&Z3 0&Z@ 4X`p&Zo&Z&`Yز(&Zp0 0&Z8@&ZX6`p&Z CسJ2Q @`XY`` 1شg`o @`4Xu` }ص`1 @ X`1ض 3 @X`@@ط @X`ظ` @-X`- ع @`X`  غ @2X` &,ػ-`.4 @@X;` B ؼI 2P @@XX`@_ ؽf` m @ Xt`{`ؾ  @X`. -ؿ  @ .X`  @0X``3 `0 @ X` @@X`@  @X`#`2*@ 2 @@X9` @`GN @0XU`]d@ k @Xr``y  @ X`1 @0X`@ @  @X`. @@X`&Z '" + / 0 0 - & .+ /9 /> > /J /) T /#^ / h /8u / ~ /M /K / / /f /g /B / / /C /U /D  /4 /! / . /; /^H / U /b /o / | /  / / / / / / / /W  /  /  / /% /32 / ? /L /'Y /[f /)s /  /P /  / /\ / /_ / /  /^ /_% /< /2H / T / ` /m /z /  /M  / / / / /  /  / /9) / 7 /E /= S /` /lm /z / / / /Z /U / / /e /  / /  /, /8 /F /nK /W /d /| / /' /p /d / /p  /R /=  /  /7 /# /=0 /6 = /= J / ] /l /r /x /~ /8 /9 /V /s /_ / / /  /@ /  / / /" /H / + /6` / / /I /: / /  / / /e /c / / /g / / /D /j  /- /TA /}O /  / / /  / / / / /  /$ /i/ /} / / /x / /  /( /I. /4 /': /@ /F /L /SR /[ /i c /o /6| / /M /* / / / @ /@S /b /S h /en / / / /" /Z /8 / / / / / /% /H /` / m / /! / / / /p /u /| /k /+ /8 /E /R /_ /&l / / / / / / /  /U /- /j /t /` /  / / /b / /! // /^ /qj / / /  / /D /z / /_  /@ /  /  / /1 # /f1 />&ZX /yep /] /_ / /k / /P  /&`Y /- /;oD /S /o /x~ /4 / /x /4 / / /e  /#  /y . /D /p` /Sq / /  /A /  /{ /r  /K) /w ? /$Z / / /- /  /V  / /" /B /] /Ly / / / / / /* / K /b /x / / /"  /& /v / + /@U /  /  / / /" / /_ ? /u_ /k /u - /. , ,  /  , ,c ,| ,b /" -, , , / /  / &@W -4"Z"u" " " " &C#&@D$ -9"a" |@" "k "u " &@C&C+ -@"h"" "\ "f " _&B &C6"@"X"e"v"`&@W"=,"L&Z "\ &Z*"EU"b"- o"7 " " " " " &B= &`BN3& E=R&D\m&D"~"~ , ," " " " "# -"D"["r""/"J"h"" "" "'!.+"p@-J"W"l&Z|""U"c"d  -" " ! &7 " L V "Z k & " " - "# . "; ! . !"^ '!`.7!"m D!" Q!" ^!" k!" x!" !" !" !" !"# !&@!"< !"A !"F ""K ""W !""z ."" C"&b"" o"}"&?""& @""&>""&@"#&@#c1#&`@D#tY#&>c#x#&@?##&=##&?##&>#5$&@A"$I7$&AA$xV$&`>i$z$&A$ //$$ /$ ,0$ ,&$ / $ ,g$ ,]$ ,$ ,$Y%%&/%G%\%&@l%Ά}%&% /}% - % /x% ,% ,% ,% ,% /3 % ,=% ,% ,% ,& - & /!& /,& ,0& ,5& /_ @& ,D& ,I& -P R& /b&{yl&{y& ,G& ,E&s&s&{y ''N|.'& H'`|b'e|o'o||''&I''&J'v'v' ,X' ,V'v(v( ,i"( ,g'(vC(|sf(s(v((Nx(x(x)y+)@5)zJ)& d)|q)0|)& )t|)~|))&J)o)&`I)*&@J*/*&I>*tH*td* ,zh* ,xm*t*u*u* ,* ,*v*w* -~ * ,* ,* ,+ , +w+ - + ,$+ ,-+ ,1+ ,:+ ,P>+ ,LC+{[+!{p+&+5{+& +B{+Q{+&@ +^{,p{,& +,{<,& R,y\,yx, ,i|, ,g,y,6s,t, u,,Ru-u:-uU-e-v--_v--w-y- .y.`&.y3.zK. zX..zm.z.@..fz.pz.z.& .z.&@ /z/&@ )/z>/& T/{i/& y/{/& /{/&@ /{/{/& 0{0& +0 |@0& P0|]0j|j0y|w00&F00&H00&J0+0@1&H1U%1& G81M1&`GW1l1&`H11&G1 /1 -K 1 /1 ,1 ,v1 /1 ,1 ,1 /41 ,: 1 ,0 1 /12 , 2 ,r 2 , 2 , 22 , C2 -a L2 ,C P2 ,; Y2 -w f2 ,o j2 ,k t2 - 2 , 2 , 2n2&2 o2n2n2&@3n3&,3nA3&Q3nf3&v3o3&3.o3&3m3 - 3 , 3 , 3m3 - 4 , 4 , 4 , 4 , 4o+4&;4oP4&f4o~4o4&4o4o4&4o4o 5&@ 5o85 pM5&@]5!pn5&5:m5n5@5Bo5&@5Vo5&6`o6oo(6&86I6&@K]6 / o6 /6 /N6 /N6tq6q6& 6 /J 6 /x6 /[ 6 - 7 /x7 , 7 , 7 ,K $7 ,= 27 , 67 , D7 , H7 , M7fb7 /Nm7 , q7 ,} w7 - 7 /N7 , 7 , 7:j7l7&7 - 7 /N7 , 7 , 7i8i8&)8e38 - C8 , G8 , L8eg8t8p~8f8j8j88&N8`g8 - 8 ,, 8 ," 8 - 9 ,l 9 ,X 9)h9 - .9 , 29 , ;9~hE9 -4 R9 ,V9 , _9 ,*c9 ,$h9[ju9sj9&9j9j9&9k9&@9j:&!:j6:&@F:kS:kh:&x:k:k:&:g:g:$i::Jj;&@;>k5;NkJ;&\;gkq;&;k;&;k;&;l;e;p <g"<g=<pG<i\<&l<i<&@<i<&<j<&@<-j<&=j=j*=&?=kT=&d='ky=&=6k=l=+l=&@=o=&K>>&K(>9>&LI> / m> /N> /N> e>e>&> /N>c>c>&@ ? /> ? - "? /-? ,c1? ,IA? ,E? ,T? ,1X? ,]?M_?_?&pY?_??_?%`?X`?`@@ @`-@`B@&@R@`j@`w@@&L@-@&M@G@&`M@X@&`LA / A - "A ,&A ,u+A /6A , :A ,HA ,{LA ,YQA /sA ,wA ,|A /A3A -Y A ,A ,A ,A ,AAAA1BA@ B3BE4BEIB&%YBFfB{B&TBB&UBk@B - B ,B ,B ,=B ,7Br@B -< B ,_B ,[C ,C ,uC ,C ,CkD1CEFC&&\C.EqC&@&C?ECREC&&CcEC~EC&&CE D&'D?;D2?WD@aDN@yDEBDfBDDDDnBDsBD{BEBEB0EEEBCZE@oEvC|ECEECEDE&*E3DE&@*EJDF&@))F^D>F&)NFzDcF&(sFDFDF&)FDF&@(FDF&(GDGD3G&(IGD^G&)nGEG&@'GEG&*GFGFG&'G"FH1FH&''H>F?HCFLHQaH&UkHjH&UH~H&VHH& VHH&@UI /3 IBI ,FI ,KI /VI , ZI ,iI ,%mI ,!rII /)I - I ,OI ,;I ,I ,I ,I ,I /+ I / I ,ZI ,:I /xI ,I ,J ,J ,J /J:*J:4J - DJ ,(HJ ,"MJ - VJ ,TZJ ,FcJmJ - }J ,J ,JHJ - J ,J ,J ,J ,J,J;J&@JiKK&.K?K&PK eK&uKK&KKK&KŅKԅL&@Ld/LOKO‚XOւmO&}OOO&@O O&O"O& P@P&1P^FP&VPkP&@PP&@PPӃP&PPQ&Q(Q&8QGMQ&bQjwQ&@QyQQ&QaQQ&EQ3Q&F RD"R& F,Rb=R&EQR /FWR - kR ,oR ,tR /R ,kR ,YR ,R ,R ,R ,R /R3R!^Rl^R^ S@ S3$S^uT / T ,T ,T /xT ,T ,T ,T ,_T -T / T ,T ,T /T ,wT ,WT"T -, U , U ,U"6U@U&UU&3kU&U&@3U8U8U9U9U9V9V97V9QV9iV*:V:V#;V&2Vk;Vt<V<V -V / W , W ,W /W ,oW ,S(W%2W -BW ,FW ,LWB%gW qW%W<3W&@2W3W&2W:W:X:X <+X<CX<PX<hX&<XU=X]=X=X&2X -?X / X ,"X ,X /X ,cX ,AX>#Y -Y ,Y ,!Y8:Y#DY -TY ,XY , ]Y#kY$Y`Y/Y&@1Y/Y&1Y8Z&1Z8+Z8CZ9PZ9hZ:uZ":Z/:Z7:Z?:ZG:ZF;ZK;[;[&1,[b=9[=G[ -P[ / [[ ,<_[ ,d[ /o[ ,s[ ,|[C'[ -y[ ,c[ ,][8[([[/[&@0\-0\&05\5M\8Z\8r\9\&0\9\9\:\:\d:\i:]q:]:6];C]c;[];p]&0]<]o<]g=]7]&V] -] / ] ,] ,] /] ,] ,^ )^ - ^ ,G $^ ,; *^)E^O^X/d^&/t^]0^&@/^8^G9^&/^^9^r9_&/_9_ :5_:B_O:Z_y:r_:_:_;_S;_;_&._ - _ / _ , ` , ` /` , ` , `=1(` - 8` ,P!<` ,L!A`=O`1j` z`6`&@-`7`&-`><`&-``<`&.a<&a<>a<Ka=ca={a=a=a =a9=a&-aP=a=a= b - b / b ,|!$b ,j!)b /4b ,!8b ,!Ab4Kb - [b ,I"_b ,E"db<rb2b4b`b6b6b&+b[7c|7'c&,=c%8Ucy<bc<wc&,c<c<c<c<c&@,c< dl=dt=1d=Id=Vd=kd&+}d=d>d -d / d ,q"d ,c"d /d ,"d ,"d*d -d ,.#d ,&#d8e* e*e$,?e&+Oe-/de&@+te9e+9e9e9e9eT:e\:e:f:(f&*8f>;Pf[;ef0}f2f*8f>8f8f8f9f&.g#9g:3g&@.Cg:Tg&,eg / kg - g ,p#g ,Z#g / g ,#g ,#g /xg ,1$g ,%$g ,$g ,r$g -"g / g ,g'g ,K'g /g , (g ,'hRh -h ,("h ,((h\KhUhwjh&@=hh&=h\hh<hiixi6iNifi~iicii&=iVii j -j / j ,( j ,(%j /0j ,(4j ,(=jGj -SWj ,X)[j ,N)aj|jjjj&<j%j&<jFjN ktk'k?kWk^ lk&@<|kp k k -k / k ,)k ,)k /k ,)k ,)kk -"k ,R*k ,L*l7l$l -?4l ,w*8l ,u*=lKlhl rl l&;ll&;ll&<l' m/#mY0maHm]m&@;mmFmkmpmmmmm[ nn 'n -U0n / ;n ,*?n ,*Dn /On ,D+Sn ,"+\n#fn -vn ,+zn ,+nTnn nn&:nMn&:o-o{Bo&;Ro_owonoo!o&o6o[oop#p;pAHp]p&@:op|ppp&Wp -p / p ,+p ,+p /p ,L,p ,6,pp -}q ,,q ,, qt%q`/q Dq&@9Tqiq&9yqq&9qqq&:qLqrr*r&9:r.Rr>jrNrSrrrr rr -r / s ,, s ,,s /s ,]-s ,G-'s1s -As ,-Es ,-JsWsesssKszss&7s]s&7 t"t:tbRtjtt&@8tt t t&8t t!u&@7u2!#u7!0u?!Eu -Nu / Yu ,-]u ,-bu /mu ,E.qu ,/.zuFu -u ,.u ,.uuuuu&6u-v&7!v.vFv ^vZkvjvovwvv v&6v v -w / w ,.w ,.w /"w ,P/&w ,8//wq9w -Iw ,/Mw ,/Rw_w%!mw wwwww&@5wx&5x*xBxOxgx>|x&5xx&6xx x x&5x!x-!yG!+yT!8y\!My -rVy / ay ,/ey ,/jy /uy ,;0yy ,%0yy -y ,0y ,0yUyyyynz$z&44zIz&4Yz%qz, z@ z&@4z!z !zO!za!zi! { -{ / !{ ,0%{ ,0*{ /5{ ,19{ ,0B{ L{ -\{ ,w1`{ ,o1f{ { {{&3{{&4{D{{x|*|7|L|&3\|,i|4|<|||0||} }d*}lB}W}&8g}j|}&@6}}&8} /} -{ } /.} ,1} ,1} / } ,2} ,2} /x} ,2} ,2} /~ ,d3 ~ ,F3~ / 6~ ,4:~ ,3U~ ,4Y~ ,x4^~ /h~ 4q~ /f|~ ,45~ ,"5~ /~U~ ,5~ ,}5~ /~T~ - ~ / ~ /*~ ,5~ ,5~3OO;W8QWPXk@ uY [&@![& [&@ \#\8&!J'\bW\w&h\\&ƀ\\\\8\E\R]g&(]&@A]F]X]́&z]&  &Q*+?&QRHg&@Qzk&PiM 4M߂MQ$ 9RT@ fS{ TET̃ ܃T1T@TXTrU V VƄ ڄ-W @WIW*W?@ SXh |YYYZ҅$Z4Z&@$EZ MZ8RZEcZZ&#lZ&"ZZɆZކ&"Z&@"Z5ZBZW&"i2[~&$P[&#n[҇&![[['[<&#N[c&@#{,\4\=\B\Lj\\\\\\"2]/7]<<]Ia^& Rhy}&`T&R͉&O׉&O &`O3&PF[&Pn&@P1&SBʊ&`SԊV& S&R,&Tb /_l /t /PF /ʋ ,5΋ ,5Ӌ /݋ ,;6 ,/6 ,~6 ,t6 ,6 ,6 ,6 ,6 /*G7dGThHlpHxHHȞHHH&%I+&@%;1IP&$_OIt&$mI&% / /͍)@9  /02 /V / f /br /z| / /j / / / /8 /bʎ /XԎ /8 ߎ / / /  -  ,7" ,7']BL]Y]q]&N`ď ,`7ȏ ,N7я ,7Տ ,7ޏ -) ,7 ,7 -9  ,8 ,8+a -K . ,-82 ,)87 -K @ ,L8D ,D8MaW -^ g ,y8k ,u8t4b~ -q ,8 ,8 ,8 ,8ccÐ&Րcd&@&d &1cF&Vck&{4dCd&Pdő_d֑&Saa b'1sdF&@Vdnd&dd&Вd&d &@ d1&G - T ,8X ,8b@cl@cHcSc)c̓{c&d&0p2 ,86 ,8;7pZ@pu ,9y , 9 ,g9 ,M9 - ,9 ,9 - ,9 ,99q֔&@Kqbq&+q@&@ Qqf& wq&r& /ĕ /ɕ /͕ /ҕ /%֕ /ە /ߕ /g / / /  / /k / / / / / / /  /  /O# /' / , /0 /5 / 9 /+> /rB /_G /$K /$P /T /Y /) ] /b /f /k /o /t /x /} /J /F / /3 /: /: / / "Sq"q}"0q" "~1hrg#u>=r6sfs4tH{yYvjv{tuw&Y&Ywww+&YB&YQwjy0l0l$ ; 0lc  0l   m  A!>IA|5?A ?koxAAk@&Y&Y-&Y>k@`r@r@&Y&Y&Yr@ &P|G}}[~E~/~):U\HH^Dl^$^n^*Wp!$p!$p!P$p!$"x""1%pB%%##d$>##='$(dC'9))H  ) h1 1Q!=1}!94!4J"4r"*"*/#*q#@##@$2$@c$$@?'h'R (\(R((Y))^)S*x**s+E++#+M,t,-N^---qF..F.Q//q/<000 1 x1 1I22I22hJe3J4dN4sM555Te55T553O55PF<6PF6PF6PF6dG7]:7a7`7a7`8a.8+aM8Kaz8a84b84b8$a80p9@ph9Qp9Qp9p * 0"@'P" @# )#@Vk#Tsy~F  F 2qp!$<"-Y"@5#>##$o$zC'%%( )f** * $ 4 1 =1 > A k@= r@Z xAl | I  UN  ]  ^  0_ * `: `L +a_ ar 4b b  e ] e x f f `g )h5 ~hL 0lW b  0H 0>M 0UR 0lW 0t\ 0a 0f 0k 0p 0u 0z 0 0 0 0 0 0 0 0 0 0 0( 06 0? 0N 0` 0h 0o 0{ 0 0 0 0 0 0 0 0G p!s>^H`r!0l"0p"@pB)i))+"+0' 4L@p! $,>|APFI<\]^ 0_D\` e ],0l0p@pr8X|$"tq'".symtab.strtab.shstrtab.rela.text.data.bss.rela.rodata.rodata.str1.1.rela.text.unlikely.rodata.str1.8.rela.text.startup.rela.data.rel.local.rela.text.exit.rela.fini_array.00099.rela.init_array.00099.rodata.cst16.rela.debug_info.debug_abbrev.rela.debug_loclists.rela.debug_aranges.rela.debug_rnglists.rela.debug_line.debug_str.debug_line_str.comment.note.GNU-stack.rela.eh_frame @І@@v'&  ,@" 6@4 1@'>2RM@X'a2u#p@@'  @ȸ@' `@l0'x@8l'@Pl'@hl'ASGZ:@(K'p@b'1 A,@b 'FN;0A@xmX'R0&]0m0 v@r0'%`(1 " v