package Ġcom . github . m ichael bull . ad vent 2 0 2 1 . day 5 Ċ Ċ import Ġcom . github . m ichael bull . ad vent 2 0 2 1 . P uzzle Ċ import Ġcom . github . m ichael bull . ad vent 2 0 2 1 . math . Vector 2 Range Ċ Ċ object ĠDay 5 Ġ: ĠP uzzle < Sequence < Vector 2 Range >, ĠInt >( day Ġ= Ġ 5 ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġparse ( input : ĠSequence < String >): ĠSequence < Vector 2 Range > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinput . to Vent Lines () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsolutions () Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠDay 5 :: part 1 , ĊĠĠĠĠĠĠĠ ĠDay 5 :: part 2 ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġpart 1 ( lines : ĠSequence < Vector 2 Range >): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlines ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . is Horizontal Ġ|| Ġit . is Vertical Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Vent Grid () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. overlap s ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpart 2 ( lines : ĠSequence < Vector 2 Range >): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlines ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . is Horizontal Ġ|| Ġit . is Vertical Ġ|| Ġit . is Diag onal Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Vent Grid () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. overlap s ĊĠĠĠ Ġ} Ċ } Ċ