oracledb_protocol/thin/
constants.rs1#![forbid(unsafe_code)]
2
3pub const TNS_PACKET_TYPE_CONNECT: u8 = 1;
4pub const TNS_PACKET_TYPE_ACCEPT: u8 = 2;
5pub const TNS_PACKET_TYPE_REFUSE: u8 = 4;
6pub const TNS_PACKET_TYPE_REDIRECT: u8 = 5;
7pub const TNS_PACKET_TYPE_DATA: u8 = 6;
8pub const TNS_PACKET_TYPE_RESEND: u8 = 11;
9
10pub const TNS_PACKET_FLAG_REDIRECT: u8 = 0x04;
15
16pub const TNS_MAX_CONNECT_DATA: usize = 230;
21
22pub const TNS_DATA_FLAGS_EOF: u16 = 0x0040;
23pub const TNS_DATA_FLAGS_END_OF_REQUEST: u16 = 0x0800;
24pub const TNS_DATA_FLAGS_BEGIN_PIPELINE: u16 = 0x1000;
25pub const TNS_DATA_FLAGS_END_OF_RESPONSE: u16 = 0x2000;
26
27pub const TNS_MSG_TYPE_PROTOCOL: u8 = 1;
28pub const TNS_MSG_TYPE_DATA_TYPES: u8 = 2;
29pub const TNS_MSG_TYPE_FUNCTION: u8 = 3;
30pub const TNS_MSG_TYPE_ERROR: u8 = 4;
31pub const TNS_MSG_TYPE_ROW_HEADER: u8 = 6;
32pub const TNS_MSG_TYPE_ROW_DATA: u8 = 7;
33pub const TNS_MSG_TYPE_PARAMETER: u8 = 8;
34pub const TNS_MSG_TYPE_STATUS: u8 = 9;
35pub const TNS_MSG_TYPE_IO_VECTOR: u8 = 11;
36pub const TNS_MSG_TYPE_LOB_DATA: u8 = 14;
37pub const TNS_MSG_TYPE_FLUSH_OUT_BINDS: u8 = 19;
38pub const TNS_MSG_TYPE_BIT_VECTOR: u8 = 21;
39pub const TNS_MSG_TYPE_DESCRIBE_INFO: u8 = 16;
40pub const TNS_MSG_TYPE_PIGGYBACK: u8 = 17;
41pub const TNS_MSG_TYPE_SERVER_SIDE_PIGGYBACK: u8 = 23;
42pub const TNS_MSG_TYPE_IMPLICIT_RESULTSET: u8 = 27;
43pub const TNS_MSG_TYPE_END_OF_RESPONSE: u8 = 29;
44pub const TNS_MSG_TYPE_FAST_AUTH: u8 = 34;
45pub const TNS_MSG_TYPE_TOKEN: u8 = 33;
46
47pub const TNS_FUNC_AUTH_PHASE_ONE: u8 = 118;
48pub const TNS_FUNC_AUTH_PHASE_TWO: u8 = 115;
49pub const TNS_FUNC_COMMIT: u8 = 14;
50pub const TNS_FUNC_EXECUTE: u8 = 94;
51pub const TNS_FUNC_FETCH: u8 = 5;
52pub const TNS_FUNC_LOGOFF: u8 = 9;
53pub const TNS_FUNC_LOB_OP: u8 = 96;
54pub const TNS_FUNC_PING: u8 = 147;
55pub const TNS_FUNC_PIPELINE_BEGIN: u8 = 199;
56pub const TNS_FUNC_PIPELINE_END: u8 = 200;
57pub const TNS_FUNC_ROLLBACK: u8 = 15;
58pub const TNS_FUNC_CLOSE_CURSORS: u8 = 105;
59pub const TNS_FUNC_TPC_TXN_SWITCH: u8 = 103;
62pub const TNS_FUNC_TPC_TXN_CHANGE_STATE: u8 = 104;
65
66pub const TNS_FUNC_SUBSCRIBE: u8 = 125;
69pub const TNS_FUNC_NOTIFY: u8 = 187;
71pub const TNS_SUBSCR_OP_REGISTER: u8 = 1;
72pub const TNS_SUBSCR_OP_UNREGISTER: u8 = 2;
73pub const TNS_SUBSCR_MODE_CLIENT_INITIATED: u32 = 4;
74pub const TNS_SUBSCR_CLIENT_ID_LEN: u32 = 29;
75pub const TNS_INIT_KPNDRREQ: u8 = 1;
76pub const TNS_SUBSCR_STOP_NOTIF: u32 = 0x04;
78pub const TNS_SUBSCR_QOS_RELIABLE: u32 = 0x01;
80pub const TNS_SUBSCR_QOS_SECURE: u32 = 0x08;
81pub const TNS_SUBSCR_QOS_PURGE_ON_NTFN: u32 = 0x10;
82pub const TNS_SUBSCR_FLAGS_INCLUDE_ROWIDS: u32 = 0x10;
84pub const TNS_SUBSCR_FLAGS_QUERY: u32 = 0x20;
85pub const TNS_SUBSCR_NAMESPACE_AQ: u32 = 1;
87pub const TNS_SUBSCR_NAMESPACE_DBCHANGE: u32 = 2;
88pub const TNS_MSG_TYPE_OAC: u8 = 13;
90pub const TNS_CCAP_FIELD_VERSION_12_1: u8 = 7;
93
94pub const SUBSCR_QOS_RELIABLE: u32 = 0x01;
98pub const SUBSCR_QOS_DEREG_NFY: u32 = 0x02;
99pub const SUBSCR_QOS_ROWIDS: u32 = 0x04;
100pub const SUBSCR_QOS_QUERY: u32 = 0x08;
101
102pub const EVENT_DEREG: u32 = 5;
104pub const EVENT_OBJCHANGE: u32 = 6;
105pub const EVENT_QUERYCHANGE: u32 = 7;
106pub const EVENT_AQ: u32 = 100;
107pub const OPCODE_ALLROWS: u32 = 0x01;
109
110pub const TNS_FUNC_AQ_ENQ: u8 = 121;
112pub const TNS_FUNC_AQ_DEQ: u8 = 122;
113pub const TNS_FUNC_AQ_ARRAY: u8 = 145;
114
115pub const TNS_AQ_MSG_PERSISTENT: u16 = 1;
117pub const TNS_AQ_MSG_BUFFERED: u16 = 2;
118pub const TNS_AQ_MSG_PERSISTENT_OR_BUFFERED: u16 = 3;
119
120pub const TNS_AQ_ARRAY_ENQ: i32 = 1;
122pub const TNS_AQ_ARRAY_DEQ: i32 = 2;
123pub const TNS_AQ_ARRAY_FLAGS_RETURN_MESSAGE_ID: u32 = 0x01;
124
125pub const TNS_AQ_MESSAGE_ID_LENGTH: usize = 16;
127pub const TNS_AQ_MESSAGE_VERSION: u16 = 1;
128
129pub const TNS_KPD_AQ_BUFMSG: u32 = 0x02;
131pub const TNS_KPD_AQ_EITHER: u32 = 0x10;
132
133pub const TNS_AQ_EXT_KEYWORD_AGENT_NAME: u16 = 64;
135pub const TNS_AQ_EXT_KEYWORD_AGENT_ADDRESS: u16 = 65;
136pub const TNS_AQ_EXT_KEYWORD_AGENT_PROTOCOL: u16 = 66;
137pub const TNS_AQ_EXT_KEYWORD_ORIGINAL_MSGID: u16 = 69;
138
139pub const TNS_ERR_NO_MESSAGES_FOUND: i32 = 25228;
142
143pub const TNS_TPC_TXN_START: u32 = 0x01;
145pub const TNS_TPC_TXN_DETACH: u32 = 0x02;
146pub const TNS_TPC_TXN_POST_DETACH: u32 = 0x04;
147
148pub const TNS_TPC_TXN_COMMIT: u32 = 0x01;
150pub const TNS_TPC_TXN_ABORT: u32 = 0x02;
151pub const TNS_TPC_TXN_PREPARE: u32 = 0x03;
152pub const TNS_TPC_TXN_FORGET: u32 = 0x04;
153
154pub const TNS_TPC_TXN_STATE_PREPARE: u32 = 0;
157pub const TNS_TPC_TXN_STATE_REQUIRES_COMMIT: u32 = 1;
158pub const TNS_TPC_TXN_STATE_COMMITTED: u32 = 2;
159pub const TNS_TPC_TXN_STATE_ABORTED: u32 = 3;
160pub const TNS_TPC_TXN_STATE_READ_ONLY: u32 = 4;
161pub const TNS_TPC_TXN_STATE_FORGOTTEN: u32 = 5;
162
163pub const TPC_TXN_FLAGS_NEW: u32 = 0x0000_0001;
165pub const TPC_TXN_FLAGS_JOIN: u32 = 0x0000_0002;
166pub const TPC_TXN_FLAGS_RESUME: u32 = 0x0000_0004;
167pub const TPC_TXN_FLAGS_PROMOTE: u32 = 0x0000_0008;
168pub const TPC_TXN_FLAGS_SESSIONLESS: u32 = 0x0000_0010;
169
170pub const TNS_EOCS_FLAGS_TXN_IN_PROGRESS: u32 = 0x0000_0002;
175
176pub const SESSIONLESS_FORMAT_ID: u32 = 0x4e_5c_3e;
180
181pub const TNS_KEYWORD_NUM_TRANSACTION_ID: u16 = 201;
184
185pub const TNS_TPC_TXNID_SYNC_SET: u8 = 0x40;
188pub const TNS_TPC_TXNID_SYNC_UNSET: u8 = 0x80;
189pub const TNS_TPC_TXNID_SYNC_SERVER: u8 = 0x01;
191
192pub const TNS_FETCH_ORIENTATION_CURRENT: u32 = 0x01;
194pub const TNS_FETCH_ORIENTATION_NEXT: u32 = 0x02;
195pub const TNS_FETCH_ORIENTATION_FIRST: u32 = 0x04;
196pub const TNS_FETCH_ORIENTATION_LAST: u32 = 0x08;
197pub const TNS_FETCH_ORIENTATION_PRIOR: u32 = 0x10;
198pub const TNS_FETCH_ORIENTATION_ABSOLUTE: u32 = 0x20;
199pub const TNS_FETCH_ORIENTATION_RELATIVE: u32 = 0x40;
200
201pub const TNS_PIPELINE_MODE_CONTINUE_ON_ERROR: u8 = 1;
202pub const TNS_PIPELINE_MODE_ABORT_ON_ERROR: u8 = 2;
203
204pub const TNS_AUTH_MODE_LOGON: u32 = 0x0000_0001;
205pub const TNS_AUTH_MODE_CHANGE_PASSWORD: u32 = 0x0000_0002;
206pub const TNS_AUTH_MODE_WITH_PASSWORD: u32 = 0x0000_0100;
207
208pub const TNS_VERIFIER_TYPE_11G_1: u32 = 0xb152;
209pub const TNS_VERIFIER_TYPE_11G_2: u32 = 0x1b25;
210pub const TNS_VERIFIER_TYPE_12C: u32 = 0x4815;
211
212pub const ORA_TYPE_NUM_VARCHAR: u8 = 1;
213pub const ORA_TYPE_NUM_NUMBER: u8 = 2;
214pub const ORA_TYPE_NUM_BINARY_INTEGER: u8 = 3;
215pub const ORA_TYPE_NUM_LONG: u8 = 8;
216pub const ORA_TYPE_NUM_ROWID: u8 = 11;
217pub const ORA_TYPE_NUM_DATE: u8 = 12;
218pub const ORA_TYPE_NUM_RAW: u8 = 23;
219pub const ORA_TYPE_NUM_BINARY_FLOAT: u8 = 100;
220pub const ORA_TYPE_NUM_BINARY_DOUBLE: u8 = 101;
221pub const ORA_TYPE_NUM_BOOLEAN: u8 = 252;
222pub const ORA_TYPE_NUM_CURSOR: u8 = 102;
223pub const ORA_TYPE_NUM_LONG_RAW: u8 = 24;
224pub const ORA_TYPE_NUM_CHAR: u8 = 96;
225pub const ORA_TYPE_NUM_CLOB: u8 = 112;
226pub const ORA_TYPE_NUM_BLOB: u8 = 113;
227pub const ORA_TYPE_NUM_BFILE: u8 = 114;
228pub const ORA_TYPE_NUM_OBJECT: u8 = 109;
229pub const ORA_TYPE_NUM_JSON: u8 = 119;
230pub const ORA_TYPE_NUM_TIMESTAMP: u8 = 180;
231pub const ORA_TYPE_NUM_TIMESTAMP_TZ: u8 = 181;
232pub const ORA_TYPE_NUM_INTERVAL_DS: u8 = 183;
233pub const ORA_TYPE_NUM_INTERVAL_YM: u8 = 182;
234pub const ORA_TYPE_NUM_UROWID: u8 = 208;
235pub const ORA_TYPE_NUM_TIMESTAMP_LTZ: u8 = 231;
236pub const ORA_TYPE_NUM_VECTOR: u8 = 127;
237pub(crate) const TNS_VECTOR_MAX_LENGTH: u32 = 1024 * 1024;
239pub(crate) const TNS_JSON_MAX_LENGTH: u32 = 32 * 1024 * 1024;
241pub const TNS_OBJ_TOP_LEVEL: u32 = 0x01;
242pub(crate) const TNS_LONG_LENGTH_INDICATOR: u8 = 254;
243pub(crate) const TNS_NULL_LENGTH_INDICATOR: u8 = 255;
244pub(crate) const TNS_OBJ_ATOMIC_NULL: u8 = 253;
245pub(crate) const TNS_OBJ_IS_DEGENERATE: u8 = 0x10;
246pub(crate) const TNS_OBJ_NO_PREFIX_SEG: u8 = 0x04;
247pub(crate) const TNS_OBJ_IS_VERSION_81: u8 = 0x80;
250pub(crate) const TNS_OBJ_IS_COLLECTION: u8 = 0x08;
251pub(crate) const TNS_OBJ_IMAGE_VERSION: u8 = 1;
252pub(crate) const TNS_OBJ_NON_NULL_OID: u8 = 0x02;
253pub(crate) const TNS_OBJ_HAS_EXTENT_OID: u8 = 0x08;
254pub(crate) const TNS_OBJ_HAS_INDEXES: u8 = 0x10;
255pub(crate) const TNS_OBJ_MAX_SHORT_LENGTH: usize = 245;
256pub(crate) const TNS_EXTENT_OID: [u8; 16] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1];
258pub(crate) const TNS_XML_TYPE_LOB: u32 = 0x0001;
259pub(crate) const TNS_XML_TYPE_STRING: u32 = 0x0004;
260pub(crate) const TNS_XML_TYPE_FLAG_SKIP_NEXT_4: u32 = 0x100000;
261pub(crate) const TNS_LOB_LOC_OFFSET_FLAG_1: usize = 4;
262pub(crate) const TNS_LOB_LOC_OFFSET_FLAG_3: usize = 6;
263pub(crate) const TNS_LOB_LOC_OFFSET_FLAG_4: usize = 7;
264pub(crate) const TNS_LOB_LOC_FLAGS_ABSTRACT: u8 = 0x40;
265pub(crate) const TNS_LOB_LOC_FLAGS_TEMP: u8 = 0x01;
266pub(crate) const TNS_LOB_LOC_FLAGS_VAR_LENGTH_CHARSET: u8 = 0x80;
267pub(crate) const TNS_LOB_LOC_FLAGS_LITTLE_ENDIAN: u8 = 0x40;
268
269pub const CS_FORM_IMPLICIT: u8 = 1;
270pub const CS_FORM_NCHAR: u8 = 2;
271
272pub(crate) const TNS_GSO_DONT_CARE: u16 = 0x0001;
273pub(crate) const TNS_GSO_CAN_RECV_ATTENTION: u16 = 0x0400;
280pub(crate) const TNS_NSI_DISABLE_NA: u8 = 0x04;
281pub(crate) const TNS_NSI_NA_REQUIRED: u8 = 0x10;
282pub(crate) const TNS_NSI_SUPPORT_SECURITY_RENEG: u8 = 0x80;
283pub(crate) const TNS_PROTOCOL_CHARACTERISTICS: u16 = 0x4f98;
284pub(crate) const TNS_ACCEPT_FLAG_FAST_AUTH: u32 = 0x1000_0000;
285pub(crate) const TNS_ACCEPT_FLAG_HAS_END_OF_RESPONSE: u32 = 0x0200_0000;
286pub(crate) const TNS_ACCEPT_FLAG_CHECK_OOB: u32 = 0x0000_0001;
287pub(crate) const TNS_SERVER_PIGGYBACK_QUERY_CACHE_INVALIDATION: u8 = 1;
288pub(crate) const TNS_SERVER_PIGGYBACK_OS_PID_MTS: u8 = 2;
289pub(crate) const TNS_SERVER_PIGGYBACK_TRACE_EVENT: u8 = 3;
290pub(crate) const TNS_SERVER_PIGGYBACK_SESS_RET: u8 = 4;
291pub(crate) const TNS_SERVER_PIGGYBACK_SYNC: u8 = 5;
292pub(crate) const TNS_SERVER_PIGGYBACK_LTXID: u8 = 7;
293pub(crate) const TNS_SERVER_PIGGYBACK_AC_REPLAY_CONTEXT: u8 = 8;
294pub(crate) const TNS_SERVER_PIGGYBACK_EXT_SYNC: u8 = 9;
295pub(crate) const TNS_SERVER_PIGGYBACK_SESS_SIGNATURE: u8 = 10;
296pub(crate) const TNS_CCAP_FIELD_VERSION: usize = 7;
297pub(crate) const TNS_CCAP_FIELD_VERSION_12_2: u8 = 8;
298pub(crate) const TNS_CCAP_FIELD_VERSION_12_2_EXT1: u8 = 9;
299pub(crate) const TNS_CCAP_FIELD_VERSION_20_1: u8 = 14;
300pub(crate) const TNS_CCAP_FIELD_VERSION_21_1: u8 = 16;
301pub(crate) const TNS_CCAP_FIELD_VERSION_23_1: u8 = 17;
302pub(crate) const TNS_CCAP_FIELD_VERSION_23_1_EXT_1: u8 = 18;
303pub(crate) const TNS_CCAP_FIELD_VERSION_23_1_EXT_3: u8 = 20;
304pub(crate) const TNS_CCAP_FIELD_VERSION_23_4: u8 = 24;
305pub(crate) const TNS_RCAP_TTC: usize = 6;
306pub(crate) const TNS_RCAP_TTC_32K: u8 = 0x04;
307pub(crate) const TNS_EXEC_OPTION_PARSE: u32 = 0x01;
308pub(crate) const TNS_EXEC_OPTION_BIND: u32 = 0x08;
309pub(crate) const TNS_EXEC_OPTION_DEFINE: u32 = 0x10;
310pub(crate) const TNS_EXEC_OPTION_EXECUTE: u32 = 0x20;
311pub(crate) const TNS_EXEC_OPTION_FETCH: u32 = 0x40;
312pub(crate) const TNS_EXEC_OPTION_PLSQL_BIND: u32 = 0x400;
313pub(crate) const TNS_EXEC_OPTION_NOT_PLSQL: u32 = 0x8000;
314pub(crate) const TNS_EXEC_OPTION_DESCRIBE: u32 = 0x20000;
315pub(crate) const TNS_EXEC_OPTION_BATCH_ERRORS: u32 = 0x80000;
316pub(crate) const TNS_EXEC_FLAGS_DML_ROWCOUNTS: u32 = 0x4000;
317pub(crate) const TNS_EXEC_FLAGS_SCROLLABLE: u32 = 0x02;
318pub(crate) const TNS_EXEC_FLAGS_NO_CANCEL_ON_EOF: u32 = 0x80;
319pub(crate) const TNS_DURATION_SESSION: u32 = 10;
320pub(crate) const TNS_LOB_OP_READ: u32 = 0x0002;
321pub(crate) const TNS_LOB_OP_TRIM: u32 = 0x0020;
322pub(crate) const TNS_LOB_OP_WRITE: u32 = 0x0040;
323pub(crate) const TNS_LOB_OP_CREATE_TEMP: u32 = 0x0110;
324pub(crate) const TNS_LOB_OP_FREE_TEMP: u32 = 0x0111;
325pub(crate) const TNS_LOB_OP_ARRAY: u32 = 0x80000;
326pub(crate) const TNS_LOB_PREFETCH_FLAG: u64 = 0x0200_0000;
327pub(crate) const TNS_EXEC_FLAGS_IMPLICIT_RESULTSET: u32 = 0x8000;
328pub(crate) const TNS_BIND_USE_INDICATORS: u8 = 0x01;
329pub(crate) const TNS_BIND_ARRAY: u8 = 0x40;
330pub(crate) const TNS_BIND_DIR_INPUT: u8 = 32;
331pub(crate) const TNS_CHARSET_UTF8: u16 = 873;
332pub const TNS_MAX_LONG_LENGTH: u32 = 0x7fff_ffff;
333pub(crate) const TNS_ERR_NO_DATA_FOUND: u32 = 1403;
334pub(crate) const TNS_ERR_ARRAY_DML_ERRORS: u32 = 24381;
335pub(crate) const TNS_UDS_FLAGS_IS_JSON: u32 = 0x0000_0100;
337pub(crate) const TNS_UDS_FLAGS_IS_OSON: u32 = 0x0000_0800;
338pub(crate) const ORA_TYPE_SIZE_BINARY_DOUBLE: u32 = 8;
339pub(crate) const ORA_TYPE_SIZE_BINARY_FLOAT: u32 = 4;
340pub(crate) const ORA_TYPE_SIZE_BOOLEAN: u32 = 4;
341pub(crate) const TNS_ESCAPE_CHAR: u8 = 253;
346pub(crate) const ORA_TYPE_SIZE_NUMBER: u32 = 22;
347pub(crate) const ORA_TYPE_SIZE_DATE: u32 = 7;
348pub(crate) const ORA_TYPE_SIZE_INTERVAL_DS: u32 = 11;
349pub(crate) const ORA_TYPE_SIZE_INTERVAL_YM: u32 = 5;
350pub(crate) const ORA_TYPE_SIZE_ROWID: u32 = 18;
351pub(crate) const ORA_TYPE_SIZE_TIMESTAMP: u32 = 11;
352pub(crate) const ORA_TYPE_SIZE_TIMESTAMP_TZ: u32 = 13;
353pub(crate) const TNS_BASE64_ALPHABET: &[u8; 64] =
354 b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
355pub(crate) const TNS_HAS_REGION_ID: u8 = 0x80;
356pub(crate) const TZ_HOUR_OFFSET: u8 = 20;
357pub(crate) const TZ_MINUTE_OFFSET: u8 = 60;
358pub(crate) const NUMBER_AS_TEXT_CHARS: usize = 172;
359pub(crate) const NUMBER_MAX_DIGITS: usize = 40;
360
361pub(crate) const FAST_AUTH_PREFIX_HEX: &str = concat!(
362 "22010100010600707974686f6e2d6f7261636c6564620000000000000d0269036903033506000000",
363 "ea180018010100000000002990030703000100cf000004010000001000000c2000b80008640005003",
364 "e02000000000000030b0200000000000500000000000100010001000000020002000a000000080008",
365 "00010000000c000c000a0000001700170001000000180018000100000019001900010000001a001a",
366 "00010000001b001b000a0000001c001c00010000001d001d00010000001e001e00010000001f001f",
367 "0001000000200020000100000021002100010000000a000a00010000000b000b0001000000280028",
368 "00010000002900290001000000750075000100000078007800010000012201220001000001230123",
369 "00010000012401240001000001250125000100000126012600010000012a012a00010000012b012b",
370 "00010000012c012c00010000012d012d00010000012e012e00010000012f012f0001000001300130",
371 "00010000013101310001000001320132000100000133013300010000013401340001000001350135",
372 "000100000136013600010000013701370001000001380138000100000139013900010000013b013b",
373 "00010000013c013c00010000013d013d00010000013e013e00010000013f013f0001000001400140",
374 "00010000014101410001000001420142000100000143014300010000014701470001000001480148",
375 "000100000149014900010000014b014b00010000014d014d00010000014e014e00010000014f014f",
376 "00010000015001500001000001510151000100000152015200010000015301530001000001540154",
377 "00010000015501550001000001560156000100000157015700010000015801580001000001590159",
378 "00010000015a015a00010000015c015c00010000015d015d00010000016201620001000001630163",
379 "000100000167016700010000016b016b00010000017c017c00010000017d017d00010000017e017e",
380 "00010000017f017f0001000001800180000100000181018100010000018201820001000001830183",
381 "00010000018401840001000001850185000100000186018600010000018701870001000001890189",
382 "00010000018a018a00010000018b018b00010000018c018c00010000018d018d00010000018e018e",
383 "00010000018f018f0001000001900190000100000191019100010000019401940001000001950195",
384 "0001000001960196000100000197019700010000019d019d00010000019e019e00010000019f019f",
385 "0001000001a001a00001000001a101a10001000001a201a20001000001a301a30001000001a401a4",
386 "0001000001a501a50001000001a601a60001000001a701a70001000001a801a80001000001a901a9",
387 "0001000001aa01aa0001000001ab01ab0001000001ad01ad0001000001ae01ae0001000001af01af",
388 "0001000001b001b00001000001b101b10001000001c101c10001000001c201c20001000001c601c6",
389 "0001000001c701c70001000001c801c80001000001c901c90001000001ca01ca0001000001cb01cb",
390 "0001000001cc01cc0001000001cd01cd0001000001ce01ce0001000001cf01cf0001000001d201d2",
391 "0001000001d301d30001000001d401d40001000001d501d50001000001d601d60001000001d701d7",
392 "0001000001d801d80001000001d901d90001000001da01da0001000001db01db0001000001dc01dc",
393 "0001000001dd01dd0001000001de01de0001000001df01df0001000001e001e00001000001e101e1",
394 "0001000001e201e20001000001e301e30001000001e401e40001000001e501e50001000001e601e6",
395 "0001000001ea01ea0001000001eb01eb0001000001ec01ec0001000001ed01ed0001000001ee01ee",
396 "0001000001ef01ef0001000001f001f00001000001f201f20001000001f301f30001000001f401f4",
397 "0001000001f501f50001000001f601f60001000001fd01fd0001000001fe01fe0001000002010201",
398 "00010000020202020001000002040204000100000205020500010000020602060001000002070207",
399 "0001000002080208000100000209020900010000020a020a00010000020b020b00010000020c020c",
400 "00010000020d020d00010000020e020e00010000020f020f00010000021002100001000002110211",
401 "00010000021202120001000002130213000100000214021400010000021502150001000002160216",
402 "00010000021702170001000002180218000100000219021900010000021a021a00010000021b021b",
403 "00010000021c021c00010000021d021d00010000021e021e00010000021f021f0001000002300230",
404 "000100000235023500010000023c023c00010000023d023d00010000023e023e00010000023f023f",
405 "00010000024002400001000002420242000100000233023300010000023402340001000002430243",
406 "00010000024402440001000002450245000100000246024600010000024702470001000002480248",
407 "00010000024902490001000000030002000a000000040002000a0000000500010001000000060002",
408 "000a000000070002000a00000009000100010000000f000100010000002700270001000000440002",
409 "000a0000005b0002000a0000005e000100010000005f001700010000006000600001000000610060",
410 "000100000064006400010000006500650001000000660066000100000068000b00010000006a006a",
411 "00010000006c006d00010000006d006d00010000006e006f00010000006f006f0001000000700070",
412 "00010000007100710001000000720072000100000073007300010000007400660001000000770077",
413 "0001000000c600c600010000009200920001000000980002000a000000990002000a0000009a0002",
414 "000a0000009b000100010000009c000c000a000000ac0002000a000000b200b20001000000b300b3",
415 "0001000000b400b40001000000b500b50001000000b600b60001000000b700b70001000000b8000c",
416 "000a000000b900b90001000000ba00ba0001000000bb00bb0001000000bc00bc0001000000bd00bd",
417 "0001000000be00be0001000000c300700001000000c400710001000000c500720001000000d000d0",
418 "0001000000e700e70001000000e800e70001000000e900e90001000000f1006d0001000000fc00fc",
419 "00010000024e024e00010000024f024f000100000250025000010000026502650001000002660266",
420 "00010000026702670001000002680268000100000263026300010000026402640001000002510251",
421 "00010000025202520001000002530253000100000254025400010000025502550001000002560256",
422 "00010000025702570001000002580258000100000259025900010000025a025a00010000025b025b",
423 "00010000025c025c00010000025d025d00010000026e026e00010000026f026f0001000002700270",
424 "00010000027102710001000002720272000100000273027300010000027402740001000002750275",
425 "00010000027602760001000002770277000100000278027800010000027d027d00010000027e027e",
426 "00010000027c027c00010000027f027f0001000002970297000100000280028000010000028c028c",
427 "0001000002860286000100000287028700010000007f007f00010000029402940001000002950295",
428 "000100000299029900010000029d029d00010000029e029e000100000000"
429);
430
431pub(crate) const TNS_DURATION_MID: i64 = 0x8000_0000;
432pub(crate) const TNS_DURATION_OFFSET: i32 = 60;