KOOPA77MHDMNHAKH7YXUD2POVQCT3R2HHDHEFBW3G7MVM7QJQVYAC OHAARXLBTFOIV5FOTY7IDMOIAE275CKXCE6XQMWV3EC63YCSMIWAC XRNTOOZ6ARR4XK7GNGUZKHFKB5NDW3WU4I32QKJH6ADFHZQG55CAC 722HZ7UFINNE3YKSYKP2NHZ5XEG5QQLQHSKC7PREJZR3EX6RDYUAC RCLGQ2LZMFVPBPTU2G55DJ6HZPOGGTPZRZCY54VGP6YLHANJ2LAQC BPRNUTY7MHK7LK4EY5MY5OFFG3ABOL7LWXD574L35M74YSQPULFAC FEMASUBNU32NSG4DNXZX54CGCA57PVRGYO46L3A6F2EJ4BCSJ3SAC BVR7DVINVPQG7PA6Z7QYVYNQ43YZL7XCC6AOMSMWMGAAB2Q43STAC if (x.gi < y.gi)return true;if (x.gi > y.gi)return false;if (x.vi < y.vi)return true;if (x.vi > y.vi)return false;if (x.tl < y.tl)return true;if (x.tl > y.tl)return false;return x.valid < y.valid;
return make_tuple(x.gi, x.vi, x.tl, x.valid) <make_tuple(y.gi, y.vi, y.tl, y.valid);