<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJztWltzozgW_jXOiwoXBnx7yEOuPV2V2XRNp7t3nygBwtYEEC0JX_bX7zkSYOzYSRx7tnarx0XZIKSjc_nORbIikawve_5NwjTlmer5d6Tn3vbcK2hTVZ5TuYa2-yrLSCzykmdMElHpstI9H_v0vPtNt3pk93vk2iu2z3FGi5kz8IjjaCpnDKjcLqnKfc-piudCLAt4UwhHaVokVCZOxiNJJWeKOD-ynnfjOGxVCqkdChxBE0mBpX5MnEeguSAwMAGS8XRq5_sWVYWuiJmWLJhUXBRk4PXdvuv4lXk56I3vPHgO-oEd81QzdkW2OavfziWjCclFwjLsUwrFV_bV5wLYzjKW3HKJr0A3lZLwHfF6MDR5bSuIht_ZIgeF1L28e8MqdCNOHA-IoyUvM0Z2dcRyrh0R_QnayiXL6MqBbxFTDfKBqhKuaJQxJ5WMbZ7MVKAEnnKwIjbHqOIFzSrmFDRHJeeUFw7q1DS02s035B0jOgFRNcc3qYSOTil4oRmIfVuIAuZMwYhSVEXCwd451XPoGQNvWlaxFhLMx6nCCS0MnLisyIwVwBzQTBdc8YhnXK_JnCcJA4kTFlWzGZOOrgqgCRPNksiYXDIlKhkzEEiSg9q1z7V27y0EiGOYLmjmcLVWmuXHjYcbXsRZlbD9lNqXCE7A6gadIKMRyLFOZRVb8z8XOYMfWkrxXEmxgHu4_ZPFWsEtCJwyKUGFGQcQkAHSmhVV7NTwhgmCvtcH7KSxyKBfwumsEAqsBepeMFQ__zegQYhyq0FlJXEEcqDzEr4NCgIvSqd-XxBnReIaDhbLSyqtIa5IA8u6iYgS5QFKY-O0Y9IbXjs_6l5O3cuxvXrD205osKjfdlQSAVISUpXQ8vDw_femOWEprTJNLILIajIKR4FTxqCYolo5oBNLmIP0EtlCZK44GKfQBHRtBF_XLlmbCh9s4PL8xnrQ1u_30SUVozKeI_SlVmTOJMMg-KK_f4P9IZK-0v-jQLOj74qEiLShn4FMffuiNpB_5Q8H8D22Uaw1FBABvAHaIBwQyRIG00gDPiRnY-2apFURNwbMWR6X69aGXQJ1bF47W4Raey4ET4DCVUNh0jQkTGmI5KR5VjLGRwUYDDWBGDjt-de1lsynN7w7LF0hNLPBtsMrV4SSqOKZ5oBKDtFHr0u05LiZtMMPTm5CE-m2VIUC4ADuMoGGmMLYF0z451JxLhbsRB1bEudVsr9fyQ23_xUtB0MPuQh21FxSpdCnYYClWkEAnoBohjBo0pvQZ9p53UwUz6msO8F8RAsghRlMY2GT7pFgTOpEqcjPCtIWJk-1x1J1BnSQgmqSq3I2Y1qrkfpTp1BeQMBiRoBRABKEy7WcAP8v5CqR4d74etN1AUYkrYP1vNEClVri18SaGCCoK1mQMKwNFUZqSctRgKapUTDe4etcn0N-63tdTDWWhChe5Riat0wC-jfQHdvweebIcgTrgfWGXwyHwZs49L3XcRi8ikOAwt84PIr1wWSCbHv-yXkHavGMFR9JO9-_hw-PN1cP4dd__X79-EAqlIw09IwaQGoSqrclfUPATuLZsHs472ylE9Jid-NrexIMzDfF-QZnqZWwcj5doeBXpKHWqpM2kMKHyGRPo_c38bRXxxuZdyooK8FhHSNvrWZPze6DydQ7j_IXqoQiX6fnUv-G3gThgzoHBBo568dUSFjYYku0Bg2ihcqPmKKjgY4puvK8bYwW4I0Zui2bmLugIS4WDpnCP5cpinPbojhkjDr0wNdfYhp_v2mKD9pmxyE-bizPNRlstxphq1IyZdbO8IuL46qocPFcL8Dx3u73dIoAk7GxVAeGbZAM9aCfUE13VIYaGr_72mZ4NDB1_Gi6w7EoGQBAmASLO4hwYY6lClS0hLwL8sSAkyJmRM-p3VMwXa-bW1B6lpGIEYaCUQ3SplyCVo3Mas5T7YjSgVQOSX3OFHtZAL31wZhWaoOsOIT1_S3MPdIOMBvPeZbARIsw5SuWhLxI2MooFK9nYkUy-BSI3soidYrWJhPikIF9GJkbtL-Hv8DgOwuED3ysfcgRpuxew3fYty2pMgp262geiivcEwRTstZ8HcxCxaWAoDU2OFaDk1_YWHs_baj6a6h7k_3N012b-6aCDkavZYx6OYK2xZsZ3ELQa3b4Osun1m7dRVNn-fPaKqm2VHfkTqg1w-tcpJ0NBy9igU0oIk0V0wY9SZbTLBNxGMICalaE9lVYTznZvL6ZV8VzqEUIVRS8MLJMj6j19xvjqJh7fFweDgcu_kyOWgrRJJHba6H9S4I3dGc7WWJmRXkiql-m8NFwiBEpeLWo-X-DaPM5A0jba6dHs1iaSLpUZY3j9jot3J0f0n87yAkOMjYrQXe3LpMJsJ6YP32p5AocIWJ6yVjRuguFRN74iwHRezGOA9_nTW3OOSQQT3FswVa6xAw_x79me_4NEVkSsiJ5t9beRAWq7kCvbYWORz5W5YPhKxuFptwfXnvo2SD9oZCBa5eX-4iHdhBtwNBq106qG9fMpiBZIiwJ_k8LRRZOCOVYVfCfFcOSjRcNk4Y5ZIbWNZuAL4mDwBFsqGp2G5Gng4EqggowZGbNZIACgt8U5n-3GzL49t6IshU3XqzUsAgJ3KOcNKrS133UgHGb-WY9acbCgm4UELMrdXRQfOmK4_HAIOe1LeZfEjknAud13Axf7DUej5sNTk6FyZ5NCG8UmA2iHVR0N1zYimvzB4HZT2EmuhbC7rhju5qLKkuM6utt-LrMgBUzT5y2664V2j17O8EkFvgP-UsZ9nE9DqZ7uOZ5mfGYa7KzjbS1Lw2AoFm9t1LzCL_kZtqURzURpxnl7NtIaphryE0GA7OBGio2Q7Oa3qE5QhDOAaYZk6_LRjXNiDl6YbZa8AbZimj8jKkG2u4bKTBjw5oWHQZ3hGxWt9hXVYnnl1jSOfXQ0sMbew4ilQK8ozAJOEcnSinoNrH00BwEjUHGLjFlAsOTMLh8ZgxVVh_VadPn_9gxqFboxuU2R1RIrsyb5lTFCVfnGNqXh7urr3fk6unp6uY38vTbHbl_fHh4_PH5H5_I_eeHu6_k6dE0X3_7RP64-_L4x1OvOanxRULwFzGaMyH2pBGoXDWFDAQLEXOz7SSrgqhY8lK3HSBYmnNT8JbqluR75N86hePHfsBoPz5tuJofq_5zGaE5BdgeLQTONicOu5N94kpbkOMBP8wcKIFCnuZal3gDY-Ga4aGXGXSsoj74CB6Syuj6n3dwE7AkmIzT1He9yA2maezGw8gdjr1B7E286bS_Jd6X_lek_pnM6cL8v6SNIeMFB6-KWEzRu7pvUz6rMMiKSpO5WKLb4QBwSW1SAgQZKEvhEcKXZD8rjp03nT6TpYnGtMS9TUQOoCpnkE6yEuOJ2fm6SC79ZOpP6QWt9FzISyvcRSWzy109dFSAp4iaw0T1mTE8OqRUxfDs2NB3R_7F_HKYsknAYnc4mgbjKPGjaToax_4gHo19FvvDi4xGLFOXEG0h2RZsSQwJk39vL07ngF96rue5A3c8cN3A9fqDgZuMPRb5wSShUy_tBS7LAR19pNMXcnYhLw3JqJopeIn74mrzEhM2FDbMMAwcaq4z83BjkD68JWcI3ujLWwH8wkh1aUT6D4Pms48>53063</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Clang] fatal error: error in backend: Function addresses with offsets are not supported
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
playXE
</td>
</tr>
</table>
<pre>
<details>
<summary>Full compiler output:</summary>
```c
clang-12 --target=wasm32-unknown --no-standard-libraries -Wl,--export-all -Wl file.c -O2 -v -std=c99
Ubuntu clang version 12.0.0-3ubuntu1~20.04.4
Target: wasm32-unknown
Thread model: posix
InstalledDir: /usr/bin
"/usr/lib/llvm-12/bin/clang" -cc1 -triple wasm32-unknown -emit-obj --mrelax-relocations -disable-free -disable-llvm-verifier -discard-value-names -main-file-name file.c -mrelocation-model static -mframe-pointer=none -fno-rounding-math -mconstructor-aliases -target-cpu generic -fvisibility hidden -debugger-tuning=gdb -v -resource-dir /usr/lib/llvm-12/lib/clang/12.0.0 -internal-isystem /usr/lib/llvm-12/lib/clang/12.0.0/include -internal-isystem /include -O2 -Wl -std=c99 -fdebug-compilation-dir /home/aprokurov/projects/v -ferror-limit 19 -fgnuc-version=4.2.1 -fcolor-diagnostics -vectorize-loops -vectorize-slp -o /tmp/file-42bf93.o -x c file.c
warning: unknown warning option '-Wl' [-Wunknown-warning-option]
clang -cc1 version 12.0.0 based upon LLVM 12.0.0 default target x86_64-pc-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/llvm-12/lib/clang/12.0.0/include
End of search list.
file.c:351:7: warning: incompatible redeclaration of library function 'memcpy' [-Wincompatible-library-redeclaration]
void *memcpy(void *dest, void *src, size_t n);
^
file.c:351:7: note: 'memcpy' is a builtin with type 'void *(void *, const void *, unsigned long)'
file.c:353:7: warning: incompatible redeclaration of library function 'memmove' [-Wincompatible-library-redeclaration]
void *memmove(void *dest, void *src, size_t n);
^
file.c:353:7: note: 'memmove' is a builtin with type 'void *(void *, const void *, unsigned long)'
file.c:452:74: warning: passing 'const uint8_t *' (aka 'const unsigned char *') to parameter of type 'void *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
static inline uint64_t _wyr8(const uint8_t *p) { uint64_t v; memcpy(&v, p, 8); return __builtin_bswap64(v);}
^
file.c:351:32: note: passing argument to parameter 'src' here
void *memcpy(void *dest, void *src, size_t n);
^
file.c:453:74: warning: passing 'const uint8_t *' (aka 'const unsigned char *') to parameter of type 'void *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
static inline uint64_t _wyr4(const uint8_t *p) { uint32_t v; memcpy(&v, p, 4); return __builtin_bswap32(v);}
^
file.c:351:32: note: passing argument to parameter 'src' here
void *memcpy(void *dest, void *src, size_t n);
^
file.c:1882:23: warning: incompatible redeclaration of library function 'strlen' [-Wincompatible-library-redeclaration]
VV_LOCAL_SYMBOL usize strlen(void* _s);
^
file.c:1882:23: note: 'strlen' is a builtin with type 'unsigned long (const char *)'
file.c:1889:21: warning: incompatible redeclaration of library function 'memcmp' [-Wincompatible-library-redeclaration]
VV_LOCAL_SYMBOL int memcmp(void* a, void* b, usize n);
^
file.c:1889:21: note: 'memcmp' is a builtin with type 'int (const void *, const void *, unsigned long)'
file.c:1892:21: warning: incompatible redeclaration of library function 'vsprintf' [-Wincompatible-library-redeclaration]
VV_LOCAL_SYMBOL int vsprintf(char* str, char* format, byte* ap);
^
file.c:1892:21: note: 'vsprintf' is a builtin with type 'int (char *, const char *, __builtin_va_list)'
file.c:1893:21: warning: incompatible redeclaration of library function 'vsnprintf' [-Wincompatible-library-redeclaration]
VV_LOCAL_SYMBOL int vsnprintf(char* str, usize size, char* format, byte* ap);
^
file.c:1893:21: note: 'vsnprintf' is a builtin with type 'int (char *, unsigned long, const char *, __builtin_va_list)'
file.c:2051:4: warning: expression result unused [-Wunused-value]
(*(int*)_t1.data);
^~~~~~~~~~~~~~~
file.c:6152:69: warning: operator '>>' has lower precedence than '-'; '-' will be evaluated first [-Wshift-op-parentheses]
voidptr* c_ = &t->child[v_fixed_index(((k >> sizeof(usize) * 8 - 1) & 1), 2)];
~~ ~~~~~~~~~~~~~~~~~~^~~
file.c:6152:69: note: place parentheses around the '-' expression to silence this warning
voidptr* c_ = &t->child[v_fixed_index(((k >> sizeof(usize) * 8 - 1) & 1), 2)];
^
( )
file.c:6332:46: warning: incompatible pointer to integer conversion passing 'voidptr' (aka 'void *') to parameter of type 'usize' (aka 'unsigned long') [-Wint-conversion]
usize offset = dlmalloc__align_offset_usize(dlmalloc__Chunk_to_mem(ptr));
^~~~~~~~~~~~~~~~~~~~~~~~~~~
file.c:5510:58: note: passing argument to parameter 'addr' here
VV_LOCAL_SYMBOL usize dlmalloc__align_offset_usize(usize addr) {
^
file.c:6559:41: warning: incompatible pointer to integer conversion passing 'voidptr' (aka 'void *') to parameter of type 'usize' (aka 'unsigned long') [-Wint-conversion]
offset = dlmalloc__align_offset_usize(dlmalloc__Chunk_to_mem((((dlmalloc__Chunk*)(rawsp)))));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
file.c:5510:58: note: passing argument to parameter 'addr' here
VV_LOCAL_SYMBOL usize dlmalloc__align_offset_usize(usize addr) {
^
file.c:6579:20: warning: ordered comparison between pointer and integer ('usize' (aka 'unsigned long') and 'voidptr' (aka 'void *'))
if (nextp->head < old_end) {
~~~~~~~~~~~ ^ ~~~~~~~
file.c:7634:15: warning: passing 'char [2]' to parameter of type 'byte *' (aka 'unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
bare_eprint("\n", 1U);
^~~~
file.c:1896:40: note: passing argument to parameter 'buf' here
VV_LOCAL_SYMBOL void bare_eprint(byte* buf, u64 len);
^
file.c:7714:14: warning: passing 'char [2]' to parameter of type 'byte *' (aka 'unsigned char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
bare_print("\n", 1U);
^~~~
file.c:1895:23: note: passing argument to parameter 'buf' here
void bare_print(byte* buf, u64 len);
^
file.c:12642:2: warning: function 'exit' declared 'noreturn' should not return [-Winvalid-noreturn]
return __exit(code);
^
file.c:12749:2: warning: implicit declaration of function 'signal' is invalid in C99 [-Wimplicit-function-declaration]
signal(11, v_segmentation_fault_handler);
^
fatal error: error in backend: Function addresses with offsets not supported
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
Ubuntu clang version 12.0.0-3ubuntu1~20.04.4
Target: wasm32-unknown
Thread model: posix
InstalledDir: /usr/bin
clang: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /tmp/file-3c34ea.c
clang: note: diagnostic msg: /tmp/file-3c34ea.sh
clang: note: diagnostic msg:
********************
```
</details>
Gist with all the files: https://gist.github.com/playXE/4ed487ff302b049fc0c5b05721c28299.
P.S: I haven't run cvise because I haven't figured out how to run it there, if it is required to run it I would appreciate some help in this
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWllv4zgS_jXOCyFDl6-HPOTsaSCzaUynu3efBEqibE4kUU1SPvbXbxUpybLjHE48i130CIIs8SjW8bGqSDMW6eZ8EFylTFOeq0FwQwbu9cC9gDJVFwWVGyi7rfOcJKKoeM4kEbWuaj0IsM3Av902a3r2n2PX3on9TnJazh3PJ46jqZwzoHK9oqoIfKcuH0uxKqGmFI7StEypTJ2cx5JKzhRxfuQD_8px2LoSUjsUOIIikgFLw4Q490BzSaBjCiST2cyO9y2uS10TMyxZMqm4KInnD92h6wS1qfQGkxsfvsNhaPs8NIxdkF3OmtqFZDQlhUhZjm0qofjaVn0uge08Z-k1l1gFuqmVhGfMm85Q5HelIBo-82UBCmla-beGVWhGnCTxiKMlr3JG9nXECq4dEf8J2ioky-nagadIqAb5QFUpVzTOmZNJxrZfZihQAs84WBGLE1TxkuY1c0paoJILyksHdWoKOu0WW_KOEZ2AqJpjTSahoVMJXmoGYl-XooQxMzCiFHWZcrB3QfUCWibAm5Z1ooUE83GqcEALAyepajJnJTAHNLMlVzzmOdcbsuBpykDilMX1fM6ko-sSaMJA8zQ2JpdMiVomDASS5Fnt2u9Gu7cWAsQxTJc0d7jaKM2K4_rDCy-TvE7ZYUpdJYITsLpFJ8hoBHLspLKKbfhfiILBD62keKylWMI7vP7JEq3gFQTOmJSgwpwDCIiHtOZlnTgNvGGAcOgPATtZInJol3I6L4UCa4G6lwzVz_8NaBCi2ilQeUUcgRzoooKnQUHox9ksGArirEnSwMFieUWlNcQFaWHZFBFRoTxAaWIm7YQMRpfOj6aV07RybKvB6LrnGizqdycqiQEpKakrKLm7-_57W5yyjNa5JhZBZD0dR-PQqRJQTFmvHdCJJcxBeolsITLXHIxTagK6NoJvminZmAo_rOPyg9Z6UDYcDnFKKkZlskDoS63IgkmGTvBJ--AK24MnfaH9e4Fme9-UKRFZSz8HmYa2ojFQcBGMPHhOrBfrDAVEAG-ANnAHRLKUwTDSgA_JWV-7IVldJq0BC1Yk1aazYZ9A45s3zg6hzp5LwVOgcNFSmLYFKVMaPDlpv5VM8FMBBiNNwAfOBsFloyVzDUY3z0tXCs2ss-3xyhWhJK55rjmgkoP30ZsKLTlpB-3xg4Mb10T6JXWpADiAu1ygIWbQ9wkTwalUXIgl-6COLYnTKjk4rOSW2_-KlsORj1yEe2quqFI4p6GDpVqDA56CaIYwaNKf0kfaq24HShZUNo1gPKIFkMIIpjGxyQ5IMCFNoFTkZw1hC4OnOmCpJgI6SEG1wVU52z6d1UhzNSGUl-CwmBFgHIIE0Wojp8D_E7kqZHgwudw2XYIRSTfBBv54iUqt8DG1JgYI6lqWJIoaQ0WxWtFqHKJpGhRM9vg61fXcvA38PqZaS4IXrwt0zTsmAf0b6E6s-zyxZzmC9dDOhl8Mh-GrOAz8l3EYvohDgMLfODyKdW86Rbb94MNxB3LxnJXvCTvfv0d391cXd9HXf_1-eX9HapSMtPSMGkBqEqnXJX1FwF7g2bL7fNzZCSekw-52rh0IMDDeDMfzTpIrYeb8cYXCvCIttU6dtIUUfsQmehq9v4qngzreyryXQVkJntcx8tZp9qPR3ZvO_NMof6kqSPJ1dir1b-lNET6oc0CgkbP5zISEhS2WxBvQIFqoeo8pehromaIvz-vG6ADemqFfsvW5SxrhYuE5UwSnMkV5aluUzxmjcT3w-EtMExw2TflO2-xNiPcby3dNBNvPRti6kkyZtTP84uK4LmtcPDcLcHy3-z29JMBEbEzVgWHrJCPtDVOq6Z7KUEOTN9-7DI89k8ePZ3sci4oBAIQJsLiDCDfGWKpARSuIuyBPAjgpE0b0gto9BdP0sn0Fpec5iRlhKBjVIG3GJWjVyKwWPNOOqBwI5RDUF0yxpwnQaxf6tEobZCURrO-vYeyxdoDZZMHzFAZaRhlfszTiZcrWRqF4PxIrksGnQPTWFqkztDaZEod49mNsXtD-Pv4Cg29MEN5xWfuQI0zZv0dvsG-XUuUU7NbTPCRXuCcIpmSd-XqYhYxLAUFrbJhYLU5-YWMdvDpX9ddQ96eHi2f7Ng9MBh2OX4oYzXIEbYsvc3gFp9fu8PWWT53d-oum3vLnpVVSY6l-zz1Xa7o3sUg7Ww6e-AIbUESWKaYNetK8oHkukiiCBdS8jGxV1Aw53VZfLeryMdIigiwKKowssyNy_cPGOMrnHu-XRyPPxZ_pUUshmqZydy10eEnwiu5sI0vMrCg_iOqnIXw8GqFHCl9Mav7fINpeJwBpd--1aBdLU0lXqmpw3N0fc3enh_TfE-QDE2RiVoLufl4mU2A9NX_6UskVTISY6RVjZTddKATydr4YEL0V49jxbbOpiznPCcQz7Fuyta4wwi_wr9lBcEVEnkasTN-stVdRgap7ptWuQifjALNyb_TCRqFJ90eXPs5skP45l4Frl6f7iM_tIFqHodW-nVTfr5lNQbJCWBL8nxaSLBwQ0rG65D9rhikbL1smDXPIDG1yNgEPiZ1gIlhX1e42Ik_POqoYMsCImTWTAQoIflWa_92uiPftrR5lx288WalhEhK6R03SuM5enqMGjLvMt-tJ0xcWdOOQmF2po53i06k4mXgGOS9tMf-SyPkgcF7GzejJXuPxuNni5KMwObAJ4Y9Ds0G0h4r-hgtbc23-IDD7Kcx411LYHXcsVwtR56lRfbMN36QZsGLmqdM13bdCt2dvB5gmAv8hfyrDIa4n4ewA17yocp5wTfa2kXb2pQEQNG_2Vhoe4Zdczdr0qCHitL2cQxtJLXMtuannmQ3USLE5mtW0jswRgmgBMM2ZfFk2qmlOzNELs9WCL8hWTJNHDDVQdttKgREb1rQ4YXBHyEZ1i31VV3h-iaW9Uw8dPXyx5yAyKWB2lCYAFziJMgq6TS09NAdBY5CJS0yawPAkDC6fGUOVNUd1uvD5P3YMqhO6nXLbIyqkUKamPVXxgbt3DO3L3c3F1xty8fBwcfUbefjthtze393d__j8j0_k9vPdzVfycG-KL799In_cfLn_42HQntT4IsH5iwTNmRJ70ghUrtpEBpyFSLjZdpJ1SVQieaW7BuAszbkpqKW6I_kW-XdO4QRJEDI6TD7WXS2OVf-pjNCeAuyOFgJn2xOH_cE-caUtyPGAH0YOlEAhTwutK3yBvnDP8dDLHBrW8RDmCB6SyunmnzfwErI0nE6yLHD92A1nWeImo9gdTXwv8af-bDbcEe_L8CtS_0wWdGn-X9LGkMmSw6yKWUJxdvVrMz6v0cmKWpOFWOG0ww4wJbUJCeBkIC2FT3Bfkv2sOTbeNvpMVsYb0wr3NhE5gKqCQTjJK_QnZufrLD0P0lkwo2ea65ydg9-7MlYbXZMTOCLE5Y4zOqtlfr6v4J5u8XhSe0qpOYyGZ5KUqhkeShsF7jg4W5wHkyDOxtPRbEbZZBr4E8-buhM3yFgaBzOWneU0ZrlCcSCKl2xFDAkT2K_P-Lnv-r7ruRPPdUPXH3qem058FgfhNKUzPxuELisANEPkYyjk_EyeG5bieq6gErfL1bYS4zjkO0Z7SJ_WeiHkucXJmRn53HD-H8RwncI">