eSpeak NG is an open source speech synthesizer that supports more than hundred languages and accents.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

vi_rules 22KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331
  1. // replace combining (tone) accents with single characters
  2. .replace
  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. ð đ // Ð U+0d0
  64. ɖ đ // Ɖ U+189
  65. //================================
  66. // Consonants
  67. //================================
  68. .L01 t c ne nd k x s nt ch th me te le ce ny ry e o u re nch de p pe ph sh v ve ge r
  69. .L02 n a
  70. .L03 ch nh
  71. .L04 a u ă â o ô á à ả ã ạ ù ú ủ ũ ụ ắ ằ ẳ ẵ ặ ấ ầ ẩ ẫ ậ ó ò ỏ õ ọ ố ồ ổ ỗ ộ ư ứ ừ ử ữ ự ơ ớ ờ ở ỡ ợ
  72. .L05 o ó ò ỏ õ ọ ô ố ồ ộ ỗ ổ
  73. .group b
  74. b b
  75. _) b _b
  76. //b($w_alt2 _^_EN
  77. .group c
  78. c k //k
  79. c (C _^_EN
  80. c (_ c
  81. _) ch tS // try [tS;] [tS] [c] c
  82. ?2 _) ch c
  83. ?1 _) ch c
  84. ch (_ c
  85. ce (_ _^_EN
  86. _) cl _^_EN
  87. // c (L05 kh
  88. .group d
  89. d z // try [z] [J] [dZ] [dZ;] [J^]
  90. ?2 d J^
  91. ?1 d J^
  92. d (_ _^_EN
  93. .group đ
  94. // đ d
  95. _) đ d_
  96. .group f
  97. //f f
  98. _) f _^_EN
  99. f (_ _^_EN
  100. .group g
  101. g (L04 Q // try [g] [Q]
  102. gh Q // or [g] [Q]
  103. gi z // try [D] [z] [j] [J^] [z;] [J] [dZ]
  104. g (ì z
  105. g (í z
  106. g (ỉ z
  107. g (ĩ z
  108. g (ị z
  109. _) g _^_EN
  110. ?1 g (ì J^
  111. ?1 g (í J^
  112. ?1 g (ỉ J^
  113. ?1 g (ĩ J^
  114. ?1 g (ị J^
  115. ?2 g (ì J^
  116. ?2 g (í J^
  117. ?2 g (ỉ J^
  118. ?2 g (ĩ J^
  119. ?2 g (ị J^
  120. ?1 gi J^
  121. ?2 gi J^
  122. ?1 giết J^'iE3g
  123. ?2 giết J^'iE3g
  124. ?1 giếng J^'iE3N
  125. ?1 giềng J^'iE2N
  126. ?2 giếng J^'iE3N
  127. ?1 giêng J^'iE1N
  128. ?2 giêng J^'iE1N
  129. ?2 giềng J^'iE2N
  130. giết z'iE3t[
  131. giếc z'iE3kh
  132. giêng z'iE1N
  133. giềng z'iE2N
  134. giếng z'iE3N
  135. giểng z'iE4N
  136. giễng z'iE5N
  137. giệng z'iE6N
  138. ?1 giệt J^'iE6g
  139. giệt z'iE6t[
  140. giệc z'iE6kh
  141. _) gol _^_EN
  142. _) gat _^_EN
  143. ght (_ _^_EN
  144. .group h
  145. h h
  146. ?2 hu w
  147. .group j
  148. j Z
  149. .group k
  150. _) k k
  151. _) kh x
  152. //kh x
  153. k (_ _^_EN
  154. .group l
  155. l l
  156. l (_ _^_EN
  157. C) le _^_EN
  158. //le (A _^_EN
  159. .group m
  160. m m
  161. .group n
  162. n n
  163. ?1 n (_ N //n
  164. ?2 n (_ N
  165. ng N
  166. ngh N
  167. nh n^
  168. ?2 L02) nh n
  169. nd (_ _^_EN
  170. .group ñ
  171. ñ n^
  172. .group p
  173. p (C _^_EN
  174. p p
  175. ph f
  176. .group q
  177. q k
  178. q (_ k
  179. qu kw //kw
  180. quô ku@
  181. quồ ku@2
  182. quố ku@3
  183. quổ ku@4
  184. quỗ ku@5
  185. quộ ku@6
  186. .group r
  187. r z // try [z] [z.] [r] [z;]
  188. ?2 r Q
  189. ?1 r z.
  190. r (_ _^_EN
  191. rm (_ _^_EN
  192. .group s
  193. s s // try [s.] [s] [S]
  194. _) sh _^_EN
  195. s (_ _^_EN
  196. st (_ _^_EN
  197. .group t
  198. t t[
  199. ?1 t (_ kh
  200. ?2 t (_ kh
  201. th t
  202. tr tS //cr // try [cr] [tr] [tS;] [tS] [c] [dZ] [dz;]
  203. ?1 tr cr
  204. ?2 tr c
  205. ts (_ _^_EN
  206. th (_ _^_EN
  207. tt (_ _^_EN
  208. .group v
  209. v v
  210. ?2 v J^
  211. ve (A _^_EN
  212. .group w
  213. w w
  214. _) w _^_EN
  215. w (_ _^_EN
  216. .group x
  217. x s
  218. x (_ _^_EN
  219. .group z
  220. z z
  221. z (_ _^_EN
  222. //================================
  223. // Vowels
  224. //================================
  225. .group a
  226. a a:
  227. ai a:j
  228. aì a:j2
  229. aí a:j3
  230. aỉ a:j4
  231. aĩ a:j5
  232. aị a:j6
  233. ay aj
  234. ?2 ay a:I
  235. aý aj3
  236. aỷ aj4
  237. aỹ aj5
  238. aỵ aj6
  239. ao a:w
  240. aò a:w2
  241. aó a:w3
  242. aỏ a:w4
  243. aõ a:w5
  244. aọ a:w6
  245. au aw
  246. ?2 au a:U
  247. aù aw2
  248. aú aw3
  249. aủ aw4
  250. aũ aw5
  251. aụ aw6
  252. a (L01 _^_EN
  253. ai (L02 _^_EN
  254. a (@ _^_EN
  255. a (L03 e-
  256. .group à
  257. à a:2
  258. ài a:j2
  259. ày aj2
  260. ?2 ày a:I2
  261. à (L03 e-2
  262. ào a:w2
  263. àu aw2
  264. ?2 àu a:U2
  265. .group á
  266. á a:3
  267. ái a:j3
  268. áy aj3
  269. áo a:w3
  270. áu aw3
  271. ?2 áu a:U3
  272. ?2 áy a:I3
  273. á (L03 e-3
  274. .group ả
  275. ả a:4
  276. ải a:j4
  277. ảy aj4
  278. ảo a:w4
  279. ảu aw4
  280. ?2 ảu a:U4
  281. ?2 ảy a:I4
  282. ả (L03 e-4
  283. .group ã
  284. ã a:5
  285. ãi a:j5
  286. ãy aj5
  287. ão a:w5
  288. ãu aw5
  289. ?2 ãu a:U5
  290. ?2 ãy a:I5
  291. ã (L03 e-5
  292. .group ạ
  293. ạ a:6
  294. ại a:j6
  295. ạy aj6
  296. ạo a:w6
  297. ạu aw6
  298. ?2 ạu a:U6
  299. ?2 ạy a:I6
  300. ạ (L03 e-6
  301. //================================
  302. .group ă
  303. ă a
  304. .group ằ
  305. ằ a2
  306. .group ắ
  307. ắ a3
  308. ắk a3c
  309. .group ẳ
  310. ẳ a4
  311. .group ẵ
  312. ẵ a5
  313. .group ặ
  314. ặ a6
  315. //=================================
  316. .group â
  317. â @
  318. ây @I
  319. âu @U1
  320. ?2 â (L03 a
  321. ?1 â (L03 a
  322. .group ầ
  323. ầ @2
  324. ầy @I2
  325. ầu @U2
  326. ?2 ầ (L03 a2
  327. ?1 ầ (L03 a2
  328. .group ấ
  329. ấ @3
  330. ấy @I3
  331. ấu @U3
  332. ?2 ấ (L03 a3
  333. ?1 ấ (L03 a3
  334. .group ẩ
  335. ẩ @4
  336. ẩy @I4
  337. ẩu @U4
  338. .group ẫ
  339. ẫ @5
  340. ẫy @I5
  341. ẫu @U5
  342. .group ậ
  343. ậ @6
  344. ậy @I6
  345. ậu @U6
  346. ?2 ậ (L03 a6
  347. ?1 ậ (L03 a6
  348. //===========================
  349. .group e
  350. e E
  351. eo EU
  352. eò EU2
  353. eó EU3
  354. eỏ EU4
  355. eỗ EU5
  356. eọ EU6
  357. e (L01 _^_EN
  358. ey (_ _^_EN
  359. e (@ _^_EN
  360. .group è
  361. è E2
  362. èo EU2
  363. .group é
  364. é E3
  365. éo EU3
  366. .group ẻ
  367. ẻ E4
  368. ẻo EU4
  369. .group ẽ
  370. ẽ E5
  371. ẽo EU5
  372. .group ẹ
  373. ẹ E6
  374. ẹo EU6
  375. //============================
  376. .group ê
  377. ê e
  378. êu eU1
  379. ?2 ê (L03 @:
  380. ?2 ê (L02 @:
  381. .group ề
  382. ề e2
  383. ều eU2
  384. ?2 ề (L03 @:2
  385. ?2 ề (L02 @:2
  386. .group ế
  387. ế e3
  388. ếu eU3
  389. ?2 ế (L03 @:3
  390. ?2 ế (L02 @:3
  391. .group ể
  392. ể e4
  393. ểu eU4
  394. ?2 ể (L03 @:4
  395. ?2 ể (L02 @:4
  396. .group ễ
  397. ễ e5
  398. ễu eU5
  399. ?2 ễ (L03 @:5
  400. ?2 ễ (L02 @:5
  401. .group ệ
  402. ệ e6
  403. ệu eU6
  404. ?2 ệ (L03 @:6
  405. ?2 ệ (L02 @:6
  406. //============================
  407. .group i
  408. i i
  409. A) i j
  410. ia i@
  411. ià i@2
  412. iá i@3
  413. iả i@4
  414. iã i@5
  415. iạ i@6
  416. iê iE
  417. iề iE2
  418. iế iE3
  419. iể iE4
  420. iễ iE5
  421. iệ iE6
  422. iu iU
  423. iù iU2
  424. iú iU3
  425. iủ iU4
  426. iũ iU5
  427. iụ iU6
  428. iêu iEw
  429. iều iEw2
  430. iếu iEw3
  431. iểu iEw4
  432. iễu iEw5
  433. iệu iEw6
  434. i (L01 _^_EN
  435. i (@ _^_EN
  436. ?2 i (L03 @
  437. ?1 i (L03 @
  438. ?2 i (L02 @
  439. .group ì
  440. ì i2
  441. ì (A j2
  442. ìa i@2
  443. ìu iU2
  444. ?2 ì (L03 @2
  445. ?1 ì (L03 @2
  446. ?2 ì (L02 @2
  447. .group í
  448. í i3
  449. í (A j3
  450. ía i@3
  451. íu iU3
  452. ?2 í (L03 @3
  453. ?1 í (L03 @3
  454. ?2 í (L02 @3
  455. .group ỉ
  456. ỉ i4
  457. ỉ (A j4
  458. ỉa i@4
  459. ỉu iU4
  460. ?2 ỉ (L03 @4
  461. ?1 ỉ (L03 @4
  462. ?2 ỉ (L02 @4
  463. .group ĩ
  464. ĩ i5
  465. ĩ (A j5
  466. ĩa i@5
  467. ĩu iU5
  468. ?2 ĩ (L03 @5
  469. ?1 ĩ (L03 @5
  470. ?2 ĩ (L02 @5
  471. .group ị
  472. ị i6
  473. ị (A j6
  474. ịa i@6
  475. ịu iU6
  476. ?2 ị (L03 @6
  477. ?1 ị (L03 @6
  478. ?2 ị (L02 @6
  479. //=========================
  480. .group o
  481. o O
  482. o (A w
  483. oi Oj
  484. oo O
  485. ong O#N
  486. oc O#k
  487. .group ò
  488. ò O2
  489. òa o@2 //ò (A w2
  490. òng O#N2
  491. òe wE2
  492. .group ó
  493. ó O3
  494. óa o@3 //ó (A w3
  495. óng O#N3
  496. óe wE3
  497. óc O#3k
  498. .group ỏ
  499. ỏ O4
  500. ỏa o@4 //ỏ (A w4
  501. ỏng O#N4
  502. ỏe wE4
  503. .group õ
  504. õ O5
  505. õa o@5 //õ (A w5
  506. õng O#N5
  507. õe wE5
  508. .group ọ
  509. ọ O6
  510. ọa o@6 //ọ (A w6
  511. ọng O#N6
  512. ọe wE6
  513. ọc O#6k
  514. //=============================
  515. .group ô
  516. ô o
  517. ôi oI
  518. ông o#N // ông sound
  519. ?2 ôi O- //south dialect
  520. ôc o#k
  521. .group ồ
  522. ồ o2
  523. ồi oI2
  524. ồng o#N2
  525. ?2 ồi O-2
  526. .group ố
  527. ố o3
  528. ối oI3
  529. ống o#N3
  530. ?2 ối O-3
  531. ốc o#3k
  532. .group ổ
  533. ổ o4
  534. ổi oI4
  535. ổng o#N4
  536. ?2 ổi O-4
  537. .group ỗ
  538. ỗ o5
  539. ỗi oI5
  540. ỗng o#N5
  541. ?2 ỗi O-5
  542. .group ộ
  543. ộ o6
  544. ội oI6
  545. ộng o#N6
  546. ?2 ội O-6
  547. ộc o#6k
  548. //=============================
  549. .group ơ
  550. ơ @:
  551. ơi @:I
  552. ơu @:U
  553. ?2 ơi @- //south dialect
  554. .group ờ
  555. ờ @:2
  556. ời @:I2
  557. ờu @:U2
  558. ?2 ời @-2
  559. .group ớ
  560. ớ @:3
  561. ới @:I3
  562. ớu @:U3
  563. ?2 ới @-3
  564. .group ở
  565. ở @:4
  566. ởi @:I4
  567. ởu @:U4
  568. ?2 ởi @-4
  569. .group ỡ
  570. ỡ @:5
  571. ỡi @:I5
  572. ỡu @:U5
  573. ?2 ỡi @-5
  574. .group ợ
  575. ợ @:6
  576. ợi @:I6
  577. ợu @:U6
  578. ?2 ợi @-6
  579. //=============================
  580. .group u
  581. u u
  582. u (A w
  583. A) u w
  584. gi) u u
  585. ui uI
  586. uì uI2
  587. uí uI3
  588. uỉ uI4
  589. uĩ uI5
  590. uị uI6
  591. ua u@
  592. uà u@2
  593. uá u@3
  594. uả u@4
  595. uã u@5
  596. uạ u@6
  597. uô u@
  598. uồ u@2
  599. uố u@3
  600. uổ u@4
  601. uỗ u@5
  602. uộ u@6
  603. uôi u@j
  604. uồi u@j2
  605. uối u@j3
  606. uổi u@j4
  607. uỗi u@j5
  608. uội u@j6
  609. //ung u#
  610. u (L01 _^_EN
  611. u (@ _^_EN
  612. // ua (L01 _^_EN
  613. ?2 u u-
  614. .group ù
  615. ù u2
  616. ù (A u2
  617. ùy ui2
  618. ùi uI2
  619. ùa u@2
  620. //ùng u#2
  621. ?2 ù u-2
  622. .group ú
  623. ú u3
  624. ú (A u3
  625. úy ui3
  626. úi uI3
  627. úa u@3
  628. //úng u#3
  629. ?2 ú u-3
  630. .group ủ
  631. ủ u4
  632. ủ (A u4
  633. ủy ui4
  634. ủi uI4
  635. ủa u@4
  636. //ủng u#4
  637. ?2 ủ u-4
  638. .group ũ
  639. ũ u5
  640. ũ (A u5
  641. ũy ui5
  642. ũi uI5
  643. ũa u@5
  644. //ũng u#5
  645. ?2 ũ u-5
  646. .group ụ
  647. ụ u6
  648. ụ (A u6
  649. ụy ui6
  650. ụi uI6
  651. ụa u@6
  652. //ụng u#6
  653. ?2 ụ u-6
  654. //=============================
  655. .group ư
  656. ư y
  657. ưi yI
  658. ưa y@
  659. ươ y@
  660. ườ y@2
  661. ướ y@3
  662. ưở y@4
  663. ưỡ y@5
  664. ượ y@6
  665. ưu yw
  666. ươi y@j
  667. ười y@j2
  668. ưới y@j3
  669. ưởi y@j4
  670. ưỡi y@j5
  671. ượi y@j6
  672. ươu y@w
  673. ườu y@w2
  674. ướu y@w3
  675. ưởu y@w4
  676. ưỡu y@w5
  677. ượu y@w6
  678. .group ừ
  679. ừ y2
  680. ừi yI2
  681. ừa y@2
  682. ừu y2w2
  683. .group ứ
  684. ứ y3
  685. ứi yI3
  686. ứa y@3
  687. ứu y3w3
  688. .group ử
  689. ử y4
  690. ửi yI4
  691. ửa y@4
  692. ửu y4w4
  693. .group ữ
  694. ữ y5
  695. ữi yI5
  696. ữa y@5
  697. ữu y5w5
  698. .group ự
  699. ự y6
  700. ựi yI6
  701. ựa y@6
  702. ựu y6w6
  703. //=============================
  704. .group y
  705. y i
  706. // y (A j
  707. ya i@
  708. yà i@2
  709. yá i@3
  710. yả i@4
  711. yã i@5
  712. yạ i@6
  713. yê iE
  714. yề iE2
  715. yế iE3
  716. yể iE4
  717. yễ iE5
  718. yệ iE6
  719. // yêu i@U
  720. y (L01 _^_EN
  721. bu) y _^_EN
  722. .group ỳ
  723. ỳ i2
  724. ỳ (A j2
  725. ỳa i@2
  726. .group ý
  727. ý i3
  728. ý (A j3
  729. ýa i@3
  730. .group ỷ
  731. ỷ i4
  732. ỷ (A j4
  733. ỷa i@4
  734. .group ỹ
  735. ỹ i5
  736. ỹ (A j5
  737. ỹa i@5
  738. .group ỵ
  739. ỵ i6
  740. ỵ (A j6
  741. ỵa i@6
  742. //=============================
  743. .group 0xce // Greek letters
  744. // 0xce is the first byte of the utf-8 code for these characters
  745. α a:1n_|f'a:1
  746. ά a:1n_|f'a:1
  747. β b'e1_|t['a:1
  748. γ Q'a:1_|m'a:1
  749. δ J'E1n_|t['a:1
  750. ε E1p_|s'i1_|l'O1n
  751. έ E1p_|s'i1_|l'O1n
  752. ζ D'e1_|t['a:1
  753. η e1_|t['a:1
  754. ή e1_|t['a:1
  755. θ t'e1_|t['a:1
  756. ι i1_|'o1_|t['a:1
  757. ί i1_|'o1_|t['a:1
  758. κ k'a:1p_|p'a:1
  759. λ l'a1m_|_d'a:1
  760. μ mw'i1
  761. ν nw'i1
  762. ξ s'i7
  763. ο o1_|m'i1_|kz.'O7n
  764. .group 0xcf // Greek letters
  765. π p'i1
  766. ρ z.'o1
  767. σ s'i3c_|m'a:1
  768. ς s'i3c_|m'a:1
  769. τ t['o1
  770. υ u1p_|s'i1_|l'O1n
  771. ύ u1p_|s'i1_|l'O1n
  772. φ f'i1
  773. χ c'i1
  774. ψ ps'i1
  775. ω o1_|m'e1_|Q'a:7
  776. ώ o1_|m'e1_|Q'a:7
  777. ό o1_|m'i1_|kz.'O7n
  778. .group
  779. % f'@2n||tS'am
  780. ! _:tS'@3m_|t'a:7n_:
  781. ! (\!
  782. // : koUl@n
  783. D_) h (_DD_ D'@:2 // omit colon in time, eg: 2:30
  784. $ d'o||l'a
  785. != x'o#_|_b'a2N_
  786. >= l'@:3n_|h'@:1n_|hw,a6kh_b'a2N
  787. <= n^'O4_|h'@:1n_|hw,a6kh_b'a2N
  788. __) - (_D tS'y2
  789. A_) - (_D _
  790. C_) - (_D _
  791. . tS'@3m_
  792. . (. _:
  793. \.) .