package Ġcom . ba ul supp . ok url . security Ċ Ċ import Ġcom . ba ul supp . sch output . Usage Exception Ċ import Ġokhttp 3 . Certificate P inner Ċ Ċ class ĠCertificate Pin ( pattern And Pin : ĠString ) Ġ{ ĊĠ Ġval Ġpattern : ĠString ĊĠ Ġprivate Ġval Ġpin : ĠString ? ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġval Ġparts Ġ= Ġpattern And Pin . split (" :" . to Regex (), Ġ 2 ). to Typed Array () ĊĊĠĠĠ Ġpattern Ġ= Ġparts [ 0 ] ĊĠĠĠ Ġpin Ġ= Ġif Ġ( parts . size Ġ== Ġ 2 ) Ġparts [ 1 ] Ġelse Ġnull ĊĠ Ġ} ĊĊĠ Ġfun Ġget Pin (): ĠString Ġ{ ĊĠĠĠ Ġif Ġ( pin Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġthrow ĠUsage Exception ( ĊĠĠĠĠĠĠĠ Ġ"-- certificate Pin Ġexpects Ġhost : AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA AAAA AAA " ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġpin ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠ Ġfun Ġbuild From CommandLine ( pins : ĠList < Certificate Pin >): ĠCertificate P inner Ġ{ ĊĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠCertificate P inner . Builder () ĊĊĠĠĠĠĠ Ġpins . groupBy Ġ{ Ġit . pattern Ġ}. forEach Ġ{ Ġ( pattern , Ġpins ) Ġ-> ĊĠĠĠĠĠĠĠ Ġbuilder . add ( pattern , Ġ* pins . map Ġ{ Ġit . pin !! Ġ}. to Typed Array ()) ĊĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġreturn Ġbuilder . build () ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ