Caml1999I037 &D -Stdlib__Uchar!t/;@@@A@@@@@)uchar.mliTddUkx@)immediateUkn Ukw@@ Ukk @@A@@@A@#min0@@@@]pp]p{@@#A@@#max1 @@@@$`%`@@/B@@#bom2@@@@0c1c@@;C@@#rep3%@@@@@@@@@@@ @@@@@@@@@@@@@$\ * *%\ * D@@/O@@'compare?@@@@@@@$@@@@@@@@@@@@@?_ g g@_ g @@JP@@+seeded_hash@@@@@@@@@@@@@@@@@@@@@@[b  \b  @@fQ@@$hashA@T@@@@@@@@@@@oi  pi  @@zR@@*utf_decodeB;@@@A@@@@@yu==zu=Z@)immediateu=Pu=Y@@u=M @@A@S@A@3utf_decode_is_validC@@@@@@@@@@@@yy@@T@@0utf_decode_ucharD@@@@@@@@@@@@}jj}j@@U@@1utf_decode_lengthE@(@@@@@L@@@@@@D@@V@@*utf_decodeF@]@@@@@@@@@@@G@@@@@@@@@@W@@2utf_decode_invalidG@x@@@@@[@@@@@@@@X@@;utf_8_decode_length_of_byteH@#@@@@@@@@@@@@@Y@@7max_utf_8_decode_lengthI@@@@ @@Z@@1utf_8_byte_lengthJ@ @@@@@@@@@@@$%@@/[@@2utf_16_byte_lengthK@@@@@@@@@@@@8  9 -@@C\@@@k:.-Stdlib__Uchar0=H^V9>ɠ&Stdlib0t0VoS%{<F:8CamlinternalFormatBasics0|.e1R$|o@@@Caml1999T037Yp l4/eC-Stdlib__Uchar*ocaml.text&_none_@@A & Unicode characters. @since 4.03 )uchar.mliP77RPb@@@@@@3@@@@@@#intA;@@#intA@@@@@;@A@$charB;@@$charA@@@@@A@A@&stringQ;@@&stringA@@@@@G@@@%bytesC;@@%bytesA@@@@@M@@@%floatD;@@%floatA@@@@@S@@@$boolE;@@%falsec@@]@$trued@@c@@@A@@@@@d@A@$unitF;@@"()e@@n@@@A@@@@@o@A@ #exnG;@@@A@@@@@s@@@#effH;@@O@A@A@@@@@@|@@@,continuationI;@@Q@@P@B,continuationA@nY@@@@@@@@@%arrayJ;@@R@A%arrayA@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@A@Y@@@@@@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@)nativeintA@@@@@@@@%int32N;@@%int32A@@@@@@@@%int64O;@@%int64A@@@@@@@@&lazy_tP;@@X@A&lazy_tA@Y@@@@@@@@ 5extension_constructorR;@@5extension_constructorA@@@@@@@@*floatarrayS;@@*floatarrayA@@@@@@@@&iarrayT;@@Y@A&iarrayA@Y@@@@@@@@ *atomic_locU;@@Z@A*atomic_locA@@@@@@ @@@ .Assert_failure`#@@@@@J@@@@@@@@[@@A!=ocaml.warn_on_literal_pattern%@&@0Division_by_zero]#@@@A+ . .@+End_of_file\#$@@@A366@'FailureY#,@'@@A<??@0Invalid_argumentX#5@0@@AE$H#H@-Match_failureV#>@@=@9@;@@a@@AV5Y4Y@)Not_foundZ#O@@@A^=a<a@-Out_of_memoryW#W@@@AfEiDi@.Stack_overflow^#_@@@AnMqLq@.Sys_blocked_io_#g@@@AvUyTy@)Sys_error[#o@j@@A^]@:Undefined_recursive_modulea#x@@w@s@u@@h@@Aon@:Continuation_already_takenb#@@@Awv@&Stdlib@AA+!tATdiTdj@@;@@@A@@@@@TddUkx@)immediateUknUkw@@Ukk @)ocaml.doc The type for Unicode characters. A value of this type represents a Unicode {{:http://unicode.org/glossary/#unicode_scalar_value}scalar value} which is an integer in the ranges [0x0000]...[0xD7FF] or [0xE000]...[0x10FFFF]. Vyy[Qn@@@@@@@A@@@@@A@@ѐ@@@@@@@ɰ-,@#min]pt]pw@гC!t]pz]p{@@ @@@{3@NH@A@@@]pp @=2 [min] is U+0000. ^||^|@@@@@@@A@@@M @@@@@@!#max ` `@гz!t``@@ @@@|3@8K6@A@@@` @t4 [max] is U+10FFFF. ,a-a@@@@@@@EB@@@@@@@@@@!#bomCcDc@г!tLcMc@@ @@@}3NMMNNNNN@8K6@A@@@Vc @ [bom] is U+FEFF, the {{:http://unicode.org/glossary/#byte_order_mark}byte order mark} (BOM) character. @since 4.06 cddh<N@@@@@@@|C@@@w@@@@@@!#repzjPT{jPW@г蠐!tjPZjP[@@ @@@~3@8K6@A@@@jPP @␠ } [rep] is U+FFFD, the {{:http://unicode.org/glossary/#replacement_character}replacement} character. @since 4.06 k\\o@@@@@@@D@@@@@@@@@!$succqq@б@г!!tqq@@ @@@3@:M8@A@@г0!tqq@@ @@@@@@@@@@ @@@q @- [succ u] is the scalar value after [u] in the set of Unicode scalar values. @raise Invalid_argument if [u] is {!max}. ruGw@@@@@@@E@@@=@@@@@@3$predwy}wy@б@гl!twywy@@ @@@3      @La8@A@@г{!twywy@@ @@@@@@@@@@ @@@#wyy @x [pred u] is the scalar value before [u] in the set of Unicode scalar values. @raise Invalid_argument if [u] is {!min}. 0x1{@@@@@@@IF@@@D@@@@@@3(is_validG}H}@б@г%#intR}"S}%@@ @@@3TSSTTTTT@La8@A@@г$boola})b}-@@ @@@@@@@@@@ @@@n} @Ð [is_valid n] is [true] if and only if [n] is a Unicode scalar value (i.e. in the ranges [0x0000]...[0xD7FF] or [0xE000]...[0x10FFFF]).{~..|v@@@@@@@G@@@@@@@@@3&of_intAA@б@гp#intAA@@ @@@3@La8@A@@г!tAA@@ @@@@@@@@@@ @@@A @ m [of_int i] is [i] as a Unicode character. @raise Invalid_argument if [i] does not satisfy {!is_valid}. BD  H@@@@@@@H@@@ڐ@@@@@@3琠"/*F J JF J Q@@@@@@3@EZ1@A-unsafe_of_intG R VG R c@б@гΠ#intG R fG R i@@ @@@@@гm!tG R m G R n@@ @@@'@@@@@@@, @@@G R R @@-I@@@@2+*"/*'H o o(H o v@@@@@@3&%%&&&&&@D?@A&to_int3J x |4J x @б@г!t>J x ?J x @@ @@@@@г#intKJ x LJ x @@ @@@'@@@@@@@, @@@XJ x x @ " [to_int u] is [u] as an integer. eK  fK  @@@@@@@~J@@@y@@@@@@K'is_char|M  }M  @б@г점!tM  M  @@ @@@3@d_8@A@@гK$boolM  M  @@ @@@@@@@@@@ @@@M   @ G [is_char u] is [true] if and only if [u] is a latin1 OCaml character. N  N  @@@@@@@K@@@Đ@@@@@@3'of_charP  !P  (@б@г$charP  +P  /@@ @@@3@La8@A@@гF!tP  3P  4@@ @@@@@@@@@@ @@@P   @C , [of_char c] is [c] as a Unicode character. Q 5 5Q 5 f@@@@@@@L@@@S@@@@@@3'to_charS h lS h s@б@г!tS h vS h w@@ @@@3@La8@A@@г$char,S h {-S h @@ @@@@@@@@@@ @@@9S h h @ s [to_char u] is [u] as an OCaml latin1 character. @raise Invalid_argument if [u] does not satisfy {!is_char}. FT  GV  @@@@@@@_M@@@Z@@@@@@3hg"/*dX  eX  @@@@@@3cbbccccc@EZ1@A.unsafe_to_char pY  qY  @б@гࠐ!t{Y  |Y  @@ @@@@@гU$charY  Y  @@ @@@'@@@@@@@, @@@Y   @@N@@@@2"/*Z ! !Z ! (@@@@@@3@D?@A%equal!\ * .\ * 3@б@г#!t\ * 6\ * 7@@ @@@@@б@г2!t\ * ;\ * <@@ @@@)@@г$bool\ * @\ * D@@ @@@6@@@@@@@; @@@)@@ @@@,@@@\ * *@A; [equal u u'] is [u = u']. ] E E] E e@@@@@@@O@@"@Q @@@@@@_'compare"_ g k_ g r@б@г!t_ g u_ g v@@ @@@3@xs8@A@@б@г!t,_ g z-_ g {@@ @@@@@г #int9_ g :_ g @@ @@@@@@@@@@# @@@+@@ @@(.@@@K_ g g@ * [compare u u'] is [Stdlib.compare u u']. X`  Y`  @@@@@@@qP@@"@l@@@@@@G+seeded_hash#ob  pb  @б@гM#intzb  {b  @@ @@@3|{{|||||@`u8@A@@б@г!tb  b  @@ @@@@@гk#intb  b  @@ @@@@@@@@@@# @@@+@@ @@(.@@@b  @ [seeded_hash seed u] A seeded hash function with the same output value as {!Hashtbl.seeded_hash}. This function allows this module to be passed as an argument to the functor {!Hashtbl.MakeSeeded}. @since 5.3 c  g  @@@@@@@Q@@"@ː@@@@@@G$hash$i  i  @б@г>!ti  i  @@ @@@3@`u8@A@@г#inti  i  @@ @@@@@@@@@@ @@@i   @J 5 An unseeded hash function with the same output value as {!Hashtbl.hash}. This function allows this module to be passed as an argument to the functor {!Hashtbl.Make}. @before 5.3 The hashing algorithm was different. Use [Hashtbl.rebuild] for stored tables which used this hashing function j  o  @@@@@@@R@@@Z@@@@@@3$# + {1:utf UTF codecs tools} @since 4.14  q  !s);@@@@@@3@EZ1@AA+*utf_decode%B-u=B.u=L@@;@@A@@@@@1u==2u=Z@)immediate8u=P9u=Y@@<u=M @ The type for UTF decode results. Values of this type represent the result of a Unicode Transformation Format decoding attempt. Iv[[Jw@@@@@@@A@bS@@@A@@`@@@@@@@9+*@3utf_decode_is_valid&dyey@б@гB*utf_decodeoypy @@ @@@3qppqqqqq@SMG@A@@г3$bool~yy@@ @@@@@@@@@@ @@@y @ P [utf_decode_is_valid d] is [true] if and only if [d] holds a valid decode. z{Zh@@@@@@@T@@@@@@@@@30utf_decode_uchar'}jn}j~@б@г*utf_decode}j}j@@ @@@3@La8@A@@г.!t}j}j@@ @@@@@@@@@@ @@@}jj @+ [utf_decode_uchar d] is the Unicode character decoded by [d] if [utf_decode_is_valid d] is [true] and {!Uchar.rep} otherwise. ~@@@@@@@U@@@;@@@@@@31utf_decode_length(0@б@гؠ*utf_decode3=@@ @@@3@La8@A@@г砐#intAD@@ @@@@@@@@@@ @@@! @v I [utf_decode_length d] is the number of elements from the source that were consumed by the decode [d]. This is always strictly positive and smaller or equal to [4]. The kind of source elements depends on the actual decoder; for the decoders of the standard library this function always returns a length in bytes. .EE/U@@@@@@@GV@@@B@@@@@@3*utf_decode)EF@б@г##intPQ@@ @@@3RQQRRRRR@La8@A@@б@гƠ!tab@@ @@@@@гA*utf_decodeno@@ @@@@@@@@@@# @@@+@@ @@(.@@@@Ր [utf_decode n u] is a valid UTF decode for [u] that consumed [n] elements from the source for decoding. [n] must be positive and smaller or equal to [4] (this is not checked by the module). F@@@@@@@W@@"@@@@@@@G2utf_decode_invalid*@б@г#int@@ @@@3@`u8@A@@г*utf_decode@@ @@@@@@@@@@ @@@ @  [utf_decode_invalid n] is an invalid UTF decode that consumed [n] elements from the source to error. [n] must be positive and smaller or equal to [4] (this is not checked by the module). The resulting decode has {!rep} as the decoded Unicode character. @@@@@@@X@@@0쐠@@@@@@3;utf_8_decode_length_of_byte+@б@гǠ$char@@ @@@3@La8@A@@гܠ#int  @@ @@@@@@@@@@ @@@  @k [utf_8_decode_length_of_byte byte] is the number of bytes, from 1 to {!max_utf_8_decode_length}, that a valid UTF-8 decode starting with byte [byte] would consume or [0] if [byte] cannot start a valid decode. @since 5.4  # $@@@@@@@ @0=H^V9>A]C@߰g'u@@2ʰ&bɐ@>z&7sn | @`U@(T I q@@!]@Ұ@@V@'#@m@@ & N@@P@@