tsrun 0.1.23

A TypeScript interpreter designed for embedding in applications
Documentation
ELF>�@@��@8@)(@@@@@  @ @@@��  @ @`*`*�M�]@�]@���M�]@�]@PP@P@$$JJ@J@@@@J@J@@J@  �M�]@�]@S�tdJJ@J@@@P�tdPGPG@PG@llQ�tdR�td�M�]@�]@88GNUK+���SݢZ,��ԠX�~��H��H�U\H��t��H����5Z\�%\\@�%Z\h������%R\h������%J\h������%B\h�����%:\h�����%2\h�����%*\h�����%"\h�p����%\h�`����%\h	�P����%
\h
�@����%\h�0����%�[h� ����%�[h
�����%�[h�����%�[h������%�[h������%�[h������%�[h������%�[h�����%�[h�����%�[h�����%�[h�����%�[h�p����%�[h�`����%�[h�P����%�[h�@����%�[h�0����%z[h� ����%r[h�����%j[h�����%b[h������%Z[h ������%R[h!������%J[h"������%B[h#�����%:[h$�����%2[h%�����%*[h&�����%"[h'�p���S��2@H��@�������2@�������2@������(3@�������,@�����X3@������,@������3@������3@�����L���H����1�H�Ǿ @H�������H�t$H�|$�D$���JH�t$H���]������V�t$�H4@1������
�K����x4@�!����-@�����x4@�
���� -@�<-@H���;�R-@�l-@H���)�~-@��-@H�����-@��4@H�����4@��4@H�����5@�@5@H�����h5@��-@H������-@��-@H����
�����x4@�i����.@�_����x4@�U�����5@�).@H�����5@�>.@H���q��5@�V.@H���_�l.@�6@H���M�H6@��.@H���;�
�����x4@�������.@������x4@�������.@��.@H�����.@��.@H�����/@�,/@H������6@�@/@H������6@�Z/@H�����6@��6@H���� 7@�k/@H�����/@�H7@H�����/@�x7@H���q��7@��/@H���_�
�5����x4@������/@�����x4@�������/@��/@H���%�0@�)0@H�����7@�8@H����88@�p8@H�����D0@�b0@H�����x0@��0@H������0@��0@H�����0@��8@H�����8@��0@H�����8@�9@H����09@�`9@H���q��9@��9@H���_��9@�(:@H���M�
1@�P:@H���;�
�����x4@������'1@������x4@������x:@�P;@H����p;@�C1@H�����X<@�T1@H�����
�����x4@�����j1@�����x4@�u����P=@��=@H�����=@�>@H����8>@��>@H�����>@�|1@H���m�
�C����x4@�����?@�����x4@�����(?@������`?@�������?@��@@H�����@@��1@H���
�HA@�������A@������A@��1@H�����
�����x4@������1@�����x4@�����B@��1@H�����B@��1@H�����C@�2@H�����C@�2@H���w�(D@�`D@H���e��D@�2@H���SH���K�����E@�����:2@�����1�H��@[�H�=U� 4@1�����H��������غ���,@H�
�T�R�������1�I��^H��H���PTE1�1�H��@@�;S�f.����f.���Ha@H=Ha@t�H��t	�Ha@��f��ff.�@�Ha@H��Ha@H��H��?H��H�H��t�H��t�Ha@���ff.�@���=5TuUH���z����#T]Ð�ff.�@���f.�U1�H���K,@SH��H��X����H�޿�,@1��	���1�H��H���|�����t\H��H���]����4$��t ��tY��,@1������H���L���H��X[]�H�|$H��tG�f�����tJ�k,@�8���H�|$������H��XH�ֿX,@1�[]����H�t$@��,@1��v���렿s,@������H�|$�N�����u9H�|$�����H�|$��t5�b����E,@��,@���@,@HE�1��&����y����s,@�����j����m���H�|$��t�������,@�������C�������H�t$��tH��������,@H��1����������H������H��H��tH�ƿ�,@1�����H��������������,@���������fDSI��H����H�H�AH��HD)RH��HDR��v)��u+H�ٿ@2@���e���H��[����@��HC�H��uH�޿
�O���H��[�v���fDH�پL��� �����fDH��QH��Q�f.�f.�f.�f.�f.�fDH��������H��t+H�>SH��H��t�Z���H�{H��t�l���H��[�����ff.�@AWM��AVI��AUI��ATM��USH��H��H�>1��i���H����H��H�;�sL��L��I��E1�L��H������ZY����D��x`H������H��I�������I�UI�$I�UI�T$����I�D$I�D$H��������H��[]A\A]A^A_�fDH��D$�����D$�����dH�%���H����������H�����H�T$PH�H�������[]A\A]A^A_����I�L$H��H��H�������I�D$H����H�1�ff.�ff.�ff.�D��fv��AoL�fH~�H���tfo�H����H9�u������H�������1�������fo�4dH�%d%���fo�4d%���fo�4d% ���fo�4d%0��������H���f����Y2@�����ff.��AWI��AVI��UL��SH��H��H�>1��P���H����H��H�;�sL��I��E1�1�L��H�D$�����H�|$�������X�Z��y>1����t7���tRdH�%���H�����H��H�L$����H�L$H�M�����H��[]A^A_�DH�EY2@��fDfo�3dH�%d%���H���fox3d%���fow3d% ���fov3d%0���H�E����@AVH��I��ATUSH���H����
1۾��t&�A�<�����$� F@����JH����uې��H�L$L�D$E1�H����������H��H����H�T$�H�������1�����I��H���4�5M���F�����H���N�T$H�(L�`�X�PH���[]A\A^�@dH�%�g2@�1�H������/���H�����1�I�H���[]A\A^�DfoH2dH�%d%���fo>2d%���fo=2d% ���d�%/���der�fD�JH���� ��������������JH���������������D�JH������e�������fD������H�������H�������.H������������H�������H�������L�������I�Y2@1�������1۾����@�|$��H�t$�-���H�L$L�D$dH�%��E@�H�����1�H������I�1�����DH���@BH��t��@B��D��~�0��J�0H�@ @�~�0�0H�@(@���H��H���/lib64/ld-linux-x86-64.so.2++,)�9���_#��EU- h5m�*?k
���(����p_���;QS���~u|ha@�`a@__gmon_start__tsrun_set_regexp_providertsrun_freetsrun_is_stringtsrun_is_numbertsrun_runtsrun_get_stringtsrun_is_nulltsrun_free_stringtsrun_get_numbertsrun_json_stringifytsrun_newtsrun_get_booltsrun_is_booleantsrun_step_result_freetsrun_is_undefinedtsrun_set_consoletsrun_value_freetsrun_preparepcre2_set_match_limit_8pcre2_match_data_free_8pcre2_match_context_free_8pcre2_get_ovector_count_8pcre2_compile_8pcre2_get_error_message_8pcre2_match_data_create_from_pattern_8pcre2_match_context_create_8pcre2_pattern_info_8pcre2_get_ovector_pointer_8pcre2_code_free_8pcre2_match_8snprintfputsputcharfflushstdoutmalloc__libc_start_mainstderrfprintffputcfwritelibtsrun.solibm.so.6libpcre2-8.so.0libc.so.6GLIBC_2.34GLIBC_2.2.5�����ui	��_@
�_@'`a@,ha@+`@`@`@`@ `@(`@0`@8`@@`@	H`@P`@X`@
``@h`@p`@x`@�`@�`@�`@�`@�`@�`@�`@�`@�`@�`@�`@�`@�`@�`@�`@ �`@!a@"a@#a@$a@% a@&(a@(0a@)8a@*truefalse
--- %s ---
Prepare error: %s
=> null=> undefined=> %s
=> %g
=> "%s"
=> [object]Error: %s
Unexpected status: %d
Features:  - UTF-8 enabled by defaultFailed to create context
1. Basic Pattern Matching/hello/.test('hello world')test() - simple match/xyz/.test('hello world')test() - no match/world/.exec('hello world')exec() - returns match array/xyz/.exec('hello world')RegExp constructor/\d+/.test('abc123def')Pattern with special chars2. Capture GroupsSingle capture groupMultiple capture groupsNested capture groups/(a)(b)?(c)/.exec('ac')Accessing specific capture3. Regex Flags/hello/.test('HELLO')Case sensitive (default)/hello/i.test('HELLO')Case insensitive (i flag)/^world/.test('hello\nworld')^ without multiline^ with multiline (m flag)$ with multiline. with dotAll (s flag)'abcabc'.match(/a/)'abcabc'.match(/a/g)Check flag properties4. String Methods with RegExp'hello world'.match(/o/)match() - find pattern'hello world'.match(/o/g)match() - global finds all'hello world'.search(/world/)search() - find index'hello world'.search(/xyz/)search() - not found'a1b2c3'.split(/\d/)split() - by pattern'a,b;c d'.split(/[,;\s]/)replace() - first match only'a1b2c3'.replace(/\d/g, 'X')5. Global Iteration PatternExtract all URLsParse key=value pairs6. Error HandlingUnsupported sticky flagAnother backtracking bombNormal complex pattern works8. Practical ExamplesEmail validationParse ISO dateSlugify textExtract hashtagsValidate password strengthDone!--- Console cleared ---
out of memoryunknown regex flag: %ctsrun C API - RegExp Example with PCRE2 Provider================================================
This example demonstrates using a custom PCRE2-basedRegExp provider with the tsrun interpreter.
  - PCRE2 regex engine with full pattern support  - Configurable match limits for backtracking protection  - Supports flags: g (global), i (ignoreCase), m (multiline), s (dotAll)
Failed to set regexp provider: %s
PCRE2 provider registered with match_limit=%u
========================================exec() - no match returns null/world/.exec('hello world').indexexec() result has index property/world/.exec('hello world').inputexec() result has input propertynew RegExp('hello').test('hello world')/hello (\w+)/.exec('hello world')/(\w+)@(\w+)\.(\w+)/.exec('user@example.com')/((\d+)-(\d+))-(\d+)/.exec('123-456-7890')Optional capture group (non-participating)const m = /(\w+)@(\w+)/.exec('user@host'); m[1] + ' at ' + m[2]/^world/m.test('hello\nworld')/hello$/m.test('hello\nworld')/hello.world/.test('hello\nworld'). without dotAll (doesn't match newline)/hello.world/s.test('hello\nworld')match() without global - first match onlymatch() with global - all matchesconst r = /test/gims; [r.global, r.ignoreCase, r.multiline, r.dotAll]'hello world'.match(/(\w+) (\w+)/)match() - with captures (non-global)[...'a1b2c3'.matchAll(/(\w)(\d)/g)].map(m => m[0])matchAll() - iterate all matches with capturessplit() - by pattern with limit'hello hello'.replace(/hello/, 'hi')'hello hello'.replace(/hello/g, 'hi')replace() - global replaces all'John Smith'.replace(/(\w+) (\w+)/, '$2, $1')replace() - with capture reference'hello world'.replace(/\w+/g, s => s.toUpperCase())replace() - with callback function'font-size'.replace(/-([a-z])/g, (_, c) => c.toUpperCase())replace() - callback with capturesreplaceAll() - requires global flagconst text = 'a1b23c456';
const pattern = /(\d+)/g;
const results: string[] = [];
let match: RegExpExecArray | null;
while ((match = pattern.exec(text)) !== null) {
    results.push(match[0]);
}
results.join(', ')Classic while loop with exec()const html = '<a href="http://a.com">A</a> <a href="http://b.com">B</a>';
const urls: string[] = [];
const re = /href="([^"]+)"/g;
let m: RegExpExecArray | null;
while ((m = re.exec(html)) !== null) {
    urls.push(m[1]);
}
urlsconst params = 'name=John&age=30&city=NYC';
const pairs: { key: string; value: string }[] = [];
const re = /(\w+)=(\w+)/g;
let m: RegExpExecArray | null;
while ((m = re.exec(params)) !== null) {
    pairs.push({ key: m[1], value: m[2] });
}
pairstry {
    new RegExp('(abc');
} catch (e) {
    'Error: ' + e.message;
}Invalid pattern - unmatched parenthesistry {
    new RegExp('\\c');
} catch (e) {
    'Error: ' + e.message;
}Invalid pattern - invalid escapetry {
    new RegExp('a{3,1}');
} catch (e) {
    'Error: ' + e.message;
}Invalid pattern - bad quantifiertry {
    new RegExp('abc', 'y');
} catch (e) {
    'Error: ' + e.message;
}7. Catastrophic Backtracking Protection
The PCRE2 provider has a match limit to preventcatastrophic backtracking from hanging the program.try {
    // Pattern (a+)+ on 'aaaaaaaaaaaaaaaaaaaaaaaaaab'
    // causes exponential backtracking
    const evil = /(a+)+$/.test('aaaaaaaaaaaaaaaaaaaaaaaaaab');
    'Should not reach here: ' + evil;
} catch (e) {
    'Protected: ' + e.message;
}Catastrophic pattern detectiontry {
    // Alternation with overlapping patterns
    /^(a|aa)+$/.test('aaaaaaaaaaaaaaaaaaaaab');
} catch (e) {
    'Protected: ' + e.message;
}
Note: Normal patterns work fine, only pathologicalpatterns that would otherwise hang are caught./^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test('user@example.com')const emailRe = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
[
    emailRe.test('user@example.com'),
    emailRe.test('invalid-email'),
    emailRe.test('user@sub.domain.org')
]const dateStr = '2024-03-15T10:30:00Z';
const m = dateStr.match(/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})/);
({ year: m[1], month: m[2], day: m[3], hour: m[4], min: m[5], sec: m[6] })'Hello World! This is a TEST'.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '')'Check out #typescript and #rust for #programming'.match(/#\w+/g)'4111-1111-1111-1111'.replace(/\d(?=.{4,}$)/g, '*')Mask credit card (keep last 4 digits)function checkPassword(pw: string): string {
    if (pw.length < 8) return 'Too short';
    if (!/[a-z]/.test(pw)) return 'Need lowercase';
    if (!/[A-Z]/.test(pw)) return 'Need uppercase';
    if (!/\d/.test(pw)) return 'Need digit';
    return 'Strong';
}
[checkPassword('weak'), checkPassword('Str0ngPass')]
========================================regex compile error at offset %zu: %s@@p@�@p@p@p@ @p@p@p@p@p@@p@�@p@p@p@�@regex match limit exceeded (possible catastrophic backtracking)sticky flag (y) is not supported by PCRE2 provid�@p@P@@;l@�������0����`���� ��������8����`����t���� ���@���H�����zRx�����&D0����$D�����FJw�?;*3$"4l@����A�K�GpU
AAAm
KAE$�ؽ��@A�IP�
AA$������A�N
I]
K�H���D���1I�_�l$h���B�E�E �E(�D0�A8�GPWXF`XXAP\
8A0A(B BBBGH
8F0A(B BBBID����B�E�D �D(�G@WHFPeHF@F
(A ABBFL������B�H�A �A(�G��
(A ABBEt
(A ABBF,0���U0GNU���	�GNU`
@0
@����t@
x@�]@�]@���o  @�$@H @
��_@�p(@(@`	���o�'@���o���o�'@�]@�@�@�@�@�@�@@@&@6@F@V@f@v@�@�@�@�@�@�@�@�@@@&@6@F@V@f@v@�@�@�@�@�@�@�@�@@@@BGCC: (GNU) 15.2.1 20251111 (Red Hat 15.2.1-4)GCC: (GNU) 15.2.1 20251211 (Red Hat 15.2.1-5)AV:4p1294RV:running gcc 15.2.1 20251111BV:annobin gcc 15.2.1 20251111GW:0x7d60562 ../sysdeps/x86/abi-note.cSP:3SC:1CF:8 ../sysdeps/x86/abi-note.cFL:0 ../sysdeps/x86/abi-note.cGA:1PI:4SE:0iS:0GW:0x7d60562 init.cCF:8 init.cFL:0 init.cGW:0x7d60562 static-reloc.cSP:0 static-reloc.cCF:8 static-reloc.cFL:0 static-reloc.cGA$3a1�@�@GA$3a1�@�@GA$3a1t@�@GA$3a1x@�@GA$3a1�@f
@GA$3a1u@u@GA$3a1u@u@GA$3a1�@�@GA$3a1�@�@<p
@�@@@,(  @�,�$@u$ (�	 2�6��)tOv�*int*=*$-6�u�u�}�+��2G�4b7	�y8	�?9	��:	� ;	�(�<	�0�=	�8�>	�@bA	�HB	�P^C	�XKE``Geh]Ibp,�Jb�`Ljw�M�x�PM��QT�9Rj��Tz��\
���^���_��W`e�qa	D��b���cb��e����-�,U[��z 6S���e�� 6G.�
��%Ti&|�Lu<�<�
�����,H!ok-
Ht.#n�/("=5�	=		�	p	�	�n<[�A����#*D"=Z�	e	�	'	�	�	��a�d,ee#-f#3g#�h�kX!idl�mTn8Hq��r�Ou/x�ky*_|� }*(�~�0.*8t�#@,Xu�d�#})o~�#end��� �qo�*#end�*��q��*)�5>���D�D##���b�DD#*H���b#DD#**#v`�49IDD��UZoDq*0��3�����R��Y�(��I ��D(��o�	#��	'��	(�����$M%$Z6�YY�R�
x�
#hh
��H�h
����hY
��H�h
�H�h
,�H�h
q�H�h
��Hh�$�
;�
OD�##
kb\#%I�m�~
eb��#%��
O����
�	5����;+��#*D
��
O	��D/���0��b@@@��1ctx��&�����&����@2��OL�@�@���V97@ �	U:@ �	U	x4@@ �	U	-@#@ 
U	x4@5@bM
UsT	<-@Q	 -@G@b
UsT	l-@Q	R-@Y@b�
UsT	�-@Q	~-@k@b�
UsT	�4@Q	�-@}@bUsT	�4@Q	�4@�@bGUsT	@5@Q	5@�@byUsT	�-@Q	h5@�@bUsT	�-@Q	�-@6�@�@��D
@IG�@ �U:�@ U	x4@�@ .U	.@�@ MU	x4@�@bUsT	).@Q	�5@�@b�UsT	>.@Q	�5@@b�UsT	V.@Q	�5@#@b
UsT	6@Q	l.@5@bUsT	�.@Q	H6@ 5@5@���*YW?@ �
U:I@ �
U	x4@S@ �
U	�.@]@ �
U	x4@o@bUsT	�.@Q	�.@�@bMUsT	�.@Q	�.@�@bUsT	,/@Q	/@�@b�UsT	@/@Q	�6@�@b�UsT	Z/@Q	�6@�@bUsT	�6@Q	�6@�@bGUsT	k/@Q	 7@�@byUsT	H7@Q	�/@�@b�UsT	x7@Q	�/@	@bUsT	�/@Q	�7@
	@	@$�8ig	@ "U:%	@ AU	x4@/	@ `U	�/@9	@ U	x4@K	@b�UsT	�/@Q	�/@]	@b�UsT	)0@Q	0@o	@bUsT	8@Q	�7@�	@bGUsT	p8@Q	88@�	@byUsT	b0@Q	D0@�	@b�UsT	�0@Q	x0@�	@b�UsT	�0@Q	�0@�	@bUsT	�8@Q	�0@�	@bAUsT	�0@Q	�8@�	@bsUsT	9@Q	�8@�	@b�UsT	`9@Q	09@
@b�UsT	�9@Q	�9@#
@b	UsT	(:@Q	�9@5
@bUsT	P:@Q	
1@�5
@5
@^�p�yw?
@ �U:I
@ �U	x4@S
@ �U	'1@]
@ �U	x4@o
@bUsT	P;@Q	x:@�
@bAUsT	C1@Q	p;@�
@bUsT	T1@Q	X<@��
@�
@p������
@ �U:�
@ �U	x4@�
@ �U	j1@�
@ U	x4@�
@bGUsT	�=@Q	P=@�
@byUsT	>@Q	�=@�
@b�UsT	�>@Q	8>@@bUsT	|1@Q	�>@�@@������
@ "U:@ AU	x4@!@ `U	?@+@ U	x4@5@ �U	(?@?@ �U	`?@Q@b�UsT	�@@Q	�?@c@b!UsT	�1@Q	�@@m@ @U	HA@w@ _U	�A@�@bUsT	�1@Q	�A@��@�@��\����@ �U:�@ �U	x4@�@ U	�1@�@ 3U	x4@�@beUsT	�1@Q	B@�@b�UsT	�1@Q	�B@�@b�UsT	2@Q	�C@�@b�UsT	2@Q	�C@@b-UsT	`D@Q	(D@@bUsT	2@Q	�D@O@ {U	�2@Y@ �U	�2@c@ �U	�2@m@ �U	(3@w@ �U	�,@�@ U	X3@�@ 5U	�,@�@ TU	�3@�@ sU	�3@
�@	�@��UsQ0�@��U�@T���@��UsT�@�@D�U	H4@%@\Us/@ 0U	�E@9@ OU	:2@T@mnT	 4@\@\�Us~@ U	�,@T1QI�V�ctxV3�2�ctx28�7�ctx/��
ctx�1�I� ctx�/���6ctx�&�sLctxs/��TbctxT/���ctx*�'!;#'�
T#C!O�'�3�8�4bp
@�� l��w���"��5b�
@
�wvp���l���6���7��@;�8���@6�Uv�@D�U	�,@Ts@%�Us@ U	�,@�
@�U��Tv�
@DU	�,@�
@�7U��
�
@��
@ cU	k,@
@*@D�U	�,@6@ �U	s,@
B@�
P@�
^@�z@D�U	�,@�@ U	s,@
�@�
�@��@DLU	�,@
�@m
�@R�@DU	�,@�
@D�U	K,@T�T�
@D�U	�,@Ts�
@$�UvTsQ09@DU	X,@����	��Y�	 @�R*2�A�int%TtO�v��.�.�}��nk5�=�p��n<���2o�4H7	�y8	�?9	��:	� ;	�(�<	�0�=	�8�>	�@bA	�HB	�P^C	�XKE�`G�h]IHp�JH�`L�w�M�x�Pd��Qr�9R���T���\
���^���_��W`��qa	���b���cH��e�����,
U����A{
��
�����Ao
J��
���		out �err!��"��cH0H�	�5UUAA�Zd�Hq�; @���D�9+\�}kv	5���
�	�	Q
�A;	k�WQ	o�nhC1	���k@�`U	@2@T1QHRst@[�@�U:Ts�@[�@0U�TT1Rs	 	�	^%�&	@uA2�:�&int*%tO�v &V�*d'�}�"r��LH�	��M�������
���
��	�4"�	��F9
.T�nW}�	o~�end���h ��	o�.end�.	���	��.���>�����WWc�"'AJ��W.cH�W\A���W..�c�`�������������.0�.	3��	��	R�J	Y��	��� 	���(���#Q�'��(;Q
��	Da@��:�
Q
w
�N��
O��	P�g
Q	A�R�"�	S��
�A�����##�	�AII��/���~�.�~K�A��	�A�A�.�`
	���:2	����9��K���

�A�:W(*�-�
�AbI�..���^	��~I#
���L	���Y	�
��)�:. @U��*�:B�T�B.��] �	+@�r�,����-���8..��!@�U�T Y@1���!�
�
1�'re"�ND"&@�"4@~!=@�U�T�
�AP@��	���ok�
���~	�W����.+q
�.eY������c��re����
B��NFrc�	Atj
�	�K��
	����#�@0di���+�@o	.end
.&$$H)@)@��U>:E@�U���Q
w@b�T0�@-�T}Q~RX0Yv�@�	Uv�@�*	Uv�@B	Uv@Z	Uv�@�r	Us�@�	UvZ@Uv�
�Ap@����SO�
��oe	�W����.���c��re��
B��MErc�	Arl$H�@�@$��
U��@�UsT�HQ
�@b�
T0�@-�
T~QR0X0Y�H�@U�HzZ��@���
�[����\W���]W		^cJ	:	
"b��	�	
g
c	A�	�	
{
j	A��}
�k.��}
�
m�


�����~
�	��L
>

�
���

#�@Dr
	x�
��~�@�BT��~Q�@�UsT
Q	�E@X��~,�@Ve	��
�
 �
�
+/%-6p.7�l�@�T
Q	g2@�@N
T	�R��}X��}Y0@(;
UvT4Q��~ @R
U0D@�i
UHj@��
UH{@��
Uv�@��
U|�@��
UH�@��
Uv�@~U|�:�/�#AC�#$W�
#5C�
#G~01p)W�2gW{
+AI~H}I
:;9I8!I:;9I1�B$>	(
.?:;9'I<H}
:!;9I8
H}:!;9I1R�BX!YW!.:!;9!
' !:!;9I<:;9!	&I.?:;9!'<.?:;9'I<':!;9!	'I.:!;9!
' !:!;9I4:!;9I41.?<n:!;!I !I/!
:!;9I8!">!!I:!;9!#
:!;9I8!$.?:!;9!'<%&4:!;9I':!;!9I(%U)*$>+:;9,
:;9I
k-:;9.4:;9I?</.?:;9'I<0.?:;9'I@z14:;9I�B24:;9I34.1@z51R�BUXYW64171841�B9H}�
:!;9I8$>!II~I:;9I(:!;9I�B	4:!;9I�B
<I!I/
4:!;9!I?<
:!;9!I8.?:!;9'I<H}H}�%$>&I>I:;9:;9
:;9I
k:;9:;9&.?:;9'I<.?:;9'@zUH} .?<n:;II~!IH}:!;9I�B:;9I$>.?:;9'I<	
:!;9I8
4:!;9I�B:;9IH}
4:!;9I<
:;9I8:!;9I�B1�B&I.?:;9'<4:!;9I�B:!;9I:!;9!	'I4:!;9I�B.:!;9'I@z
:!;9I8!':;9!	I!I/4:!;9I�B .:!;9!
'@z!H}�"H}#$1R�BX!YW%%&$>'().?:;9'I@z*:;9I+,1R�BUXYW-1U.41�B/.:;9'I 014:;9I2.:;9'I Nq�
	?k}�
����������Z	p
@!Z-=ZW�Y��
E
�<
���f
^ XYXK��	c+	UJ+� 	U 
#X)m��L<�WK'XXX���>YWKX=BYWK�>"�Y�Y��	@@�!WKY��������Y��[%��%Z���[
�}����####### �
�}����#### �
�}����#$##$#$#$ �
�~����##$$#$#$####$ �
�~����
 
  �
�~����''' �
�������
 (�� �
�����(%### ����/	if�Y�p	s��b�
	?k}�
�������	 @

 A	�?xJ	�y
�
�<XXXY
<
s t�t[�=	�<X<X]�s	;c�
	?k�&&����8��@�	@�<X9	@lY97	OX	YJX	Y>	���
$�<.Y��
X�
J�;=[JK�	�	�"��Yf.J.	NttY
��~�/�t,��J�XJJ.	c�"	u4J4<<X	Z
5*2F
u0�J.<2z J�	_�
��3X�LQX
$]<.Y��
 vX
.Z!WZ-Z	^�~�Y�	�fXf..	cf	�	��	��	d3	K���8XH�!�<-!]	K��=&!&J!JX��	<�#&�$�f���G=K=>�..�X��Z	$u-	=2��fHt�!w&J	J=&v!P!z&JPg&y! &J	K&W!.��	��yX��	��	�	uW��-X�	�/.	=jJ��JAUX1�w�	)K__off_t_IO_read_ptr_chaindemo_global_iterationsize_t_shortbufprepTsRunRegexFindFntsrun_json_stringifyTsRunConsoleLevelTsRunRegexCapturetsrun_pcre2_providerfree_captures_IO_buf_baseTSRUN_STEP_ERRORTSRUN_STEP_SUSPENDED__builtin_putcharcapture_counttsrun_get_boolpending_countlong long intimporterTsRunContextdemo_string_methods_filenoTSRUN_STEP_CONTINUE_IO_read_endtsrun_is_nulldemo_basic_matching_IO_buf_end_cur_column_IO_codecvtTSRUN_CONSOLE_DEBUG_old_offsetmainTsRunImportRequestTsRunRegexMatch__uint32_tTsRunRegexIsMatchFncompiletsrun_console_stdiovalue_IO_marker_short_backupbuf_freeres_buffprintfGNU C11 15.2.1 20251211 (Red Hat 15.2.1-5) -mtune=generic -march=x86-64 -g -O2 -std=c11 -foffload-options=-l_GCC_mlong unsigned intTSRUN_CONSOLE_INFO_IO_write_ptrtsrun_is_booleanTSRUN_CONSOLE_LOGshort unsigned int_IO_save_baseTSRUN_CONSOLE_WARNcallbacksintptr_t_locktsrun_new_flags2_mode__builtin_putsTSRUN_CONSOLE_CLEARuserdatatsrun_is_stringTsRunRegexCallbacksdemo_backtracking_protectiondescriptionresolved_pathtsrun_preparetsrun_freelong doubleTsRunRegexFreeFntsrun_is_undefinedpayload_IO_write_end_prevchainTsRunValuedemo_flagsTSRUN_CONSOLE_ERROR_IO_lock_t_IO_FILEdemo_practical_examplesreg_resultdemo_capture_groupstsrun_run__uint64_timportsdemo_error_handling_markersTsRunOrderpending_orders_Boolunsigned charshort int_IO_wide_data_vtable_offsetTSRUN_STEP_COMPLETEcancelled_ordersTSRUN_STEP_DONEtsrun_set_regexp_providerconfig__builtin_fwriteTsRunOrderId__off64_tTSRUN_STEP_NEED_IMPORTS_IO_read_basetsrun_value_free_IO_save_endimport_counttsrun_get_stringtsrun_is_numberjsontsrun_step_result_freeTsRunConsoleFn_unused2stderreval_and_printstatusTsRunPcre2Configtsrun_get_number_IO_backup_basetsrun_free_stringcancelled_countTsRunRegexCompileFnfind_freeres_listspecifierstartTsRunStepResultTsRunRegexFreeCapturesFnTsRunResult_IO_write_baseis_matchtsrun_set_consoleTsRunStepStatusstreamsGNU C11 15.2.1 20251211 (Red Hat 15.2.1-5) -mtune=generic -march=x86-64 -g -O2 -std=c11levelstdoutout_streammessagefflusherr_streammessage_lenTsRunConsoleStreamsfputcpcre2_general_context_8patternparse_flagspcre2_get_ovector_pointer_8pcre2_match_data_8match_outovector_countinputerr_msgpcre2_pattern_info_8pcre2_get_ovector_count_8pcre2_code_free_8pcre2_match_data_create_from_pattern_8ovectorPCRE2_UCHAR8match_ctxpcre2_real_code_8pcre2_free_captures_fnCompiledRegexpcre2_code_8pcre2_get_error_message_8pcre2_match_8pcre2_find_fnpcre2_match_context_free_8pcre2_real_match_data_8g_error_buffermallocis_globalstart_poserrorcodeoptions_outsnprintfhandlepcre2_set_match_limit_8pcre2_is_match_fnpcre2_compile_context_8pcre2_match_context_8is_global_outpcre2_real_match_context_8optionspcre2_match_data_free_8match_dataPCRE2_SPTR8pcre2_free_fnformat_pcre2_errorpcre2_compile_fnerroroffsetpcre2_match_context_create_8g_match_limitinput_lenpcre2_compile_8pcre2_real_compile_context_8pcre2_real_general_context_8error_out__uint8_tregexp.c/home/dmitrii/src/projects/tsrun/examples/c-embedding/usr/lib/gcc/x86_64-redhat-linux/15/include/usr/include/bits/usr/include/bits/types/usr/includestddef.htypes.hstruct_FILE.hstdint-uintn.hstdint.htsrun.hregexp_provider.hstdio.htsrun_console.h<built-in>tsrun_console.cregexp_provider.cpcre2.hstdlib.h�@P�S��S��P�@�S�@�S5@�S	@�S5
@^S�
@pS@�S�@�Sp
@UjVjk�U�k�V���U���Vp
@T��T�p
@Q\S\k�Q�k�S���Q���S���Q���S���Q��
@,�T�3\�T�q��T��
@$S$,�Q�3PSP\�Q�q�S���Q��
@,V3\Vq�V�@P!S!*P*0Sd<U<T�U�TdUdz�U�z�U���U���UFTFJXJT�T�TdTdz�T�z�T��X���T���TAQAT�Q�TdQdz�Q�z�Q���Q���Q7R7T�R�TdRdz�R�z�R���R���ROSOSUT_S*JPTdPz�P_uSuyUz�S
*RB��2�@��p@��P@��@���U�U�T�T�Q�Q�U=�U�=AU%T%8S8<U<=�T�=AT%T%8S8<U<=�T�=ATPpUp��U�PrTr�S���T���S���T���S���T���S���T�PvQv�]���Q���]���Q���]���Q�PvRv�^���R���^���R���^PvXv�_���X���_���X���_PvYv�\���Y���\���Y���\P��������PrTr�S���T���S���T���S���T���S���T�w�P��V��V��V��P��P������P������P��]��]��]��P��P��	p|4%���p|4%#���
p|@4%#���
q����3$}"��
q����3$}"��P������U���U���T��S���T���S���T���Q��^���Q���^��R��_���R���_��X��V���X���V��T��S���T���S���T���P���H��P���H��P��S��S��S��U���U���T��U���T���	U�	�	�T��	�
U�
��T���T��U���T���Q���Q���Q���Q���R��^���R���	^�	�	�R��	�^��R��^��@?$���t8!���T�	�
t !��
�
T�
�
t
!��
�
T��@?$���0��
�
1���0���P��V��p�
�V��P��V��P��\��p�
�
P�
�
\�
�P��\��P�
�
P��P��Q���Q���	�Q��	�	�Q��	�
�Q���Q���d0��	�d0�	�	�d0�	�
�d0���d0���w0��	�w0�	�	�w0�	�
�w0���w0��Q��Q�	�	Q�	�
Q�
�
q��
�
Q�
�
q��
�
Q�
�
q��
�
Q3�
@,3\q�p
@�@@�
7������	�	�
��������	�	�
��@J@ ��p
@�*��5�@7�@J0
@`pa@l�]@�`
@��]@�������@�@1P@"p@4�@�EDa@S��\�I@��jPG@}�_@��]@X @a@�����\�@&(2@ O`px@v�������0,@3EV@a@cs���Ha@��8,@��`a@�@+@Qd|xa@�� @U�`a@���Ha@��,A @�Uha@h@@@mt@scrt1.o__abi_tagregexp.ceval_and_printcrtbegin.oderegister_tm_clones__do_global_dtors_auxcompleted.0__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entrytsrun_console.cregexp_provider.cpcre2_free_captures_fnpcre2_free_fnpcre2_find_fng_error_bufferpcre2_is_match_fnpcre2_compile_fng_match_limitcrtend.o__FRAME_END____GNU_EH_FRAME_HDR_GLOBAL_OFFSET_TABLE__DYNAMICpcre2_get_ovector_count_8snprintf@GLIBC_2.2.5pcre2_get_ovector_pointer_8pcre2_match_data_create_from_pattern_8tsrun_newtsrun_is_numbertsrun_runtsrun_prepare__gmon_start__puts@GLIBC_2.2.5tsrun_is_string_finiputchar@GLIBC_2.2.5malloc@GLIBC_2.2.5tsrun_freepcre2_code_free_8tsrun_value_freepcre2_match_context_free_8tsrun_set_console_IO_stdin_usedtsrun_get_boolpcre2_match_context_create_8fputc@GLIBC_2.2.5free@GLIBC_2.2.5__data_startpcre2_compile_8pcre2_get_error_message_8tsrun_step_result_freetsrun_is_boolean__TMC_END__tsrun_set_regexp_provider__dso_handletsrun_is_nulltsrun_get_string__bss_start_dl_relocate_static_pietsrun_json_stringifytsrun_get_numbertsrun_is_undefinedpcre2_set_match_limit_8_endpcre2_match_8tsrun_pcre2_providerstderr@GLIBC_2.2.5pcre2_match_data_free_8fwrite@GLIBC_2.2.5_edatafprintf@GLIBC_2.2.5__libc_start_main@GLIBC_2.34tsrun_free_stringpcre2_pattern_info_8tsrun_console_stdiostdout@GLIBC_2.2.5main_initfflush@GLIBC_2.2.5.symtab.strtab.shstrtab.note.gnu.build-id.init.text.fini.interp.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.rodata.eh_frame_hdr.eh_frame.note.gnu.property.note.ABI-tag.tbss.init_array.fini_array.dynamic.got.got.plt.data.bss.comment.annobin.notes.gnu.build.attributes.debug_aranges.debug_info.debug_abbrev.debug_line.debug_str.debug_line_str.debug_loclists.debug_rnglistsP@P$.t@t��@��4@@@5@:x@x
@ @ H���o  @  (RH @H 8	Z�$@�$�b���o�'@�'Zo���o�'@�'0	~(@(`�Bp(@p(��0,@0, �PG@PGl��G@�G@�J@J@�@J@@J ��]@�M��]@�M��]@�M��]@�M	��_@�O��_@�OX@a@@Q`a@HQ 0HQ\0�QO+x�@�RDA8T�P�TS3\+�j>��	v0��*�0�I�1��������('	���6��