A QRcode reader and generator