package Ġeu . qi ou . aaf 4 k . sche m ata Ċ Ċ class ĠC itation Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlist : ĠMutable List < C itations > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġoperator Ġfun Ġplus ( cit ations : ĠC itations ): ĠC itation Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( cit ations ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġplus ( cit ations : ĠC itation ): ĠC itation Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . addAll ( cit ations . list ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġcontains ( cit ations : ĠC itation ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . list . size Ġ>= Ġcit ations . list . size ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġcit ations . list . take ( this . list . size ). zip ( this . list ). all Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . first Ġ== Ġit . second ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlist . map Ġ{ Ġit . toString () Ġ}. reduce Ġ{ Ġacc , Ġs Ġ-> Ġ"$ acc Ġ$ s " Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġis ĠC itation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( list . size Ġ== Ġother . list . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlist . zip ( other . list ). all Ġ{ Ġit . first Ġ== Ġit . second Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ Ċ }