nfTlWNl rn Ѻq$³*a}UvB}=oRf,_NgT|lu"]wO,lMZDzC>g~Lɪ (.sjN9/{yKHY.ot^e1&e`H^IlaݘAn0F!ANE)ڴj_4(hc>P}kD Kѷ3`=/MahI3 [ ]iXù+}kåJEgڠ_(ĉiHB-SĚz>q~E&iC}! `/F5T쒫c9GrpA2DD{q, ]iXù+}kåJEgi FT{^)j*"U8gVϻxþΒ.T$qI"X?bN9 K ׫V*҇7#۞?Ǩ&h$Q@A,-GpN3wO[ נs-ڡԊ\癫uAz NqjF;!J3՝/AP-mHJ+Lܔ`tyӦ%00b}W5ӫ߬Y;ڻ\VTuz=/8 aht|ˡũ[~J)E\3'o((Hs[iZCnڇj| EE<ӵ[-ƔFOi*?@)e"OZ*BpXXB;[Yy5vW|.=M=}6 Ѷ'cjqź%rT zֶ䏢U\E\HfdGx&:M_$=&WƿV<Մ fH;vˎȪYRGR#Urct ,3TV7137g ErB.)_~KF>wKw,jmZ]%8w^⋶m`[l=b՛ǾQ>KQ nZ:="*`t9cG?R}V-Cަ(a^d$TG>Yg~G椪gunZNo!fQP)p}; sn^[=3 xgSUp&945w,!shߘ6K0R8o>8Kq nHM;ILP 4q%z/2#2ϛ nlBX:>vʹYUgSFL4>0_>_k܎f" !fQP)p}ݨ][W\`}L3Os8sp)sBJ f).x 'hmE>Jwi8"1 StymrMN/vd0ײc.|d1Cx"+;*_~O;ppu0\G"ˡޚ{d!l{_./x]:ӫ#kwҌ#vv@y'q$tzV$HΪ|\'Ԅ.!Nis->validateFromTo($this->from, $this->to); return $this->from; } public function to(): CellAddress { // Re-order from/to in case the cell addresses have been modified $this->validateFromTo($this->from, $this->to); return $this->to; } public function __toString(): string { // Re-order from/to in case the cell addresses have been modified $this->validateFromTo($this->from, $this->to); if ($this->from->cellAddress() === $this->to->cellAddress()) { return "{$this->from->fullCellAddress()}"; } $fromAddress = $this->from->fullCellAddress(); $toAddress = $this->to->cellAddress(); return "{$fromAddress}:{$toAddress}"; } }