-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpurebasic.c
More file actions
5749 lines (5741 loc) · 181 KB
/
purebasic.c
File metadata and controls
5749 lines (5741 loc) · 181 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
//
// PureBasic 6.30 - C Backend (MacOS X - arm64) generated code
//
// (c) 2025 Fantaisie Software
//
// The header must remain intact for Re-Assembly
//
// Process
// Cipher
// Thread
// RegularExpression
// Http
// PackerZip
// PackerArchive
// Packer
// Internal
// Requester
// Network
// Date
// Cocoa
// Menu
// Window
// Event
// Gadget
// FileSystem
// System
// DragDrop
// Image
// ImagePluginBMP
// ImagePlugin
// VectorDrawing
// String
// 2DDrawing
// Font
// Desktop
// 2DDrawingBase
// Array
// File
// Sort
// Math
// LinkedList
// Memory
// Map
// Object
// SimpleList
// :System
//
#pragma warning(disable: 4024)
//
typedef long long quad;
typedef quad integer;
#define PB_INFINITY (1.0 / 0.0)
#define PB_NEG_INFINITY (-1.0 / 0.0)
typedef struct pb_array { void *a; } pb_array;
typedef struct pb_array2 { void *a; integer b[2]; } pb_array2;
typedef struct pb_array3 { void *a; integer b[3]; } pb_array3;
typedef struct pb_array4 { void *a; integer b[4]; } pb_array4;
typedef struct pb_array5 { void *a; integer b[5]; } pb_array5;
typedef struct pb_array6 { void *a; integer b[6]; } pb_array6;
typedef struct pb_array7 { void *a; integer b[7]; } pb_array7;
typedef struct pb_array8 { void *a; integer b[8]; } pb_array8;
typedef struct pb_array9 { void *a; integer b[9]; } pb_array9;
typedef struct pb_listitem { void *a; void *b; void *c;} pb_listitem;
typedef struct pb_list { void *a; pb_listitem *b; } pb_list;
typedef struct pb_mapitem { void *a; void *b; void *c;} pb_mapitem;
typedef struct pb_pbmap { pb_mapitem *a; } pb_pbmap;
typedef struct pb_map { pb_pbmap *a; } pb_map;
static integer s_s[]={0, -1};
#define M_SYSFUNCTION(a) a
#define M_PBFUNCTION(a) a
#define M_CDECL
typedef void TCHAR;
#include <math.h>
#define SYS_BankerRound(x) llrint(x)
#define SYS_BankerRoundQuad(x) llrint(x)
//
integer PB_AddElement(void*);
integer PB_AllocateMemory(integer);
integer PB_AllocateStructure(integer,void*);
integer PB_CatchPack(integer,integer,integer);
integer PB_ClearList(void*);
integer PB_CloseFile(integer);
integer PB_CloseNetworkConnection(integer);
integer PB_CloseNetworkServer(integer);
integer PB_ClosePack(integer);
quad PB_ConvertDate(quad,integer);
integer PB_CountProgramParameters();
integer PB_CountString(void*,void*);
integer PB_CreateDirectory(void*);
integer PB_CreateFile(integer,void*);
integer PB_CreateMutex();
integer PB_CreateNetworkServer2(integer,integer,integer);
integer PB_CreateRegularExpression(integer,void*);
integer PB_CreateThread_THREAD(integer,integer);
quad PB_Date();
integer PB_DayOfWeek(quad);
integer PB_Delay(integer);
integer PB_DeleteElement(void*);
integer PB_DeleteFile(void*);
integer PB_DeleteMapElement2(void*,void*);
void* PB_DirectoryEntryName(integer,integer);
integer PB_DirectoryEntryType(integer);
integer PB_EndDate();
integer PB_EndThread();
integer PB_EndVectorDrawing();
integer PB_Eof(integer);
integer PB_Event_Free();
integer PB_Event_Init();
integer PB_EventClient();
integer PB_ExamineDirectory(integer,void*,void*);
integer PB_ExamineRegularExpression(integer,void*);
integer PB_FileSeek(integer,quad);
quad PB_FileSize(void*);
integer PB_FindMapElement(void*,void*);
integer PB_FindString(void*,void*);
integer PB_FinishDirectory(integer);
integer PB_FirstElement(void*);
integer PB_FlushFileBuffers(integer);
void* PB_FormatDate(void*,quad,integer);
integer PB_FreeCocoa();
integer PB_FreeDesktops();
integer PB_FreeFiles();
integer PB_FreeFileSystem();
integer PB_FreeFonts();
integer PB_FreeImages();
integer PB_FreeList(void*);
integer PB_FreeMap(void*);
integer PB_FreeMemory(integer);
integer PB_FreeMemorys();
integer PB_FreeMutex(integer);
integer PB_FreeNetworks();
integer PB_FreeObjects();
integer PB_FreePackers();
integer PB_FreeRegularExpression(integer);
integer PB_FreeRegularExpressions();
integer PB_FreeStructure(integer);
integer PB_FreeWindows();
void* PB_GetExtensionPart(void*,integer);
quad PB_GetFileDate(void*,integer);
void* PB_GetFilePart(void*,integer);
void* PB_GetPathPart(void*,integer);
void* PB_GetTemporaryDirectory(integer);
void* PB_Hex(quad,integer);
integer PB_Init2DDrawing();
integer PB_InitArray();
integer PB_InitBMPImagePlugin();
integer PB_InitDate();
integer PB_InitDesktop();
integer PB_InitFile();
integer PB_InitFont();
integer PB_InitGadget();
integer PB_InitHTTP();
integer PB_InitImage();
integer PB_InitImageDecoder();
integer PB_InitList();
integer PB_InitMap();
integer PB_InitMemory();
integer PB_InitMenu();
integer PB_InitNetworkInternal();
integer PB_InitPacker();
integer PB_InitProcess();
integer PB_InitRegularExpression();
integer PB_InitRequester();
integer PB_InitThread();
integer PB_InitVectorDrawing();
integer PB_InitWindow();
integer PB_InternalProcessToFront();
integer PB_LastElement(void*);
void* PB_LCase(void*,integer);
void* PB_Left(void*,integer,integer);
integer PB_Len(void*);
integer PB_ListSize(void*);
integer PB_LockMutex(integer);
quad PB_Lof(integer);
integer PB_MessageRequester(void*,void*);
void* PB_Mid(void*,integer,integer);
void* PB_Mid2(void*,integer,integer,integer);
integer PB_Month(quad);
integer PB_NetworkServerEvent2(integer);
integer PB_NextDirectoryEntry(integer);
integer PB_NextElement(void*);
integer PB_NextRegularExpressionMatch(integer);
integer PB_OpenFile(integer,void*);
quad PB_PeekI(quad);
void* PB_PeekS3(integer,integer,integer,integer);
integer PB_PokeI(quad,quad);
void* PB_ProgramFilename(integer);
void* PB_ProgramParameter2(integer,integer);
integer PB_ReadData(integer,integer,integer);
integer PB_ReadFile(integer,void*);
void* PB_ReadString(integer,integer);
integer PB_ReceiveNetworkData(integer,integer,integer);
void* PB_RegularExpressionGroup(integer,integer,integer);
integer PB_RenameFile(void*,void*);
void* PB_ReplaceString(void*,void*,void*,integer);
integer PB_ResetList(void*);
void* PB_Right(void*,integer,integer);
void* PB_RSet2(void*,integer,void*,integer);
integer PB_SendNetworkData(integer,integer,integer);
integer PB_SendNetworkString2(integer,void*,integer);
integer PB_SetBundleCurrentDirectory();
integer PB_SortList_THREAD(void*,integer);
void* PB_Str(quad,integer);
void* PB_StrF2(float,integer,integer);
integer PB_StringByteLength2(void*,integer);
void* PB_StringField(void*,integer,void*,integer);
void* PB_Trim(void*,integer);
integer PB_UncompressPackMemory2(integer,integer,integer,void*);
integer PB_UnlockMutex(integer);
void* PB_URLDecoder(void*,integer);
void* PB_URLEncoder(void*,integer);
integer PB_UseZipPacker();
quad PB_Val(void*);
integer PB_WaitThread(integer);
integer PB_WriteString2(integer,void*,integer);
integer PB_WriteStringN2(integer,void*,integer);
static char *tls;
int PB_ExitCode=0;
integer PB_MemoryBase=0;
integer PB_Instance=0;
int PB_ArgC;
char **PB_ArgV;
static unsigned char *pb_datapointer;
//
//
//
//
void SYS_Quit();
M_SYSFUNCTION(void) SYS_InitPureBasic();
void exit(int status);
M_PBFUNCTION(void) PB_InitCocoa();
M_SYSFUNCTION(void) SYS_CopyString(const void *String);
M_SYSFUNCTION(void) SYS_CheckStringBuffer(void);
M_SYSFUNCTION(void) SYS_FreeStructureStrings(void *Buffer, integer *StructureMap);
int M_CDECL SYS_StringEqual(TCHAR *String1, TCHAR *String2);
M_SYSFUNCTION(void) SYS_AllocateString4(TCHAR **String, integer PreviousPosition);
M_SYSFUNCTION(void) SYS_FastAllocateString4(TCHAR **Address, const TCHAR *String);
M_SYSFUNCTION(integer) SYS_FastAllocateStringFree4(TCHAR **Address, const TCHAR *String);
M_SYSFUNCTION(void) SYS_FreeString(TCHAR *String);
M_PBFUNCTION(void *) PB_NewList(integer ElementSize, void *Object, integer *StructureMap, int ElementType);
M_SYSFUNCTION(void *) SYS_AllocateArray(integer ElementSize, integer NbElements, int Type, integer *StructureMap, pb_array *Address);
M_SYSFUNCTION(void) SYS_ReAllocateArray(integer NbElements, pb_array *Address);
M_PBFUNCTION(void *) PB_NewMap(integer ElementSize, int ElementType, integer *StructureMap, void *Address, int HashSize);
M_PBFUNCTION(void *) PB_GetMapElement(void *Map, void *Key);
M_SYSFUNCTION(void) SYS_IncrementStringBasePosition(void);
M_SYSFUNCTION(void) SYS_InitString(void);
M_SYSFUNCTION(void) SYS_FreeStrings(void);
//
M_SYSFUNCTION(void) SYS_PushStringBasePosition(void);
M_SYSFUNCTION(integer) SYS_PopStringBasePosition(void);
M_SYSFUNCTION(integer) SYS_PopStringBasePositionUpdate(void);
M_SYSFUNCTION(void *) SYS_PopStringBasePositionValue(void);
M_SYSFUNCTION(void *) SYS_PopStringBasePositionValueNoUpdate(void);
M_SYSFUNCTION(integer) SYS_GetStringBasePosition(void);
M_SYSFUNCTION(void) SYS_SetStringBasePosition(integer Position);
M_SYSFUNCTION(integer) SYS_StringBasePositionNoPop(void);
M_SYSFUNCTION(char *) SYS_GetStringBase(void);
volatile int PB_DEBUGGER_LineNumber=-1;
volatile int PB_DEBUGGER_IncludedFiles=0;
char *PB_DEBUGGER_FileName=0;
typedef struct s_rangespec s_rangespec;
typedef struct s_serverconfig s_serverconfig;
typedef struct s_rewriterule s_rewriterule;
typedef struct s_rewriteresult s_rewriteresult;
typedef struct s_threaddata s_threaddata;
typedef struct s_httprequest s_httprequest;
//
static void* f_httpdate(quad v_ts,int sbp);
static void* f_urldecodepath(void* v_s,int sbp);
static void* f_normalizepath(void* v_s,int sbp);
static void* f_getheader(void* v_rawheaders,void* v_name,int sbp);
static integer f_parsehttprequest(void* v_raw,s_httprequest* p_req);
static void* f_statustext(integer v_code,int sbp);
static void* f_buildresponseheaders(integer v_statuscode,void* v_extraheaders,integer v_bodylen,int sbp);
static integer f_sendtextresponse(integer v_connection,integer v_statuscode,void* v_contenttype,void* v_body);
typedef integer (*pf_connectionhandlerproto)(integer v_connection,void* v_raw);
static integer f_connectionthread(s_threaddata* p_data);
static integer f_startserver(integer v_port);
static integer f_stopserver();
static void* f_getmimetype(void* v_extension,int sbp);
static integer f_ensureloginit();
static integer f_openorappend(void* v_path);
static void* f_rotationstamp(int sbp);
static integer f_prunearchives(void* v_logpath);
static integer f_rotatelog(integer p_fh,void* v_logpath);
static integer f_reopenlogs();
static integer f_logrotationthread(integer p_unused);
static void* f_apachedate(quad v_ts,int sbp);
static integer f_openlogfile(void* v_path);
static integer f_closelogfile();
static integer f_openerrorlog(void* v_path);
static integer f_closeerrorlog();
static integer f_logaccess(void* v_ip,void* v_method,void* v_path,void* v_protocol,integer v_status,integer v_bytes,void* v_referer,void* v_useragent);
static integer f_startdailyrotation();
static integer f_stopdailyrotation();
static integer f_logerror(void* v_level,void* v_message);
static void* f_resolveindexfile(void* v_dirpath,void* v_indexlist,int sbp);
static void* f_buildetag(void* v_filepath,int sbp);
static integer f_ishiddenpath(void* v_urlpath,void* v_hiddenpatterns);
static integer f_servefile(integer v_connection,s_serverconfig* p_cfg,s_httprequest* p_req,integer p_bytesout,integer p_statusout);
static void* f_builddirectorylisting(void* v_dirpath,void* v_urlpath,int sbp);
static integer f_parserangeheader(void* v_header,integer v_filesize,s_rangespec* p_range);
static integer f_sendpartialresponse(integer v_connection,void* v_fspath,s_rangespec* p_range,void* v_mimetype,integer v_filesize);
static integer f_loaddefaults(s_serverconfig* p_cfg);
static integer f_parseloglevel(void* v_s);
static integer f_parsecli(s_serverconfig* p_cfg);
static integer f_urllastslash_(void* v_path);
static void* f_urlbasename_(void* v_path,int sbp);
static void* f_urldirname_(void* v_path,int sbp);
static void* f_substplaceholders_(void* v_tmpl,void* v_captured,void* v_g1,void* v_g2,void* v_g3,void* v_g4,void* v_g5,void* v_g6,void* v_g7,void* v_g8,void* v_g9,int sbp);
static integer f_parserule_(void* v_line,s_rewriterule* p_rule);
static integer f_loaddirrulesifneeded_(void* v_dirpath,void* v_docroot);
static integer f_initrewriteengine();
static integer f_cleanuprewriteengine();
static integer f_loadglobalrules(void* v_path);
static integer f_globalrulecount();
static integer f_applyrewrites(void* v_path,void* v_docroot,s_rewriteresult* p_result);
static integer f_openembeddedpack(integer p_packdata,integer v_packsize);
static integer f_serveembeddedfile(integer v_connection,void* v_urlpath);
static integer f_closeembeddedpack();
static integer f_sighuphandler(integer v_signum);
static integer f_installsignalhandlers();
static integer f_removesignalhandlers();
static integer f_writerulefile_(void* v_path,void* v_content);
static integer f_rw_setup();
static integer f_rw_teardown();
static integer f_rewriteengine_init_mutexcreated();
static integer f_rewriteengine_globalrulecount_zeroafterinit();
static integer f_rewriteengine_exactrewrite_match();
static integer f_rewriteengine_exactrewrite_nomatch();
static integer f_rewriteengine_globrewrite_pathplaceholder();
static integer f_rewriteengine_globrewrite_fileplaceholder();
static integer f_rewriteengine_globrewrite_dirplaceholder();
static integer f_rewriteengine_regexrewrite_capturegroup();
static integer f_rewriteengine_regexrewrite_multiplegroups();
static integer f_rewriteengine_exactredir_301();
static integer f_rewriteengine_exactredir_defaultcode302();
static integer f_rewriteengine_globredir_pathsubstitution();
static integer f_rewriteengine_regexredir_capturegroup();
static integer f_rewriteengine_firstrulewins();
static integer f_rewriteengine_comments_ignored();
static integer f_rewriteengine_blanklines_ignored();
static integer f_rewriteengine_invalidverb_ignored();
static integer f_rewriteengine_nomatch_returnsfalse();
static integer f_rewriteengine_loadfromfile_countscorrectly();
static integer f_rewriteengine_perdir_loadsfromdocroot();
static integer f_rewriteengine_globalfirst_perdirsecond();
static integer f_rewriteengine_cleanup_safe();
#pragma pack(1)
typedef struct s_rangespec {
integer f_start;
integer f_end;
integer f_isvalid;
} s_rangespec;
#pragma pack()
#pragma pack(1)
typedef struct s_serverconfig {
integer f_port;
void* f_rootdirectory;
void* f_indexfiles;
integer f_browseenabled;
integer f_spafallback;
void* f_hiddenpatterns;
void* f_logfile;
integer f_maxconnections;
void* f_errorlogfile;
integer f_loglevel;
integer f_logsizemb;
integer f_logkeepcount;
integer f_logdaily;
void* f_pidfile;
integer f_cleanurls;
void* f_rewritefile;
} s_serverconfig;
#pragma pack()
#pragma pack(1)
typedef struct s_rewriterule {
integer f_ruletype;
integer f_matchtype;
void* f_pattern;
void* f_destination;
integer f_code;
integer f_regexhandle;
} s_rewriterule;
#pragma pack()
#pragma pack(1)
typedef struct s_rewriteresult {
integer f_action;
void* f_newpath;
void* f_redirurl;
integer f_redircode;
} s_rewriteresult;
#pragma pack()
#pragma pack(1)
typedef struct s_threaddata {
integer f_client;
void* f_raw;
} s_threaddata;
#pragma pack()
#pragma pack(1)
typedef struct s_httprequest {
void* f_method;
void* f_path;
void* f_querystring;
void* f_version;
void* f_rawheaders;
integer f_contentlength;
void* f_body;
integer f_isvalid;
integer f_errorcode;
} s_httprequest;
#pragma pack()
integer f_exit_(integer) asm("_exit");
integer f_signal(integer,integer) asm("_signal");
static unsigned short _S10[]={0};
static unsigned short _S7[]={37,121,121,121,121,32,37,104,104,58,37,105,105,58,37,115,115,0};
static unsigned short _S63[]={97,112,112,99,97,99,104,101,0};
static unsigned short _S130[]={32,34,0};
static unsigned short _S90[]={102,111,110,116,47,116,116,102,0};
static unsigned short _S291[]={47,120,0};
static unsigned short _S226[]={9,0};
static unsigned short _S176[]={60,47,104,50,62,10,0};
static unsigned short _S8[]={32,71,77,84,0};
static unsigned short _S142[]={52,48,51,32,70,111,114,98,105,100,100,101,110,0};
static unsigned short _S187[]={60,116,100,62,0};
static unsigned short _S80[]={97,118,105,102,0};
static unsigned short _S30[]={72,84,84,80,47,49,46,49,32,0};
static unsigned short _S159[]={86,97,114,121,58,32,65,99,99,101,112,116,45,69,110,99,111,100,105,110,103,13,10,0};
static unsigned short _S205[]={45,45,101,114,114,111,114,45,108,111,103,0};
static unsigned short _S6[]={32,0};
static unsigned short _S298[]={102,111,114,119,97,114,100,32,47,97,32,47,98,10,114,101,119,114,105,116,101,32,47,120,32,47,121,10,0};
static unsigned short _S39[]={116,101,120,116,47,99,115,115,0};
static unsigned short _S133[]={34,0};
static unsigned short _S225[]={35,0};
static unsigned short _S177[]={60,116,97,98,108,101,62,60,116,114,62,60,116,104,62,78,97,109,101,60,47,116,104,62,60,116,104,62,83,105,122,101,60,47,116,104,62,60,116,104,62,77,111,100,105,102,105,101,100,60,47,116,104,62,60,47,116,114,62,10,0};
static unsigned short _S45[]={116,101,120,116,47,99,115,118,0};
static unsigned short _S62[]={97,112,112,108,105,99,97,116,105,111,110,47,109,97,110,105,102,101,115,116,43,106,115,111,110,0};
static unsigned short _S121[]={42,0};
static unsigned short _S29[]={85,110,107,110,111,119,110,0};
static unsigned short _S160[]={13,10,67,97,99,104,101,45,67,111,110,116,114,111,108,58,32,109,97,120,45,97,103,101,61,48,13,10,0};
static unsigned short _S116[]={43,0};
static unsigned short _S3[]={44,0};
static unsigned short _S117[]={45,0};
static unsigned short _S11[]={46,0};
static unsigned short _S9[]={47,0};
static unsigned short _S118[]={48,0};
static unsigned short _S263[]={47,112,114,111,102,105,108,101,47,52,50,0};
static unsigned short _S14[]={58,0};
static unsigned short _S137[]={32,91,0};
static unsigned short _S287[]={47,114,115,115,47,97,116,111,109,0};
static unsigned short _S146[]={66,117,105,108,100,68,105,114,101,99,116,111,114,121,76,105,115,116,105,110,103,32,102,97,105,108,101,100,58,32,0};
static unsigned short _S17[]={63,0};
static unsigned short _S200[]={45,45,112,111,114,116,0};
static unsigned short _S183[]={32,66,0};
static unsigned short _S77[]={105,109,97,103,101,47,120,45,105,99,111,110,0};
static unsigned short _S60[]={97,112,112,108,105,99,97,116,105,111,110,47,119,97,115,109,0};
static unsigned short _S259[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,123,100,105,114,125,47,123,102,105,108,101,125,32,115,104,111,117,108,100,32,114,101,99,111,110,115,116,114,117,99,116,32,99,97,112,116,117,114,101,32,112,97,116,104,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,71,108,111,98,82,101,119,114,105,116,101,95,68,105,114,80,108,97,99,101,104,111,108,100,101,114,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S202[]={45,45,98,114,111,119,115,101,0};
static unsigned short _S269[]={114,101,100,105,114,32,47,111,108,100,45,112,97,103,101,32,47,110,101,119,45,112,97,103,101,32,51,48,49,10,0};
static unsigned short _S208[]={45,45,108,111,103,45,107,101,101,112,0};
static unsigned short _S239[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,78,111,32,103,108,111,98,97,108,32,114,117,108,101,115,32,108,111,97,100,101,100,32,121,101,116,32,226,128,148,32,99,111,117,110,116,32,115,104,111,117,108,100,32,98,101,32,48,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,71,108,111,98,97,108,82,117,108,101,67,111,117,110,116,95,90,101,114,111,65,102,116,101,114,73,110,105,116,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S124[]={91,0};
static unsigned short _S140[]={92,0};
static unsigned short _S128[]={93,0};
static unsigned short _S96[]={97,117,100,105,111,47,109,112,101,103,0};
static unsigned short _S290[]={114,101,119,114,105,116,101,32,47,120,32,47,102,105,114,115,116,10,114,101,119,114,105,116,101,32,47,120,32,47,115,101,99,111,110,100,10,0};
static unsigned short _S72[]={115,118,103,0};
static unsigned short _S242[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,69,120,97,99,116,32,114,101,119,114,105,116,101,32,115,104,111,117,108,100,32,109,97,116,99,104,32,47,97,98,111,117,116,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,69,120,97,99,116,82,101,119,114,105,116,101,95,77,97,116,99,104,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S248[]={114,101,119,114,105,116,101,32,47,98,108,111,103,47,42,32,47,112,111,115,116,115,47,123,112,97,116,104,125,10,0};
static unsigned short _S297[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,66,108,97,110,107,32,108,105,110,101,115,32,115,104,111,117,108,100,32,110,111,116,32,99,114,101,97,116,101,32,114,117,108,101,115,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,66,108,97,110,107,76,105,110,101,115,95,73,103,110,111,114,101,100,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S40[]={116,120,116,0};
static unsigned short _S234[]={47,98,108,111,103,0};
static unsigned short _S261[]={47,117,115,101,114,47,52,50,0};
static unsigned short _S53[]={109,106,115,0};
static unsigned short _S282[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,123,112,97,116,104,125,32,115,104,111,117,108,100,32,115,117,98,115,116,105,116,117,116,101,32,105,110,32,114,101,100,105,114,101,99,116,32,85,82,76,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,71,108,111,98,82,101,100,105,114,95,80,97,116,104,83,117,98,115,116,105,116,117,116,105,111,110,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S229[]={126,0};
static unsigned short _S210[]={45,45,112,105,100,45,102,105,108,101,0};
static unsigned short _S131[]={34,32,0};
static unsigned short _S255[]={47,97,115,115,101,116,115,47,108,111,103,111,46,112,110,103,0};
static unsigned short _S147[]={53,48,48,32,73,110,116,101,114,110,97,108,32,83,101,114,118,101,114,32,69,114,114,111,114,0};
static unsigned short _S273[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,82,101,100,105,114,85,82,76,32,115,104,111,117,108,100,32,98,101,32,47,110,101,119,45,112,97,103,101,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,69,120,97,99,116,82,101,100,105,114,95,51,48,49,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S84[]={105,109,97,103,101,47,116,105,102,102,0};
static unsigned short _S215[]={123,100,105,114,125,0};
static unsigned short _S122[]={74,97,110,32,70,101,98,32,77,97,114,32,65,112,114,32,77,97,121,32,74,117,110,32,74,117,108,32,65,117,103,32,83,101,112,32,79,99,116,32,78,111,118,32,68,101,99,0};
static unsigned short _S304[]={114,101,119,114,105,116,101,32,47,97,32,47,98,10,114,101,100,105,114,32,47,99,32,47,100,32,51,48,49,10,35,32,115,107,105,112,10,114,101,119,114,105,116,101,32,47,101,32,47,102,10,0};
static unsigned short _S250[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,65,99,116,105,111,110,32,115,104,111,117,108,100,32,98,101,32,49,32,40,114,101,119,114,105,116,101,41,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,71,108,111,98,82,101,119,114,105,116,101,95,80,97,116,104,80,108,97,99,101,104,111,108,100,101,114,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S155[]={67,111,110,116,101,110,116,45,69,110,99,111,100,105,110,103,58,32,103,122,105,112,13,10,0};
static unsigned short _S81[]={105,109,97,103,101,47,97,118,105,102,0};
static unsigned short _S56[]={97,112,112,108,105,99,97,116,105,111,110,47,106,115,111,110,0};
static unsigned short _S299[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,85,110,107,110,111,119,110,32,118,101,114,98,115,32,115,104,111,117,108,100,32,98,101,32,115,107,105,112,112,101,100,59,32,111,110,108,121,32,118,97,108,105,100,32,114,117,108,101,115,32,99,111,117,110,116,101,100,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,73,110,118,97,108,105,100,86,101,114,98,95,73,103,110,111,114,101,100,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S303[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,114,101,115,117,108,116,46,65,99,116,105,111,110,32,115,104,111,117,108,100,32,98,101,32,48,32,119,104,101,110,32,110,111,32,114,117,108,101,32,109,97,116,99,104,101,115,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,78,111,77,97,116,99,104,95,82,101,116,117,114,110,115,70,97,108,115,101,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S271[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,65,99,116,105,111,110,32,115,104,111,117,108,100,32,98,101,32,50,32,40,114,101,100,105,114,101,99,116,41,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,69,120,97,99,116,82,101,100,105,114,95,51,48,49,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S82[]={116,105,102,0};
static unsigned short _S33[]={67,111,110,110,101,99,116,105,111,110,58,32,99,108,111,115,101,13,10,0};
static unsigned short _S76[]={105,99,111,0};
static unsigned short _S144[]={65,99,99,101,112,116,45,69,110,99,111,100,105,110,103,0};
static unsigned short _S48[]={105,99,115,0};
static unsigned short _S182[]={60,116,100,62,45,60,47,116,100,62,60,116,100,62,45,60,47,116,100,62,60,47,116,114,62,10,0};
static unsigned short _S57[]={106,115,111,110,108,100,0};
static unsigned short _S230[]={114,101,119,114,105,116,101,46,99,111,110,102,0};
static unsigned short _S257[]={114,101,119,114,105,116,101,32,47,115,116,97,116,105,99,47,42,32,47,97,115,115,101,116,115,47,123,100,105,114,125,47,123,102,105,108,101,125,10,0};
static unsigned short _S68[]={106,112,101,103,0};
static unsigned short _S216[]={123,114,101,46,49,125,0};
static unsigned short _S262[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,65,99,116,105,111,110,32,115,104,111,117,108,100,32,98,101,32,49,32,40,114,101,119,114,105,116,101,41,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,82,101,103,101,120,82,101,119,114,105,116,101,95,67,97,112,116,117,114,101,71,114,111,117,112,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S21[]={77,111,118,101,100,32,80,101,114,109,97,110,101,110,116,108,121,0};
static unsigned short _S170[]={116,97,98,108,101,123,98,111,114,100,101,114,45,99,111,108,108,97,112,115,101,58,99,111,108,108,97,112,115,101,59,119,105,100,116,104,58,49,48,48,37,125,0};
static unsigned short _S123[]={37,109,109,0};
static unsigned short _S20[]={80,97,114,116,105,97,108,32,67,111,110,116,101,110,116,0};
static unsigned short _S236[]={80,117,114,101,85,110,105,116,0};
static unsigned short _S201[]={45,45,114,111,111,116,0};
static unsigned short _S129[]={32,45,32,45,32,0};
static unsigned short _S247[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,69,120,97,99,116,32,114,101,119,114,105,116,101,32,115,104,111,117,108,100,32,78,79,84,32,109,97,116,99,104,32,47,99,111,110,116,97,99,116,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,69,120,97,99,116,82,101,119,114,105,116,101,95,78,111,77,97,116,99,104,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S217[]={123,114,101,46,50,125,0};
static unsigned short _S186[]={60,47,97,62,60,47,116,100,62,0};
static unsigned short _S79[]={105,109,97,103,101,47,98,109,112,0};
static unsigned short _S268[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,123,114,101,46,49,125,32,97,110,100,32,123,114,101,46,50,125,32,115,104,111,117,108,100,32,115,119,97,112,32,99,111,114,114,101,99,116,108,121,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,82,101,103,101,120,82,101,119,114,105,116,101,95,77,117,108,116,105,112,108,101,71,114,111,117,112,115,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S135[]={119,97,114,110,0};
static unsigned short _S16[]={72,84,84,80,47,0};
static unsigned short _S245[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,78,101,119,80,97,116,104,32,115,104,111,117,108,100,32,98,101,32,47,97,98,111,117,116,46,104,116,109,108,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,69,120,97,99,116,82,101,119,114,105,116,101,95,77,97,116,99,104,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S312[]={114,101,119,114,105,116,101,32,47,98,108,111,103,47,104,101,108,108,111,32,47,112,101,114,100,105,114,45,116,97,114,103,101,116,10,0};
static unsigned short _S295[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,67,111,109,109,101,110,116,32,108,105,110,101,115,32,115,104,111,117,108,100,32,110,111,116,32,99,114,101,97,116,101,32,114,117,108,101,115,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,67,111,109,109,101,110,116,115,95,73,103,110,111,114,101,100,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S241[]={47,97,98,111,117,116,0};
static unsigned short _S314[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,71,108,111,98,97,108,32,114,117,108,101,115,32,115,104,111,117,108,100,32,116,97,107,101,32,112,114,105,111,114,105,116,121,32,111,118,101,114,32,112,101,114,45,100,105,114,32,114,117,108,101,115,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,71,108,111,98,97,108,70,105,114,115,116,95,80,101,114,68,105,114,83,101,99,111,110,100,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S209[]={45,45,110,111,45,108,111,103,45,100,97,105,108,121,0};
static unsigned short _S218[]={123,114,101,46,51,125,0};
static unsigned short _S47[]={116,101,120,116,47,109,97,114,107,100,111,119,110,59,32,99,104,97,114,115,101,116,61,117,116,102,45,56,0};
static unsigned short _S99[]={119,97,118,0};
static unsigned short _S151[]={52,48,52,32,78,111,116,32,70,111,117,110,100,0};
static unsigned short _S136[]={105,110,102,111,0};
static unsigned short _S1[]={83,117,110,44,77,111,110,44,84,117,101,44,87,101,100,44,84,104,117,44,70,114,105,44,83,97,116,0};
static unsigned short _S258[]={47,97,115,115,101,116,115,47,105,109,103,47,108,111,103,111,46,112,110,103,0};
static unsigned short _S148[]={68,105,114,101,99,116,111,114,121,32,108,105,115,116,105,110,103,32,100,105,115,97,98,108,101,100,58,32,0};
static unsigned short _S163[]={67,97,110,110,111,116,32,111,112,101,110,32,102,105,108,101,58,32,0};
static unsigned short _S69[]={105,109,97,103,101,47,106,112,101,103,0};
static unsigned short _S141[]={70,111,114,98,105,100,100,101,110,58,32,0};
static unsigned short _S36[]={104,116,109,0};
static unsigned short _S293[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,70,105,114,115,116,32,109,97,116,99,104,105,110,103,32,114,117,108,101,32,115,104,111,117,108,100,32,119,105,110,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,70,105,114,115,116,82,117,108,101,87,105,110,115,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S59[]={119,97,115,109,0};
static unsigned short _S31[]={83,101,114,118,101,114,58,32,80,117,114,101,83,105,109,112,108,101,72,84,84,80,83,101,114,118,101,114,47,49,46,53,46,48,13,10,0};
static unsigned short _S207[]={45,45,108,111,103,45,115,105,122,101,0};
static unsigned short _S158[]={67,97,99,104,101,45,67,111,110,116,114,111,108,58,32,109,97,120,45,97,103,101,61,48,13,10,0};
static unsigned short _S113[]={112,100,102,0};
static unsigned short _S196[]={119,119,119,114,111,111,116,0};
static unsigned short _S166[]={60,116,105,116,108,101,62,73,110,100,101,120,32,111,102,32,0};
static unsigned short _S149[]={46,104,116,109,108,0};
static unsigned short _S110[]={97,112,112,108,105,99,97,116,105,111,110,47,103,122,105,112,0};
static unsigned short _S175[]={60,104,50,62,73,110,100,101,120,32,111,102,32,0};
static unsigned short _S219[]={123,114,101,46,52,125,0};
static unsigned short _S164[]={60,33,68,79,67,84,89,80,69,32,104,116,109,108,62,10,0};
static unsigned short _S71[]={105,109,97,103,101,47,103,105,102,0};
static unsigned short _S173[]={97,123,116,101,120,116,45,100,101,99,111,114,97,116,105,111,110,58,110,111,110,101,125,97,58,104,111,118,101,114,123,116,101,120,116,45,100,101,99,111,114,97,116,105,111,110,58,117,110,100,101,114,108,105,110,101,125,0};
static unsigned short _S252[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,123,112,97,116,104,125,32,115,104,111,117,108,100,32,98,101,32,116,104,101,32,103,108,111,98,32,99,97,112,116,117,114,101,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,71,108,111,98,82,101,119,114,105,116,101,95,80,97,116,104,80,108,97,99,101,104,111,108,100,101,114,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S174[]={60,47,115,116,121,108,101,62,60,47,104,101,97,100,62,60,98,111,100,121,62,10,0};
static unsigned short _S119[]={37,121,121,121,121,37,109,109,37,100,100,0};
static unsigned short _S162[]={79,117,116,32,111,102,32,109,101,109,111,114,121,32,115,101,114,118,105,110,103,58,32,0};
static unsigned short _S93[]={101,111,116,0};
static unsigned short _S104[]={118,105,100,101,111,47,119,101,98,109,0};
static unsigned short _S95[]={109,112,51,0};
static unsigned short _S112[]={97,112,112,108,105,99,97,116,105,111,110,47,120,45,116,97,114,0};
static unsigned short _S101[]={109,112,52,0};
static unsigned short _S100[]={97,117,100,105,111,47,119,97,118,0};
static unsigned short _S18[]={99,111,110,116,101,110,116,45,108,101,110,103,116,104,0};
static unsigned short _S244[]={47,97,98,111,117,116,46,104,116,109,108,0};
static unsigned short _S27[]={82,97,110,103,101,32,78,111,116,32,83,97,116,105,115,102,105,97,98,108,101,0};
static unsigned short _S311[]={114,101,119,114,105,116,101,32,47,98,108,111,103,47,104,101,108,108,111,32,47,103,108,111,98,97,108,45,116,97,114,103,101,116,10,0};
static unsigned short _S107[]={122,105,112,0};
static unsigned short _S308[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,80,101,114,45,100,105,114,32,114,101,119,114,105,116,101,46,99,111,110,102,32,115,104,111,117,108,100,32,98,101,32,102,111,117,110,100,32,97,110,100,32,97,112,112,108,105,101,100,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,80,101,114,68,105,114,95,76,111,97,100,115,70,114,111,109,68,111,99,82,111,111,116,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S214[]={123,102,105,108,101,125,0};
static unsigned short _S190[]={60,47,116,97,98,108,101,62,10,0};
static unsigned short _S220[]={123,114,101,46,53,125,0};
static unsigned short _S55[]={106,115,111,110,0};
static unsigned short _S167[]={60,47,116,105,116,108,101,62,10,0};
static unsigned short _S109[]={103,122,0};
static unsigned short _S41[]={116,101,120,116,47,112,108,97,105,110,59,32,99,104,97,114,115,101,116,61,117,116,102,45,56,0};
static unsigned short _S192[]={60,47,98,111,100,121,62,60,47,104,116,109,108,62,0};
static unsigned short _S180[]={39,62,0};
static unsigned short _S280[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,65,99,116,105,111,110,32,115,104,111,117,108,100,32,98,101,32,50,32,40,114,101,100,105,114,101,99,116,41,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,71,108,111,98,82,101,100,105,114,95,80,97,116,104,83,117,98,115,116,105,116,117,116,105,111,110,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S91[]={111,116,102,0};
static unsigned short _S289[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,82,101,100,105,114,67,111,100,101,32,115,104,111,117,108,100,32,98,101,32,51,48,49,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,82,101,103,101,120,82,101,100,105,114,95,67,97,112,116,117,114,101,71,114,111,117,112,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S277[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,79,109,105,116,116,101,100,32,114,101,100,105,114,101,99,116,32,99,111,100,101,32,115,104,111,117,108,100,32,100,101,102,97,117,108,116,32,116,111,32,51,48,50,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,69,120,97,99,116,82,101,100,105,114,95,68,101,102,97,117,108,116,67,111,100,101,51,48,50,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S246[]={47,99,111,110,116,97,99,116,0};
static unsigned short _S152[]={70,105,108,101,32,110,111,116,32,102,111,117,110,100,58,32,0};
static unsigned short _S156[]={69,84,97,103,58,32,0};
static unsigned short _S305[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,70,105,108,101,32,119,105,116,104,32,51,32,118,97,108,105,100,32,114,117,108,101,115,32,40,49,32,99,111,109,109,101,110,116,41,32,115,104,111,117,108,100,32,108,111,97,100,32,51,32,114,117,108,101,115,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,76,111,97,100,70,114,111,109,70,105,108,101,95,67,111,117,110,116,115,67,111,114,114,101,99,116,108,121,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S143[]={82,97,110,103,101,0};
static unsigned short _S221[]={123,114,101,46,54,125,0};
static unsigned short _S51[]={116,101,120,116,47,118,99,97,114,100,0};
static unsigned short _S24[]={66,97,100,32,82,101,113,117,101,115,116,0};
static unsigned short _S50[]={118,99,102,0};
static unsigned short _S102[]={118,105,100,101,111,47,109,112,52,0};
static unsigned short _S267[]={47,57,57,47,112,111,115,116,0};
static unsigned short _S283[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,82,101,100,105,114,67,111,100,101,32,115,104,111,117,108,100,32,98,101,32,51,48,49,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,71,108,111,98,82,101,100,105,114,95,80,97,116,104,83,117,98,115,116,105,116,117,116,105,111,110,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S222[]={123,114,101,46,55,125,0};
static unsigned short _S138[]={93,32,91,112,105,100,32,0};
static unsigned short _S238[]={13,70,105,108,101,58,32,47,85,115,101,114,115,47,119,111,114,97,106,101,100,116,47,80,117,114,101,66,97,115,105,99,95,80,114,111,106,101,99,116,115,47,80,117,114,101,83,105,109,112,108,101,72,84,84,80,83,101,114,118,101,114,47,116,101,115,116,115,47,116,101,115,116,95,114,101,119,114,105,116,101,46,112,98,0};
static unsigned short _S66[]={105,109,97,103,101,47,112,110,103,0};
static unsigned short _S58[]={97,112,112,108,105,99,97,116,105,111,110,47,108,100,43,106,115,111,110,0};
static unsigned short _S165[]={60,104,116,109,108,62,60,104,101,97,100,62,60,109,101,116,97,32,99,104,97,114,115,101,116,61,39,117,116,102,45,56,39,62,10,0};
static unsigned short _S120[]={37,104,104,37,105,105,37,115,115,0};
static unsigned short _S157[]={76,97,115,116,45,77,111,100,105,102,105,101,100,58,32,0};
static unsigned short _S313[]={47,103,108,111,98,97,108,45,116,97,114,103,101,116,0};
static unsigned short _S28[]={73,110,116,101,114,110,97,108,32,83,101,114,118,101,114,32,69,114,114,111,114,0};
static unsigned short _S194[]={98,121,116,101,115,32,0};
static unsigned short _S275[]={114,101,100,105,114,32,47,111,108,100,32,47,110,101,119,10,0};
static unsigned short _S199[]={110,111,110,101,0};
static unsigned short _S228[]={114,101,100,105,114,0};
static unsigned short _S64[]={116,101,120,116,47,99,97,99,104,101,45,109,97,110,105,102,101,115,116,0};
static unsigned short _S92[]={102,111,110,116,47,111,116,102,0};
static unsigned short _S223[]={123,114,101,46,56,125,0};
static unsigned short _S52[]={106,115,0};
static unsigned short _S193[]={98,121,116,101,115,61,0};
static unsigned short _S86[]={102,111,110,116,47,119,111,102,102,0};
static unsigned short _S153[]={103,122,105,112,0};
static unsigned short _S188[]={60,47,116,100,62,0};
static unsigned short _S181[]={47,60,47,97,62,60,47,116,100,62,0};
static unsigned short _S73[]={105,109,97,103,101,47,115,118,103,43,120,109,108,0};
static unsigned short _S213[]={123,112,97,116,104,125,0};
static unsigned short _S284[]={114,101,100,105,114,32,126,47,102,101,101,100,40,46,42,41,32,47,114,115,115,123,114,101,46,49,125,32,51,48,49,10,0};
static unsigned short _S22[]={70,111,117,110,100,0};
static unsigned short _S61[]={119,101,98,109,97,110,105,102,101,115,116,0};
static unsigned short _S306[]={114,101,119,114,105,116,101,32,47,98,108,111,103,47,104,101,108,108,111,32,47,98,108,111,103,47,104,101,108,108,111,46,104,116,109,108,10,0};
static unsigned short _S125[]={37,100,100,0};
static unsigned short _S78[]={98,109,112,0};
static unsigned short _S253[]={114,101,119,114,105,116,101,32,47,115,116,97,116,105,99,47,42,32,47,97,115,115,101,116,115,47,123,102,105,108,101,125,10,0};
static unsigned short _S227[]={114,101,119,114,105,116,101,0};
static unsigned short _S296[]={10,32,32,10,114,101,119,114,105,116,101,32,47,97,32,47,98,10,10,0};
static unsigned short _S97[]={111,103,103,0};
static unsigned short _S307[]={47,98,108,111,103,47,104,101,108,108,111,0};
static unsigned short _S232[]={112,115,104,115,95,114,119,95,116,101,115,116,0};
static unsigned short _S5[]={37,100,100,32,0};
static unsigned short _S105[]={111,103,118,0};
static unsigned short _S171[]={116,104,44,116,100,123,116,101,120,116,45,97,108,105,103,110,58,108,101,102,116,59,112,97,100,100,105,110,103,58,52,112,120,32,49,50,112,120,59,98,111,114,100,101,114,45,98,111,116,116,111,109,58,49,112,120,32,115,111,108,105,100,32,35,100,100,100,125,0};
static unsigned short _S145[]={73,102,45,78,111,110,101,45,77,97,116,99,104,0};
static unsigned short _S235[]={47,98,108,111,103,47,114,101,119,114,105,116,101,46,99,111,110,102,0};
static unsigned short _S224[]={123,114,101,46,57,125,0};
static unsigned short _S178[]={60,116,114,62,60,116,100,62,60,97,32,104,114,101,102,61,39,46,46,47,39,62,46,46,47,60,47,97,62,60,47,116,100,62,60,116,100,62,45,60,47,116,100,62,60,116,100,62,45,60,47,116,100,62,60,47,116,114,62,10,0};
static unsigned short _S111[]={116,97,114,0};
static unsigned short _S231[]={105,110,100,101,120,46,104,116,109,108,0};
static unsigned short _S114[]={97,112,112,108,105,99,97,116,105,111,110,47,112,100,102,0};
static unsigned short _S301[]={47,110,111,109,97,116,99,104,0};
static unsigned short _S184[]={32,75,66,0};
static unsigned short _S243[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,65,99,116,105,111,110,32,115,104,111,117,108,100,32,98,101,32,49,32,40,114,101,119,114,105,116,101,41,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,69,120,97,99,116,82,101,119,114,105,116,101,95,77,97,116,99,104,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S204[]={45,45,108,111,103,0};
static unsigned short _S279[]={47,100,111,119,110,108,111,97,100,115,47,114,101,112,111,114,116,46,112,100,102,0};
static unsigned short _S191[]={60,104,114,62,60,115,109,97,108,108,62,80,117,114,101,83,105,109,112,108,101,72,84,84,80,83,101,114,118,101,114,32,118,49,46,53,46,48,60,47,115,109,97,108,108,62,10,0};
static unsigned short _S310[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,80,101,114,45,100,105,114,32,114,117,108,101,32,115,104,111,117,108,100,32,114,101,119,114,105,116,101,32,112,97,116,104,32,99,111,114,114,101,99,116,108,121,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,80,101,114,68,105,114,95,76,111,97,100,115,70,114,111,109,68,111,99,82,111,111,116,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S37[]={116,101,120,116,47,104,116,109,108,59,32,99,104,97,114,115,101,116,61,117,116,102,45,56,0};
static unsigned short _S4[]={44,32,0};
static unsigned short _S276[]={47,111,108,100,0};
static unsigned short _S87[]={119,111,102,102,50,0};
static unsigned short _S197[]={105,110,100,101,120,46,104,116,109,108,44,105,110,100,101,120,46,104,116,109,0};
static unsigned short _S154[]={46,103,122,0};
static unsigned short _S139[]={93,32,0};
static unsigned short _S43[]={116,101,120,116,47,120,109,108,59,32,99,104,97,114,115,101,116,61,117,116,102,45,56,0};
static unsigned short _S2[]={74,97,110,44,70,101,98,44,77,97,114,44,65,112,114,44,77,97,121,44,74,117,110,44,74,117,108,44,65,117,103,44,83,101,112,44,79,99,116,44,78,111,118,44,68,101,99,0};
static unsigned short _S195[]={67,111,110,116,101,110,116,45,82,97,110,103,101,58,32,0};
static unsigned short _S274[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,82,101,100,105,114,67,111,100,101,32,115,104,111,117,108,100,32,98,101,32,51,48,49,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,69,120,97,99,116,82,101,100,105,114,95,51,48,49,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S288[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,123,114,101,46,49,125,32,115,104,111,117,108,100,32,99,97,112,116,117,114,101,32,47,97,116,111,109,32,97,102,116,101,114,32,47,102,101,101,100,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,82,101,103,101,120,82,101,100,105,114,95,67,97,112,116,117,114,101,71,114,111,117,112,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S98[]={97,117,100,105,111,47,111,103,103,0};
static unsigned short _S32[]={67,111,110,116,101,110,116,45,76,101,110,103,116,104,58,32,0};
static unsigned short _S108[]={97,112,112,108,105,99,97,116,105,111,110,47,122,105,112,0};
static unsigned short _S132[]={34,32,34,0};
static unsigned short _S70[]={103,105,102,0};
static unsigned short _S265[]={114,101,119,114,105,116,101,32,126,47,40,91,97,45,122,93,43,41,47,40,91,48,45,57,93,43,41,32,47,123,114,101,46,50,125,47,123,114,101,46,49,125,10,0};
static unsigned short _S233[]={112,115,104,115,95,114,119,95,103,108,111,98,97,108,46,99,111,110,102,0};
static unsigned short _S237[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,103,95,82,101,119,114,105,116,101,77,117,116,101,120,32,115,104,111,117,108,100,32,98,101,32,110,111,110,45,122,101,114,111,32,97,102,116,101,114,32,73,110,105,116,82,101,119,114,105,116,101,69,110,103,105,110,101,40,41,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,73,110,105,116,95,77,117,116,101,120,67,114,101,97,116,101,100,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S278[]={114,101,100,105,114,32,47,100,111,119,110,108,111,97,100,115,47,42,32,47,102,105,108,101,115,47,123,112,97,116,104,125,32,51,48,49,10,0};
static unsigned short _S26[]={78,111,116,32,70,111,117,110,100,0};
static unsigned short _S23[]={78,111,116,32,77,111,100,105,102,105,101,100,0};
static unsigned short _S46[]={109,100,0};
static unsigned short _S85[]={119,111,102,102,0};
static unsigned short _S103[]={119,101,98,109,0};
static unsigned short _S198[]={46,103,105,116,44,46,101,110,118,44,46,68,83,95,83,116,111,114,101,0};
static unsigned short _S106[]={118,105,100,101,111,47,111,103,103,0};
static unsigned short _S74[]={119,101,98,112,0};
static unsigned short _S13[]={13,10,0};
static unsigned short _S254[]={47,115,116,97,116,105,99,47,105,109,103,47,108,111,103,111,46,112,110,103,0};
static unsigned short _S211[]={45,45,99,108,101,97,110,45,117,114,108,115,0};
static unsigned short _S35[]={104,116,109,108,0};
static unsigned short _S315[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,67,108,101,97,110,117,112,82,101,119,114,105,116,101,69,110,103,105,110,101,32,111,110,32,97,108,114,101,97,100,121,45,99,108,101,97,110,32,115,116,97,116,101,32,115,104,111,117,108,100,32,110,111,116,32,99,114,97,115,104,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,67,108,101,97,110,117,112,95,83,97,102,101,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S185[]={32,77,66,0};
static unsigned short _S172[]={116,104,123,98,97,99,107,103,114,111,117,110,100,58,35,102,52,102,52,102,52,125,0};
static unsigned short _S302[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,65,112,112,108,121,82,101,119,114,105,116,101,115,32,115,104,111,117,108,100,32,114,101,116,117,114,110,32,35,70,97,108,115,101,32,119,104,101,110,32,110,111,32,114,117,108,101,32,109,97,116,99,104,101,115,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,78,111,77,97,116,99,104,95,82,101,116,117,114,110,115,70,97,108,115,101,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S189[]={60,47,116,100,62,60,47,116,114,62,10,0};
static unsigned short _S300[]={114,101,119,114,105,116,101,32,47,115,112,101,99,105,102,105,99,32,47,116,97,114,103,101,116,10,0};
static unsigned short _S67[]={106,112,103,0};
static unsigned short _S270[]={47,111,108,100,45,112,97,103,101,0};
static unsigned short _S89[]={116,116,102,0};
static unsigned short _S212[]={45,45,114,101,119,114,105,116,101,0};
static unsigned short _S54[]={97,112,112,108,105,99,97,116,105,111,110,47,106,97,118,97,115,99,114,105,112,116,0};
static unsigned short _S249[]={47,98,108,111,103,47,104,101,108,108,111,45,119,111,114,108,100,0};
static unsigned short _S25[]={70,111,114,98,105,100,100,101,110,0};
static unsigned short _S206[]={45,45,108,111,103,45,108,101,118,101,108,0};
static unsigned short _S127[]={37,104,104,58,37,105,105,58,37,115,115,0};
static unsigned short _S49[]={116,101,120,116,47,99,97,108,101,110,100,97,114,0};
static unsigned short _S12[]={46,46,0};
static unsigned short _S292[]={47,102,105,114,115,116,0};
static unsigned short _S161[]={67,111,110,116,101,110,116,45,82,97,110,103,101,58,32,98,121,116,101,115,32,42,47,0};
static unsigned short _S285[]={47,102,101,101,100,47,97,116,111,109,0};
static unsigned short _S94[]={97,112,112,108,105,99,97,116,105,111,110,47,118,110,100,46,109,115,45,102,111,110,116,111,98,106,101,99,116,0};
static unsigned short _S179[]={60,116,114,62,60,116,100,62,60,97,32,104,114,101,102,61,39,0};
static unsigned short _S88[]={102,111,110,116,47,119,111,102,102,50,0};
static unsigned short _S38[]={99,115,115,0};
static unsigned short _S203[]={45,45,115,112,97,0};
static unsigned short _S126[]={37,121,121,121,121,0};
static unsigned short _S44[]={99,115,118,0};
static unsigned short _S134[]={101,114,114,111,114,0};
static unsigned short _S264[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,123,114,101,46,49,125,32,115,104,111,117,108,100,32,98,101,32,116,104,101,32,102,105,114,115,116,32,99,97,112,116,117,114,101,32,103,114,111,117,112,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,82,101,103,101,120,82,101,119,114,105,116,101,95,67,97,112,116,117,114,101,71,114,111,117,112,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S34[]={67,111,110,116,101,110,116,45,84,121,112,101,58,32,0};
static unsigned short _S42[]={120,109,108,0};
static unsigned short _S294[]={35,32,84,104,105,115,32,105,115,32,97,32,99,111,109,109,101,110,116,10,114,101,119,114,105,116,101,32,47,97,32,47,98,10,0};
static unsigned short _S19[]={79,75,0};
static unsigned short _S115[]={97,112,112,108,105,99,97,116,105,111,110,47,111,99,116,101,116,45,115,116,114,101,97,109,0};
static unsigned short _S266[]={47,112,111,115,116,47,57,57,0};
static unsigned short _S309[]={47,98,108,111,103,47,104,101,108,108,111,46,104,116,109,108,0};
static unsigned short _S286[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,65,99,116,105,111,110,32,115,104,111,117,108,100,32,98,101,32,50,32,40,114,101,100,105,114,101,99,116,41,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,82,101,103,101,120,82,101,100,105,114,95,67,97,112,116,117,114,101,71,114,111,117,112,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S168[]={60,115,116,121,108,101,62,0};
static unsigned short _S272[]={47,110,101,119,45,112,97,103,101,0};
static unsigned short _S251[]={47,112,111,115,116,115,47,104,101,108,108,111,45,119,111,114,108,100,0};
static unsigned short _S256[]={65,115,115,101,114,116,40,41,32,102,97,105,108,101,100,33,13,13,77,101,115,115,97,103,101,58,32,123,102,105,108,101,125,32,115,104,111,117,108,100,32,98,101,32,98,97,115,101,110,97,109,101,32,111,102,32,99,97,112,116,117,114,101,13,80,114,111,99,101,100,117,114,101,58,32,82,101,119,114,105,116,101,69,110,103,105,110,101,95,71,108,111,98,82,101,119,114,105,116,101,95,70,105,108,101,80,108,97,99,101,104,111,108,100,101,114,40,41,13,76,105,110,101,58,32,0};
static unsigned short _S75[]={105,109,97,103,101,47,119,101,98,112,0};
static unsigned short _S169[]={98,111,100,121,123,102,111,110,116,45,102,97,109,105,108,121,58,109,111,110,111,115,112,97,99,101,59,112,97,100,100,105,110,103,58,49,101,109,125,0};
static unsigned short _S260[]={114,101,119,114,105,116,101,32,126,47,117,115,101,114,47,40,91,48,45,57,93,43,41,32,47,112,114,111,102,105,108,101,47,123,114,101,46,49,125,10,0};
static unsigned short _S281[]={47,102,105,108,101,115,47,114,101,112,111,114,116,46,112,100,102,0};
static unsigned short _S150[]={78,111,116,32,102,111,117,110,100,32,40,83,80,65,58,32,110,111,32,114,111,111,116,32,105,110,100,101,120,41,58,32,0};
static unsigned short _S65[]={112,110,103,0};
static unsigned short _S83[]={116,105,102,102,0};
static unsigned short _S15[]={13,10,13,10,0};
static unsigned short _S240[]={114,101,119,114,105,116,101,32,47,97,98,111,117,116,32,47,97,98,111,117,116,46,104,116,109,108,10,0};
static integer ms_s[]={0,-1};
static integer ms_serverconfig[];
static integer ms_rewriterule[];
static integer ms_rewriteresult[];
static integer ms_threaddata[];
static integer ms_httprequest[];
static integer ms_serverconfig[]={
8,
16,
40,
48,
64,
104,
120,
-1};
static integer ms_rewriterule[]={
16,
24,
-1};
static integer ms_rewriteresult[]={
8,
16,
-1};
static integer ms_threaddata[]={
8,
-1};
static integer ms_httprequest[]={
0,
8,
16,
24,
32,
48,
-1};
static pb_array a_g_gr_ruletype={0};
static pb_array a_g_gr_matchtype={0};
static pb_array a_g_gr_pattern={0};
static pb_array a_g_gr_destination={0};
static pb_array a_g_gr_code={0};
static pb_array a_g_gr_regexhandle={0};
static pb_array a_g_dc_dirpath={0};
static pb_array a_g_dc_filemtime={0};
static pb_array a_g_dc_rulecount={0};
static pb_array a_g_dr_ruletype={0};
static pb_array a_g_dr_matchtype={0};
static pb_array a_g_dr_pattern={0};
static pb_array a_g_dr_destination={0};
static pb_array a_g_dr_code={0};
static pb_array a_g_dr_regexhandle={0};
static pb_list t_g_closelist={0};
static void* g_g_tmpconf=0;
static volatile integer g_g_logfile=0;
static integer g_g_reopenlogs=0;
static void* g_g_errorlogpath=0;
static integer g_g_closemutex=0;
static pf_connectionhandlerproto g_g_handler=0;
static integer g_g_rotationthread=0;
static integer g_g_logmaxbytes=0;
static void* g_g_logpath=0;
static void* g_g_tzoffset=0;
static integer g_g_gr_count=0;
static integer g_g_logmutex=0;
static integer g_g_loglevel=0;
static integer g_g_serverpid=0;
static integer g_g_running=0;
static integer g_g_rewritemutex=0;
static integer g_g_stoprotation=0;
static integer g_g_embeddedpack=0;
static volatile integer g_g_errorlogfile=0;
static integer g_g_dc_count=0;
static integer g_g_logkeepcount=0;
static void* g_g_tmprwdir=0;
static integer g_g_rotationseq=0;
//
//
// Procedure.i ParseRule_(line.s, *rule.RewriteRule)
static integer f_parserule_(void* v_line,s_rewriterule* p_rule) {
integer r=0;
SYS_CheckStringBuffer();
SYS_FastAllocateString4(&v_line,v_line);
integer v_tcount=0;
integer v_ruletype=0;
integer v_regexhandle=0;
void* v_tok=0;
integer v_matchtype=0;
void* v_verb=0;
void* v_t0=0;
void* v_t1=0;
void* v_t2=0;
void* v_t3=0;
integer v_ti=0;
integer v_tn=0;
void* v_cleanpat=0;
integer v_code=0;
// line = Trim(line)
SYS_PushStringBasePosition();
SYS_PushStringBasePosition();
PB_Trim(v_line,SYS_PopStringBasePosition());
SYS_AllocateString4(&v_line,SYS_PopStringBasePosition());
// If Len(line) = 0 Or Left(line, 1) = "#" : ProcedureReturn #False : EndIf
integer r0=PB_Len(v_line);
integer c3=0;
if ((r0==0)) { goto ok3; }
SYS_PushStringBasePosition();
SYS_PushStringBasePosition();
PB_Left(v_line,1LL,SYS_PopStringBasePosition());
SYS_IncrementStringBasePosition();
void* p0=SYS_PopStringBasePositionValue();
void* p1=_S225;
if (SYS_StringEqual(p1,p0)) { goto ok3; }
goto no3;
ok3:
c3=1;
no3:;
if (!(c3)) { goto no2; }
r=0LL;
goto end;
no2:;
//
//
// line = ReplaceString(line, Chr(9), " ")
SYS_PushStringBasePosition();
SYS_PushStringBasePosition();
PB_ReplaceString(v_line,_S226,_S6,SYS_PopStringBasePosition());
SYS_AllocateString4(&v_line,SYS_PopStringBasePosition());
// Protected t0.s = "", t1.s = "", t2.s = "", t3.s = ""
SYS_FastAllocateStringFree4(&v_t0,_S10);
SYS_FastAllocateStringFree4(&v_t1,_S10);
SYS_FastAllocateStringFree4(&v_t2,_S10);
SYS_FastAllocateStringFree4(&v_t3,_S10);
// Protected tcount.i = 0
v_tcount=0;
// Protected ti.i, tn.i = CountString(line, " ") + 1;
integer r1=PB_CountString(v_line,_S6);
v_tn=(r1+1);
// Protected tok.s;
// For ti = 1 To tn
v_ti=1;
while(1) {
if (!(((integer)v_tn>=v_ti))) { break; }
// tok = Trim(StringField(line, ti, " "))
SYS_PushStringBasePosition();
SYS_PushStringBasePosition();
SYS_PushStringBasePosition();
SYS_PushStringBasePosition();
PB_StringField(v_line,v_ti,_S6,SYS_PopStringBasePosition());
void* p2=(void*)SYS_PopStringBasePositionValueNoUpdate();
PB_Trim(p2,SYS_PopStringBasePosition());
SYS_AllocateString4(&v_tok,SYS_PopStringBasePosition());
// If Len(tok) > 0
integer r2=PB_Len(v_tok);
if (!((r2>0))) { goto no7; }
// Select tcount
quad pb_select7=v_tcount;
// Case 0 : t0 = tok
if (pb_select7==0LL) {
SYS_PushStringBasePosition();
SYS_CopyString(v_tok);
SYS_AllocateString4(&v_t0,SYS_PopStringBasePosition());
// Case 1 : t1 = tok
goto endselect7;}
if (pb_select7==1LL) {
SYS_PushStringBasePosition();
SYS_CopyString(v_tok);
SYS_AllocateString4(&v_t1,SYS_PopStringBasePosition());
// Case 2 : t2 = tok
goto endselect7;}
if (pb_select7==2LL) {
SYS_PushStringBasePosition();
SYS_CopyString(v_tok);
SYS_AllocateString4(&v_t2,SYS_PopStringBasePosition());
// Case 3 : t3 = tok
goto endselect7;}
if (pb_select7==3LL) {
SYS_PushStringBasePosition();
SYS_CopyString(v_tok);
SYS_AllocateString4(&v_t3,SYS_PopStringBasePosition());
// EndSelect
}
endselect7:;
// tcount + 1
v_tcount=(v_tcount+1);
// If tcount >= 4 : Break : EndIf
if (!((v_tcount>=4LL))) { goto no9; }
goto il_next5;
no9:;
// EndIf
no7:;
// Next
next4:
v_ti+=1;
}
il_next5:;
// If tcount < 3 : ProcedureReturn #False : EndIf
if (!((v_tcount<3LL))) { goto no11; }
r=0LL;
goto end;
no11:;
//
// Protected verb.s = LCase(t0)
SYS_PushStringBasePosition();
SYS_PushStringBasePosition();
PB_LCase(v_t0,SYS_PopStringBasePosition());
SYS_AllocateString4(&v_verb,SYS_PopStringBasePosition());
// Protected ruleType.i;
// Select verb
void *pb_select8=0;
SYS_FastAllocateString4(&pb_select8,v_verb);
// Case "rewrite" : ruleType = #RULE_REWRITE
if (SYS_StringEqual(pb_select8,_S227)) {
v_ruletype=0;
// Case "redir" : ruleType = #RULE_REDIR
goto endselect8;}
if (SYS_StringEqual(pb_select8,_S228)) {
v_ruletype=1;
// Default : ProcedureReturn #False
goto endselect8;}
SYS_FreeString(pb_select8);
r=0LL;
goto end;
// EndSelect
endselect8:;
SYS_FreeString(pb_select8);
//
// Protected code.i = 0
v_code=0;
// If ruleType = #RULE_REDIR
if (!((v_ruletype==1LL))) { goto no13; }
// code = Val(t3)
quad r3=PB_Val(v_t3);
v_code=r3;
// If code = 0 : code = 302 : EndIf
if (!((v_code==0LL))) { goto no15; }
v_code=302;
no15:;
// EndIf
no13:;
//
// Protected matchType.i;
// Protected cleanPat.s;
// If Left(t1, 1) = "~"
SYS_PushStringBasePosition();
SYS_PushStringBasePosition();
PB_Left(v_t1,1LL,SYS_PopStringBasePosition());
SYS_IncrementStringBasePosition();
void* p3=SYS_PopStringBasePositionValue();
void* p4=_S229;
if (!(SYS_StringEqual(p4,p3))) { goto no17; }
// matchType = #MATCH_REGEX
v_matchtype=2;
// cleanPat = Mid(t1, 2)
SYS_PushStringBasePosition();
SYS_PushStringBasePosition();
PB_Mid(v_t1,2LL,SYS_PopStringBasePosition());
SYS_AllocateString4(&v_cleanpat,SYS_PopStringBasePosition());
// ElseIf Right(t1, 1) = "*"
goto endif16;
no17:;
SYS_PushStringBasePosition();
SYS_PushStringBasePosition();
PB_Right(v_t1,1LL,SYS_PopStringBasePosition());
SYS_IncrementStringBasePosition();
void* p5=SYS_PopStringBasePositionValue();
void* p6=_S121;