package Ġv ood oo Ċ Ċ import Ġkotlinx . serialization . Pol ymorphic Ċ import Ġkotlinx . serialization . Serial Name Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġv ood oo . pack . File Entry Ċ Ċ @ Serializable Ċ sealed Ġclass ĠBase ( ĊĠĠĠ Ġval Ġbase Prop : ĠString Ġ= Ġ" default " Ċ ) Ġ{ ĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġ@ Serial Name (" test ") ĊĠĠĠ Ġclass ĠTest ( ĊĠĠĠĠĠĠĠ Ġval Ġtest Prop : ĠString Ġ= Ġ" test Prop " ĊĠĠĠ Ġ): ĠBase () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsuper . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // fun Ġmain ( args : ĠArray < String >) Ġ{ Ċ // ĠĠĠ Ġval Ġdecoded Ġ= ĠJson . decode FromString ( Base . serializer (), Ċ // ĠĠĠĠĠĠĠ Ġ""" Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" type ": Ġ" test ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" base Prop ": Ġ" different Ġvalue ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" test Prop ": Ġ" test Ġvalue " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ""" . trim Indent () Ċ // ĠĠĠĠĠĠĠ Ġ) Ċ // Ċ // ĠĠĠ Ġrequire ( decoded . base Prop Ġ== Ġ" different Ġvalue ") Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġ" de coding Ġfailed " Ċ // ĠĠĠ Ġ} Ċ //} Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġval Ġdecoded Ġ= ĠJson . decode FromString ( File Entry . serializer (), ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ{ ĊĠĠĠĠĠ Ġ" type ": Ġ" cur se ", ĊĠĠĠĠĠ Ġ" projectName ": Ġ" Fabric 1 6 / tab - inventory - fabric ", ĊĠĠĠĠĠ Ġ" valid Mc Versions ": Ġ[" 1 . 1 6 ", Ġ" 1 . 1 6 . 1 ", Ġ" 1 . 1 6 . 2 ", Ġ" 1 . 1 6 . 3 "] ĊĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠFile Entry . Cur se ĊĊĠĠĠ Ġrequire ( decoded . valid Mc Versions . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" de coding Ġfailed " ĊĠĠĠ Ġ} Ċ }