package Ġio . h armor . msg pack Ċ Ċ import Ġio . h armor . msg pack . internal . MessageType . ARRAY 1 6 Ċ import Ġio . h armor . msg pack . internal . MessageType . ARRAY 3 2 Ċ import Ġio . h armor . msg pack . internal . MessageType . FIX ARRAY Ċ import Ġio . h armor . msg pack . internal . repeat Ċ import Ġkotlin . experimental . and Ċ import Ġkotlin . ranges . contains Ċ Ċ public Ġinterface ĠArray Un packer Ġ{ ĊĠĠĠ Ġpublic Ġfun Ġnext Array Size (): ĠLong Ċ } Ċ Ċ internal Ġclass ĠDefault Array Un packer ( private Ġval Ġsource : ĠSource ) Ġ: ĠArray Un packer Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġnext Array Size (): ĠLong Ġ= Ġwhen Ġ( val Ġtype Ġ= Ġsource . read ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġin ĠFIX ARRAY Ġ-> Ġ( type Ġand Ġ 0 x 0 f ). to U Byte (). to Long () ĊĠĠĠĠĠĠĠ ĠARRAY 1 6 Ġ-> Ġsource . read U Short (). to Long () ĊĠĠĠĠĠĠĠ ĠARRAY 3 2 Ġ-> Ġsource . read UInt (). to Long () ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠMessageType Exception (" array ", Ġtype ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ public Ġfun ĠMessage Un packer . next Array (): ĠArray Value Ġ= Ġmsg pack . array Ġ{ ĊĠĠĠ Ġrepeat ( next Array Size ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġ+ nextElement () ĊĠĠĠ Ġ} Ċ }