le0ytruelesx0falselesxsylexyminus0y0minussxyif_minuslesxysxyif_minustruesxy0if_minusfalsesxysminusxymod0y0modsx00modsxsyif_modleyxsxsyif_modtruesxsymodminusxysyif_modfalsesxsysxlesxsylexyminussxyif_minuslesxysxyminussxylesxyif_minusfalsesxyminusxymodsxsyif_modleyxsxsymodsxsyleyxif_modtruesxsymodminusxysyif_modtruesxsyminusxytrueif_modtruesxsymodminusxysymodsxsyif_modleyxsxsytrue123451if_mod312true00s1111mod2111minus211le20000false00if_minus312mod211if_mod312if_modtruesxsymodminusxysyif_modtruesxsymodminusxysyfalseif_modtruesxsyminusxyfalse124minussxyif_minuslesxysxyif_minusfalsesxyminusxytrue131minus2111s1111if_minus312le20false00000true00minus2111if_minus3112mod211if_mod312if_minusfalsesxyminusxyif_minusfalsesxyminusxyfalseminussxylesxyfalse2modsxsyleyxfalse1lesxsylexytrue1le211s1111le21000true00false01minus2111if_minus31112mod211if_mod312