├── README.md ├── admin.php ├── change_log.txt ├── classes ├── asset │ └── cryptonote │ │ ├── XMR │ │ ├── class.xmr.daemon.php │ │ ├── class.xmr.php │ │ └── class.xmr.wallet.php │ │ ├── class.cryptonote.php │ │ ├── class.daemon.php │ │ └── class.wallet.php ├── class.asset.php ├── class.bc.php ├── class.error.php ├── class.log.php ├── class.user.php ├── jsonrpc2client.php └── jsonrpc2clientwallet.php ├── config.php ├── cron.php ├── database.sql ├── db.php ├── functions.php ├── index.php ├── init.php ├── install.php ├── qr ├── CHANGELOG ├── INSTALL ├── LICENSE ├── README ├── VERSION ├── bindings │ └── tcpdf │ │ └── qrcode.php ├── cache │ ├── frame_1.dat │ ├── frame_1.png │ ├── frame_10.dat │ ├── frame_10.png │ ├── frame_11.dat │ ├── frame_11.png │ ├── frame_12.dat │ ├── frame_12.png │ ├── frame_13.dat │ ├── frame_13.png │ ├── frame_14.dat │ ├── frame_14.png │ ├── frame_15.dat │ ├── frame_15.png │ ├── frame_16.dat │ ├── frame_16.png │ ├── frame_17.dat │ ├── frame_17.png │ ├── frame_18.dat │ ├── frame_18.png │ ├── frame_19.dat │ ├── frame_19.png │ ├── frame_2.dat │ ├── frame_2.png │ ├── frame_20.dat │ ├── frame_20.png │ ├── frame_21.dat │ ├── frame_21.png │ ├── frame_22.dat │ ├── frame_22.png │ ├── frame_23.dat │ ├── frame_23.png │ ├── frame_24.dat │ ├── frame_24.png │ ├── frame_25.dat │ ├── frame_25.png │ ├── frame_26.dat │ ├── frame_26.png │ ├── frame_27.dat │ ├── frame_27.png │ ├── frame_28.dat │ ├── frame_28.png │ ├── frame_29.dat │ ├── frame_29.png │ ├── frame_3.dat │ ├── frame_3.png │ ├── frame_30.dat │ ├── frame_30.png │ ├── frame_31.dat │ ├── frame_31.png │ ├── frame_32.dat │ ├── frame_32.png │ ├── frame_33.dat │ ├── frame_33.png │ ├── frame_34.dat │ ├── frame_34.png │ ├── frame_35.dat │ ├── frame_35.png │ ├── frame_36.dat │ ├── frame_36.png │ ├── frame_37.dat │ ├── frame_37.png │ ├── frame_38.dat │ ├── frame_38.png │ ├── frame_39.dat │ ├── frame_39.png │ ├── frame_4.dat │ ├── frame_4.png │ ├── frame_40.dat │ ├── frame_40.png │ ├── frame_5.dat │ ├── frame_5.png │ ├── frame_6.dat │ ├── frame_6.png │ ├── frame_7.dat │ ├── frame_7.png │ ├── frame_8.dat │ ├── frame_8.png │ ├── frame_9.dat │ ├── frame_9.png │ ├── mask_0 │ │ ├── mask_101_0.dat │ │ ├── mask_105_0.dat │ │ ├── mask_109_0.dat │ │ ├── mask_113_0.dat │ │ ├── mask_117_0.dat │ │ ├── mask_121_0.dat │ │ ├── mask_125_0.dat │ │ ├── mask_129_0.dat │ │ ├── mask_133_0.dat │ │ ├── mask_137_0.dat │ │ ├── mask_141_0.dat │ │ ├── mask_145_0.dat │ │ ├── mask_149_0.dat │ │ ├── mask_153_0.dat │ │ ├── mask_157_0.dat │ │ ├── mask_161_0.dat │ │ ├── mask_165_0.dat │ │ ├── mask_169_0.dat │ │ ├── mask_173_0.dat │ │ ├── mask_177_0.dat │ │ ├── mask_21_0.dat │ │ ├── mask_25_0.dat │ │ ├── mask_29_0.dat │ │ ├── mask_33_0.dat │ │ ├── mask_37_0.dat │ │ ├── mask_41_0.dat │ │ ├── mask_45_0.dat │ │ ├── mask_49_0.dat │ │ ├── mask_53_0.dat │ │ ├── mask_57_0.dat │ │ ├── mask_61_0.dat │ │ ├── mask_65_0.dat │ │ ├── mask_69_0.dat │ │ ├── mask_73_0.dat │ │ ├── mask_77_0.dat │ │ ├── mask_81_0.dat │ │ ├── mask_85_0.dat │ │ ├── mask_89_0.dat │ │ ├── mask_93_0.dat │ │ └── mask_97_0.dat │ ├── mask_1 │ │ ├── mask_101_1.dat │ │ ├── mask_105_1.dat │ │ ├── mask_109_1.dat │ │ ├── mask_113_1.dat │ │ ├── mask_117_1.dat │ │ ├── mask_121_1.dat │ │ ├── mask_125_1.dat │ │ ├── mask_129_1.dat │ │ ├── mask_133_1.dat │ │ ├── mask_137_1.dat │ │ ├── mask_141_1.dat │ │ ├── mask_145_1.dat │ │ ├── mask_149_1.dat │ │ ├── mask_153_1.dat │ │ ├── mask_157_1.dat │ │ ├── mask_161_1.dat │ │ ├── mask_165_1.dat │ │ ├── mask_169_1.dat │ │ ├── mask_173_1.dat │ │ ├── mask_177_1.dat │ │ ├── mask_21_1.dat │ │ ├── mask_25_1.dat │ │ ├── mask_29_1.dat │ │ ├── mask_33_1.dat │ │ ├── mask_37_1.dat │ │ ├── mask_41_1.dat │ │ ├── mask_45_1.dat │ │ ├── mask_49_1.dat │ │ ├── mask_53_1.dat │ │ ├── mask_57_1.dat │ │ ├── mask_61_1.dat │ │ ├── mask_65_1.dat │ │ ├── mask_69_1.dat │ │ ├── mask_73_1.dat │ │ ├── mask_77_1.dat │ │ ├── mask_81_1.dat │ │ ├── mask_85_1.dat │ │ ├── mask_89_1.dat │ │ ├── mask_93_1.dat │ │ └── mask_97_1.dat │ ├── mask_2 │ │ ├── mask_101_2.dat │ │ ├── mask_105_2.dat │ │ ├── mask_109_2.dat │ │ ├── mask_113_2.dat │ │ ├── mask_117_2.dat │ │ ├── mask_121_2.dat │ │ ├── mask_125_2.dat │ │ ├── mask_129_2.dat │ │ ├── mask_133_2.dat │ │ ├── mask_137_2.dat │ │ ├── mask_141_2.dat │ │ ├── mask_145_2.dat │ │ ├── mask_149_2.dat │ │ ├── mask_153_2.dat │ │ ├── mask_157_2.dat │ │ ├── mask_161_2.dat │ │ ├── mask_165_2.dat │ │ ├── mask_169_2.dat │ │ ├── mask_173_2.dat │ │ ├── mask_177_2.dat │ │ ├── mask_21_2.dat │ │ ├── mask_25_2.dat │ │ ├── mask_29_2.dat │ │ ├── mask_33_2.dat │ │ ├── mask_37_2.dat │ │ ├── mask_41_2.dat │ │ ├── mask_45_2.dat │ │ ├── mask_49_2.dat │ │ ├── mask_53_2.dat │ │ ├── mask_57_2.dat │ │ ├── mask_61_2.dat │ │ ├── mask_65_2.dat │ │ ├── mask_69_2.dat │ │ ├── mask_73_2.dat │ │ ├── mask_77_2.dat │ │ ├── mask_81_2.dat │ │ ├── mask_85_2.dat │ │ ├── mask_89_2.dat │ │ ├── mask_93_2.dat │ │ └── mask_97_2.dat │ ├── mask_3 │ │ ├── mask_101_3.dat │ │ ├── mask_105_3.dat │ │ ├── mask_109_3.dat │ │ ├── mask_113_3.dat │ │ ├── mask_117_3.dat │ │ ├── mask_121_3.dat │ │ ├── mask_125_3.dat │ │ ├── mask_129_3.dat │ │ ├── mask_133_3.dat │ │ ├── mask_137_3.dat │ │ ├── mask_141_3.dat │ │ ├── mask_145_3.dat │ │ ├── mask_149_3.dat │ │ ├── mask_153_3.dat │ │ ├── mask_157_3.dat │ │ ├── mask_161_3.dat │ │ ├── mask_165_3.dat │ │ ├── mask_169_3.dat │ │ ├── mask_173_3.dat │ │ ├── mask_177_3.dat │ │ ├── mask_21_3.dat │ │ ├── mask_25_3.dat │ │ ├── mask_29_3.dat │ │ ├── mask_33_3.dat │ │ ├── mask_37_3.dat │ │ ├── mask_41_3.dat │ │ ├── mask_45_3.dat │ │ ├── mask_49_3.dat │ │ ├── mask_53_3.dat │ │ ├── mask_57_3.dat │ │ ├── mask_61_3.dat │ │ ├── mask_65_3.dat │ │ ├── mask_69_3.dat │ │ ├── mask_73_3.dat │ │ ├── mask_77_3.dat │ │ ├── mask_81_3.dat │ │ ├── mask_85_3.dat │ │ ├── mask_89_3.dat │ │ ├── mask_93_3.dat │ │ └── mask_97_3.dat │ ├── mask_4 │ │ ├── mask_101_4.dat │ │ ├── mask_105_4.dat │ │ ├── mask_109_4.dat │ │ ├── mask_113_4.dat │ │ ├── mask_117_4.dat │ │ ├── mask_121_4.dat │ │ ├── mask_125_4.dat │ │ ├── mask_129_4.dat │ │ ├── mask_133_4.dat │ │ ├── mask_137_4.dat │ │ ├── mask_141_4.dat │ │ ├── mask_145_4.dat │ │ ├── mask_149_4.dat │ │ ├── mask_153_4.dat │ │ ├── mask_157_4.dat │ │ ├── mask_161_4.dat │ │ ├── mask_165_4.dat │ │ ├── mask_169_4.dat │ │ ├── mask_173_4.dat │ │ ├── mask_177_4.dat │ │ ├── mask_21_4.dat │ │ ├── mask_25_4.dat │ │ ├── mask_29_4.dat │ │ ├── mask_33_4.dat │ │ ├── mask_37_4.dat │ │ ├── mask_41_4.dat │ │ ├── mask_45_4.dat │ │ ├── mask_49_4.dat │ │ ├── mask_53_4.dat │ │ ├── mask_57_4.dat │ │ ├── mask_61_4.dat │ │ ├── mask_65_4.dat │ │ ├── mask_69_4.dat │ │ ├── mask_73_4.dat │ │ ├── mask_77_4.dat │ │ ├── mask_81_4.dat │ │ ├── mask_85_4.dat │ │ ├── mask_89_4.dat │ │ ├── mask_93_4.dat │ │ └── mask_97_4.dat │ ├── mask_5 │ │ ├── mask_101_5.dat │ │ ├── mask_105_5.dat │ │ ├── mask_109_5.dat │ │ ├── mask_113_5.dat │ │ ├── mask_117_5.dat │ │ ├── mask_121_5.dat │ │ ├── mask_125_5.dat │ │ ├── mask_129_5.dat │ │ ├── mask_133_5.dat │ │ ├── mask_137_5.dat │ │ ├── mask_141_5.dat │ │ ├── mask_145_5.dat │ │ ├── mask_149_5.dat │ │ ├── mask_153_5.dat │ │ ├── mask_157_5.dat │ │ ├── mask_161_5.dat │ │ ├── mask_165_5.dat │ │ ├── mask_169_5.dat │ │ ├── mask_173_5.dat │ │ ├── mask_177_5.dat │ │ ├── mask_21_5.dat │ │ ├── mask_25_5.dat │ │ ├── mask_29_5.dat │ │ ├── mask_33_5.dat │ │ ├── mask_37_5.dat │ │ ├── mask_41_5.dat │ │ ├── mask_45_5.dat │ │ ├── mask_49_5.dat │ │ ├── mask_53_5.dat │ │ ├── mask_57_5.dat │ │ ├── mask_61_5.dat │ │ ├── mask_65_5.dat │ │ ├── mask_69_5.dat │ │ ├── mask_73_5.dat │ │ ├── mask_77_5.dat │ │ ├── mask_81_5.dat │ │ ├── mask_85_5.dat │ │ ├── mask_89_5.dat │ │ ├── mask_93_5.dat │ │ └── mask_97_5.dat │ ├── mask_6 │ │ ├── mask_101_6.dat │ │ ├── mask_105_6.dat │ │ ├── mask_109_6.dat │ │ ├── mask_113_6.dat │ │ ├── mask_117_6.dat │ │ ├── mask_121_6.dat │ │ ├── mask_125_6.dat │ │ ├── mask_129_6.dat │ │ ├── mask_133_6.dat │ │ ├── mask_137_6.dat │ │ ├── mask_141_6.dat │ │ ├── mask_145_6.dat │ │ ├── mask_149_6.dat │ │ ├── mask_153_6.dat │ │ ├── mask_157_6.dat │ │ ├── mask_161_6.dat │ │ ├── mask_165_6.dat │ │ ├── mask_169_6.dat │ │ ├── mask_173_6.dat │ │ ├── mask_177_6.dat │ │ ├── mask_21_6.dat │ │ ├── mask_25_6.dat │ │ ├── mask_29_6.dat │ │ ├── mask_33_6.dat │ │ ├── mask_37_6.dat │ │ ├── mask_41_6.dat │ │ ├── mask_45_6.dat │ │ ├── mask_49_6.dat │ │ ├── mask_53_6.dat │ │ ├── mask_57_6.dat │ │ ├── mask_61_6.dat │ │ ├── mask_65_6.dat │ │ ├── mask_69_6.dat │ │ ├── mask_73_6.dat │ │ ├── mask_77_6.dat │ │ ├── mask_81_6.dat │ │ ├── mask_85_6.dat │ │ ├── mask_89_6.dat │ │ ├── mask_93_6.dat │ │ └── mask_97_6.dat │ └── mask_7 │ │ ├── mask_101_7.dat │ │ ├── mask_105_7.dat │ │ ├── mask_109_7.dat │ │ ├── mask_113_7.dat │ │ ├── mask_117_7.dat │ │ ├── mask_121_7.dat │ │ ├── mask_125_7.dat │ │ ├── mask_129_7.dat │ │ ├── mask_133_7.dat │ │ ├── mask_137_7.dat │ │ ├── mask_141_7.dat │ │ ├── mask_145_7.dat │ │ ├── mask_149_7.dat │ │ ├── mask_153_7.dat │ │ ├── mask_157_7.dat │ │ ├── mask_161_7.dat │ │ ├── mask_165_7.dat │ │ ├── mask_169_7.dat │ │ ├── mask_173_7.dat │ │ ├── mask_177_7.dat │ │ ├── mask_21_7.dat │ │ ├── mask_25_7.dat │ │ ├── mask_29_7.dat │ │ ├── mask_33_7.dat │ │ ├── mask_37_7.dat │ │ ├── mask_41_7.dat │ │ ├── mask_45_7.dat │ │ ├── mask_49_7.dat │ │ ├── mask_53_7.dat │ │ ├── mask_57_7.dat │ │ ├── mask_61_7.dat │ │ ├── mask_65_7.dat │ │ ├── mask_69_7.dat │ │ ├── mask_73_7.dat │ │ ├── mask_77_7.dat │ │ ├── mask_81_7.dat │ │ ├── mask_85_7.dat │ │ ├── mask_89_7.dat │ │ ├── mask_93_7.dat │ │ └── mask_97_7.dat ├── errors.txt ├── index.php ├── phpqrcode.php ├── qrbitstream.php ├── qrconfig.php ├── qrconst.php ├── qrencode.php ├── qrimage.php ├── qrinput.php ├── qrlib.php ├── qrmask.php ├── qrrscode.php ├── qrspec.php ├── qrsplit.php ├── qrtools.php └── tools │ ├── merge.bat │ ├── merge.php │ ├── merge.sh │ ├── merged_config.php │ └── merged_header.php ├── qrPR.php ├── qrXMR.php └── views ├── admin └── dashboard.php └── dashboard.php /README.md: -------------------------------------------------------------------------------- 1 | # xmr-integration 2 | XMR Integration / Demo 3 | 4 | This is a complete PHP integration of monero. Once setup you will have a working membership site with: 5 | - Login/Registration 6 | - Generation of payment id 7 | - Deposit of funds (automatically added to account after X confirmations) 8 | - Withdraw of funds (added to processing queue and processed automatically) 9 | - Admin Panel displaying current balances and other useful info (e.g status of daemon and wallet) 10 | - With some minor changes, you can add multiple cryptonote types of currencies/assets 11 | 12 | The script comes with cron.php, which is the processing script. It can be setup to run forever in the background, or even 13 | as a cron job. Read the comment in cron.php for more info. 14 | 15 | For install instructions simply open install.php 16 | 17 | Server requirements are: 18 | - PHP 5.3.3 + 19 | - MySQLi 20 | - BCMath 21 | - PHP Short Tags 22 | 23 | The license is specified in each file, everything coded by me is "do whatever the fuck you want license" ;) 24 | 25 | Keep in mind that this script is ment as a proof of concept, it may work fine to develop your site from 26 | this script, but the intention is only to easily show in action how to integrate monero so that you can copy 27 | the code needed to get it implementated in your own applications. 28 | 29 | Security wise I would generally advise to keep hotwallets on separate servers and not integrated directly like here. 30 | But this adds a layer of complexity that far exeeds the intention of this project. 31 | 32 | - TheKoziTwo (https://bitcointalk.org/index.php?action=profile;u=4129) 33 | -------------------------------------------------------------------------------- /admin.php: -------------------------------------------------------------------------------- 1 | is_admin()) 13 | { 14 | redirect(); 15 | } 16 | 17 | $assets_ids = Asset::get_assets(); 18 | 19 | $assets = array(); 20 | foreach($assets_ids as $asset_id) 21 | { 22 | $asset = Asset::init($asset_id,$config['asset'][$asset_id]['properties']); 23 | 24 | $short_name = $config['asset'][$asset_id]['properties']['short_name']; 25 | 26 | $class = 'CryptoNote_Wallet_'.$asset->short_name; 27 | if( ! class_exists($class)) $class = 'CryptoNote_Wallet'; 28 | $wallet = new $class($config['asset'][$asset_id]['wallet_host'],$config['asset'][$asset_id]['wallet_port']); 29 | 30 | $class = 'CryptoNote_Daemon_'.$asset->short_name; 31 | if( ! class_exists($class)) $class = 'CryptoNote_Daemon'; 32 | $daemon = new $class($config['asset'][$asset_id]['daemon_host'],$config['asset'][$asset_id]['daemon_port']); 33 | 34 | $assets[] = array( 35 | 'id' => $asset_id, 36 | 'config' => $config['asset'][$asset_id], 37 | 'class' => $asset, 38 | 'wallet' => $wallet, 39 | 'daemon' => $daemon, 40 | 'wallet_ready' => $wallet->is_responding(), 41 | ); 42 | } 43 | 44 | include 'views/admin/dashboard.php'; 45 | -------------------------------------------------------------------------------- /change_log.txt: -------------------------------------------------------------------------------- 1 | 2015-03-13 - Released version v1: User registration/login, Deposit, Withdraw, Simple admin panel 2 | -------------------------------------------------------------------------------- /classes/asset/cryptonote/XMR/class.xmr.daemon.php: -------------------------------------------------------------------------------- 1 | 10 | * @copyright 2015 11 | * @license Public Domain 12 | */ 13 | class CryptoNote_Daemon_XMR extends CryptoNote_Daemon { 14 | 15 | } -------------------------------------------------------------------------------- /classes/asset/cryptonote/XMR/class.xmr.php: -------------------------------------------------------------------------------- 1 | 10 | * @copyright 2015 11 | * @license Public Domain 12 | */ 13 | class Asset_Cryptonote_XMR extends Asset_Cryptonote { 14 | 15 | public function __construct($properties) 16 | { 17 | parent::__construct($properties); 18 | } 19 | 20 | // ------------------------------------------------------------------------ 21 | 22 | /** 23 | * Validates amount to ensure it follows the rules of monero 24 | * 25 | * @param string|float amount 26 | * @return bool 27 | */ 28 | public function valid_amount($amount) 29 | { 30 | if( ! is_numeric($amount)) return FALSE; 31 | 32 | // XMR is limited to 12 decimals 33 | if(bc::count_decimals($amount) > 12) return FALSE; 34 | 35 | #// The maximum payment is depended on your system, 32-bit is 10 digits and 64-bit is 19 digits 36 | #$max_digits = strlen(PHP_INT_MAX); 37 | 38 | // PHP 64-bit does not support more than 9223372036854775807 (19-digits) 39 | if(bc::is($amount,'>=','9223372.036854775807')) 40 | { 41 | return FALSE; 42 | } 43 | 44 | return TRUE; 45 | } 46 | 47 | } -------------------------------------------------------------------------------- /classes/asset/cryptonote/XMR/class.xmr.wallet.php: -------------------------------------------------------------------------------- 1 | 10 | * @copyright 2015 11 | * @license Public Domain 12 | */ 13 | class CryptoNote_Wallet_XMR extends CryptoNote_Wallet { 14 | 15 | } -------------------------------------------------------------------------------- /classes/asset/cryptonote/class.cryptonote.php: -------------------------------------------------------------------------------- 1 | 9 | * @copyright 2015 10 | * @license Public Domain 11 | */ 12 | class Asset_Cryptonote extends Asset { 13 | 14 | public function __construct($properties) 15 | { 16 | parent::__construct($properties); 17 | } 18 | 19 | // ------------------------------------------------------------------------ 20 | 21 | /** 22 | * Get latest generated payment id for user 23 | * 24 | * @param object User 25 | * @return string payment id 26 | */ 27 | public function get_payment_id($user) 28 | { 29 | $res = db()->query(' 30 | SELECT payment_id 31 | FROM users_cn_payment_ids 32 | WHERE user_id = '.quote_escape($user->id()).' 33 | AND asset_id = '.quote_escape($this->id).' 34 | ORDER BY pid 35 | DESC 36 | LIMIT 1' 37 | ); 38 | 39 | if($res) 40 | { 41 | $row = $res->fetch_assoc(); 42 | return $row['payment_id']; 43 | } 44 | 45 | return FALSE; 46 | } 47 | 48 | // ------------------------------------------------------------------------ 49 | 50 | /** 51 | * Create & Assign a new payment ID to user 52 | * 53 | * @param object User 54 | * @return string payment id 55 | */ 56 | public function create_payment_id($user) 57 | { 58 | $res = false; 59 | 60 | // Keep generating payment id until successfully inserted. 61 | while( ! $res ) 62 | { 63 | $payment_id = random_str(64); 64 | 65 | $sql = insert_query('users_cn_payment_ids',array( 66 | 'asset_id' => $this->id, 67 | 'payment_id' => $payment_id, 68 | 'user_id' => $user->id(), 69 | 'date_created' => array('UTC_TIMESTAMP()') 70 | )); 71 | 72 | $res = db()->query($sql); 73 | } 74 | 75 | return $payment_id; 76 | } 77 | 78 | // ------------------------------------------------------------------------ 79 | 80 | /** 81 | * Validates a cryptonote address 82 | * 83 | * @param string cryptonote address 84 | * @return bool true if valid 85 | */ 86 | public function valid_address($address) 87 | { 88 | global $config; 89 | 90 | // 95 characters 91 | if(strlen($address) !== 95) return FALSE; 92 | 93 | // Start with 4 94 | if($address[0] != '4') return FALSE; 95 | 96 | // Second character can only be a number (0-9) or letters A or B 97 | if( ! in_array($address[1],array_merge(array_map(function($v){ 98 | return (string) $v; 99 | },range(0,9)),array('A','B')))) return FALSE; 100 | 101 | // The string can only be alphanumeric characters 102 | if( ! ctype_alnum($address)) return FALSE; 103 | 104 | // Can not send to self 105 | if($address == $config['asset'][$this->id]['address']) return FALSE; 106 | 107 | return TRUE; 108 | } 109 | 110 | // ------------------------------------------------------------------------ 111 | 112 | /** 113 | * Validates a payment id 114 | * 115 | * @param string payment id 116 | * @return bool true if valid 117 | */ 118 | public function valid_payment_id($payment_id) 119 | { 120 | if(empty($payment_id)) return TRUE; 121 | 122 | // 64 characters 123 | if(strlen($payment_id) !== 64) return FALSE; 124 | 125 | // The string can only be alphanumeric characters 126 | if( ! ctype_alnum($payment_id)) return FALSE; 127 | 128 | return TRUE; 129 | } 130 | 131 | // ------------------------------------------------------------------------ 132 | 133 | /** 134 | * Validates amount to ensure it follows the rules of cryptonote 135 | * 136 | * @param string|float amount 137 | * @return bool 138 | */ 139 | public function valid_amount($amount) 140 | { 141 | if( ! is_numeric($amount)) return FALSE; 142 | 143 | if(bc::count_decimals($amount) > 8) return FALSE; 144 | 145 | return TRUE; 146 | } 147 | 148 | // ------------------------------------------------------------------------ 149 | 150 | /** 151 | * Validates withdraw (minimum withdraw) 152 | * 153 | * @param string|float amount 154 | * @param string|float fee 155 | * @return bool 156 | */ 157 | public function valid_withdraw($amount,$fee) 158 | { 159 | global $config; 160 | 161 | $amount_after_fee = bc::op($amount,'-',$fee); 162 | 163 | // Check if amount after fee is negative 164 | if(bc::is($amount_after_fee,'=<','0')) return FALSE; 165 | 166 | // Enforce minimum withdraw 167 | return (bool) (bccomp($amount,$config['asset'][$this->id]['min_withdraw']) !== -1); 168 | } 169 | 170 | } -------------------------------------------------------------------------------- /classes/asset/cryptonote/class.daemon.php: -------------------------------------------------------------------------------- 1 | 8 | * @copyright 2015 9 | * @license Public Domain 10 | */ 11 | class CryptoNote_Daemon { 12 | 13 | const READY = 1; 14 | const BUSY = 0; 15 | const OFFLINE = -1; 16 | 17 | private $daemon; 18 | private $status; 19 | 20 | /** 21 | * Initialize an instance of daemon 22 | * 23 | * @param string ip or hostname (default: 127.0.0.1) 24 | * @param int port (default: 18081) 25 | */ 26 | public function __construct($host = '127.0.0.1',$port = '18081') 27 | { 28 | $this->daemon = new jsonRPCClient('http://'.$host.':'.$port.'/json_rpc'); 29 | 30 | // Run random cmd to set status: 31 | $this->_execute('getblockcount'); 32 | } 33 | 34 | // -------------------------------------------------------------------- 35 | 36 | /** 37 | * Check if daemon is ready 38 | * @return bool true if ready 39 | */ 40 | public function is_ready() 41 | { 42 | $this->_execute('getblockcount'); 43 | return (bool) ($this->status === self::READY); 44 | } 45 | 46 | // -------------------------------------------------------------------- 47 | 48 | /** 49 | * Check if daemon is busy (it will be busy when saving blockchain etc) 50 | * @return bool true if busy 51 | */ 52 | public function is_busy() 53 | { 54 | $this->_execute('getblockcount'); 55 | return (bool) ($this->status === self::BUSY); 56 | } 57 | 58 | // -------------------------------------------------------------------- 59 | 60 | /** 61 | * Check if daemon is responding 62 | * @return bool true if no contact could be established 63 | */ 64 | public function is_offline() 65 | { 66 | $this->_execute('getblockcount'); 67 | return (bool) ($this->status === self::OFFLINE); 68 | } 69 | 70 | // -------------------------------------------------------------------- 71 | 72 | /** 73 | * Get current block height / count (keep in mind if daemon is not 74 | * fully synced, this will be lower than actually exist in blockchain) 75 | * 76 | * @return int|bool block height (or false on error/busy) 77 | */ 78 | public function get_block_count() 79 | { 80 | return $this->_execute('getblockcount')['count']; 81 | } 82 | 83 | // -------------------------------------------------------------------- 84 | 85 | /** 86 | * Get block header by hash 87 | * 88 | * @param int hash 89 | * @return int|bool block header (or false on error/busy) 90 | */ 91 | public function get_block_header_by_hash($hash) 92 | { 93 | return $this->_execute('getblockheaderbyhash',array('hash'=>$hash)); 94 | } 95 | 96 | // -------------------------------------------------------------------- 97 | 98 | /** 99 | * Get block header by height 100 | * 101 | * @param int height (e.g 12345) 102 | * @return int|bool block header (or false on error/busy) 103 | */ 104 | public function get_block_header_by_height($height) 105 | { 106 | return $this->_execute('getblockheaderbyheight',array('height'=>$height)); 107 | } 108 | 109 | // -------------------------------------------------------------------- 110 | 111 | /** 112 | * Get last block header 113 | * @return bool|int block header (or false on error/busy) 114 | */ 115 | public function get_last_block_header() 116 | { 117 | return $this->_execute('getlastblockheader'); 118 | } 119 | 120 | // -------------------------------------------------------------------- 121 | 122 | /** 123 | * Execute / send rpc command to daemon 124 | * 125 | * Status of daemon will be set after sending cmd: OK, BUSY or OFFLINE 126 | * 127 | * @param string daemon command 128 | * @param array params as array 129 | * @return array|bool array as sent from daemon or false if daemon is OFFLINE or BUSY 130 | */ 131 | private function _execute($command,$params = null) 132 | { 133 | $result = $this->daemon->$command(json_encode($params)); 134 | 135 | if($result['status'] == 'OK') 136 | { 137 | $this->status = self::READY; 138 | return $result; 139 | } 140 | elseif($result['status'] == 'BUSY') 141 | { 142 | $this->status = self::BUSY; 143 | } 144 | else 145 | { 146 | $this->status = self::OFFLINE; 147 | } 148 | 149 | return FALSE; 150 | } 151 | 152 | } -------------------------------------------------------------------------------- /classes/class.asset.php: -------------------------------------------------------------------------------- 1 | 8 | * @copyright 2015 9 | * @license Public Domain 10 | */ 11 | abstract class Asset { 12 | 13 | /** 14 | * @var array holds all properties for this asset 15 | */ 16 | private $_data; 17 | 18 | // ------------------------------------------------------------------------ 19 | 20 | /** 21 | * Initialize an asset (e.g CryptoNote based (XMR,BBR), Bitcoin based (BTC, 22 | * LTC,NMC) etc) 23 | * 24 | * @param int asset id to initalize 25 | * @param array the properties/configs for this asset 26 | * @return object an instance of the asset, E.g Asset_CryptoNote(), 27 | * Asset_Bitcoin() or if unique features it may return 28 | * asset specific classes (if they exists) such as: 29 | * Asset_CryptoNote_XMR(), Asset_CryptoNote_BBR(), 30 | * Asset_Bitcoin_NMC()) 31 | */ 32 | public static function init($asset_id, $properties = array()) 33 | { 34 | $class_protocol = 'Asset_'.ucfirst($properties['protocol']); 35 | $class = $class_protocol.'_'.strtoupper($properties['short_name']); 36 | 37 | // If asset does not have unique features, it may use the default class: 38 | if( ! class_exists($class)) 39 | { 40 | $class = $class_protocol; 41 | } 42 | 43 | $properties['id'] = $asset_id; 44 | return new $class($properties); 45 | } 46 | 47 | // ------------------------------------------------------------------------ 48 | 49 | /** 50 | * Constructor, only to be called from subclasses 51 | * 52 | * Sets the properties for the instance and returns it. 53 | * 54 | * @param array configs/settings for the asset 55 | * @return object instance 56 | */ 57 | protected function __construct($properties = array()) 58 | { 59 | $this->_data = $properties; 60 | return $this; 61 | } 62 | 63 | // ------------------------------------------------------------------------ 64 | 65 | /** 66 | * Magic method, to get from $_data 67 | * 68 | * @param string variable name 69 | * @return string value 70 | */ 71 | public function __get($property) 72 | { 73 | return array_key_exists($property, $this->_data) ? $this->_data[$property] : null; 74 | } 75 | 76 | // ------------------------------------------------------------------------ 77 | 78 | /** 79 | * Magic method, to set $_data 80 | * 81 | * @param string variable name 82 | * @param string value 83 | * @return void 84 | */ 85 | public function __set($property, $value) 86 | { 87 | $this->_data[$property] = $value; 88 | } 89 | 90 | // ------------------------------------------------------------------------ 91 | 92 | /** 93 | * Get Asset ID 94 | * 95 | * @todo is this method needed when we already got __get? 96 | * @return int asset id of current instance 97 | */ 98 | public function get_id() 99 | { 100 | return $this->id; 101 | } 102 | 103 | // ------------------------------------------------------------------------ 104 | 105 | /** 106 | * Get active assets 107 | * 108 | * @return array asset ids 109 | */ 110 | public static function get_assets() 111 | { 112 | global $config; 113 | 114 | $assets = array_keys($config['asset']); 115 | 116 | $ids = array(); 117 | 118 | foreach($assets as $asset_id) 119 | { 120 | // Skip undefined assets 121 | if( ! isset($config['asset'][$asset_id]['properties'])) continue; 122 | 123 | $ids[] = $asset_id; 124 | } 125 | 126 | return $ids; 127 | } 128 | 129 | // ------------------------------------------------------------------------ 130 | 131 | /** 132 | * Retrive a users balance 133 | * 134 | * @param object user 135 | * @return decimal the current balance 136 | */ 137 | public function get_balance($user) 138 | { 139 | $res = db()->query(' 140 | SELECT balance 141 | FROM users_assets 142 | WHERE user_id = '.quote_escape($user->id()).' 143 | AND asset_id = '.quote_escape($this->id).' 144 | LIMIT 1 145 | '); 146 | 147 | if($row = $res->fetch_assoc()) 148 | { 149 | return $row['balance']; 150 | } 151 | 152 | return '0.00'; 153 | } 154 | 155 | // ------------------------------------------------------------------------ 156 | 157 | /** 158 | * Check if user has sufficient balance 159 | * 160 | * @param object user 161 | * @param decimal amount to check 162 | * @return bool true if enough balance (equal or more) 163 | */ 164 | public function available_balance($user,$amount) 165 | { 166 | return (bool) bc::is($this->get_balance($user),'>=',$amount); 167 | } 168 | } -------------------------------------------------------------------------------- /classes/class.error.php: -------------------------------------------------------------------------------- 1 | 6 | * @copyright 2015 7 | * @license Public Domain 8 | */ 9 | class Error_ { 10 | 11 | private $errors = array(); 12 | 13 | /** 14 | * Retrive an error message for a specific field 15 | * 16 | * @param string field name 17 | * @param bool true to unset the error after retrival 18 | * @return string the error message 19 | */ 20 | public function get($field,$unset = true) 21 | { 22 | $err = isset($this->errors[$field]) ? $this->errors[$field] : ''; 23 | 24 | if($unset) unset($this->errors[$field]); 25 | 26 | return $err; 27 | } 28 | 29 | // ------------------------------------------------------------------------ 30 | 31 | /** 32 | * Set an error message for a specific field 33 | * 34 | * @param string field name 35 | * @param string error message 36 | * @return void 37 | */ 38 | public function set($field,$err) 39 | { 40 | $this->errors[$field] = $err; 41 | } 42 | 43 | // ------------------------------------------------------------------------ 44 | 45 | /** 46 | * Check if error exists for a given field 47 | * 48 | * @param string field to check for errors 49 | * @param bool|string if string, this string will be returned if error 50 | * instead of true 51 | * @param bool true to unset the error 52 | * @return bool|string true/false (or instead of false it may return a 53 | * string if the $label param is a string) 54 | */ 55 | public function is($field,$label = false,$unset = false) 56 | { 57 | $err = $this->get($field,$unset); 58 | 59 | $is_error = (bool) ( ! empty($err)); 60 | 61 | if($is_error AND ($label !== false)) return $label; 62 | 63 | return $is_error; 64 | } 65 | 66 | // ------------------------------------------------------------------------ 67 | 68 | /** 69 | * Check if there are any errors 70 | * 71 | * @return bool true if errors exists 72 | */ 73 | public function is_errors() 74 | { 75 | return (bool) ! empty($this->errors); 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /classes/class.log.php: -------------------------------------------------------------------------------- 1 | 6 | * @copyright 2015 7 | * @license Public Domain 8 | * 9 | * @todo enable logging to file 10 | */ 11 | class Log { 12 | 13 | /** 14 | * @const int priorities 15 | */ 16 | const PRIORITY_HIGH = 3; 17 | const PRIORITY_MEDIUM = 2; 18 | const PRIORITY_LOW = 1; 19 | 20 | /** 21 | * Log error 22 | * 23 | * Will send an e-mail on critical errors to notify admin (if enabled) 24 | * 25 | * @param int priority 26 | * @param string error title 27 | * @param string error description 28 | * @return void 29 | */ 30 | public static function error($priority,$error,$error_msg = '') 31 | { 32 | global $config; 33 | 34 | if($config['errors']['enable_mail_notify'] AND $priority == self::PRIORITY_HIGH) 35 | { 36 | mail($config['errors']['mail'],$error,$error_msg); 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /classes/class.user.php: -------------------------------------------------------------------------------- 1 | 6 | * @copyright 2015 7 | * @license Public Domain 8 | */ 9 | class User { 10 | 11 | /** 12 | * Create an instance of a specific user 13 | * 14 | * @param int user id 15 | * @return User User object 16 | */ 17 | public function __construct($user_id) 18 | { 19 | $res = db()->query(' 20 | SELECT user_id, 21 | username, 22 | password 23 | FROM user 24 | WHERE user_id = '.quote_escape($user_id).' 25 | LIMIT 1 26 | '); 27 | 28 | if($res) 29 | { 30 | $row = $res->fetch_assoc(); 31 | $this->id = $row['user_id']; 32 | $this->username = $row['username']; 33 | $this->password = $row['password']; 34 | } 35 | 36 | return $this; 37 | } 38 | 39 | // ------------------------------------------------------------------------ 40 | 41 | /** 42 | * Get user id 43 | * 44 | * @return int user id in current instance 45 | */ 46 | public function id() 47 | { 48 | return $this->id; 49 | } 50 | 51 | // ------------------------------------------------------------------------ 52 | 53 | /** 54 | * Get username 55 | * 56 | * @return string username in current instance 57 | */ 58 | public function username() 59 | { 60 | return $this->username; 61 | } 62 | 63 | // ------------------------------------------------------------------------ 64 | 65 | /** 66 | * Register new user 67 | * 68 | * @param string username 69 | * @param string password 70 | * @return bool true if successfully added to db 71 | */ 72 | public static function register($username,$password) 73 | { 74 | $sql = insert_query('user',array( 75 | 'username' => $username, 76 | 'password' => hash('sha256',$password), 77 | )); 78 | 79 | return (bool) db()->query($sql); 80 | } 81 | 82 | // ------------------------------------------------------------------------ 83 | 84 | /** 85 | * Try to find, and then login a user by setting sessions 86 | * 87 | * @param string username 88 | * @param string password (unencrypted) 89 | * @return bool false if user not found, otherwise user object 90 | */ 91 | public static function login($username,$password) 92 | { 93 | $user_id = FALSE; 94 | 95 | $res = db()->query(' 96 | SELECT user_id 97 | FROM user 98 | WHERE username = '.quote_escape($username).' 99 | AND password = '.quote_escape(hash('sha256',$password)).' 100 | LIMIT 1 101 | '); 102 | 103 | if($res) 104 | { 105 | $row = $res->fetch_assoc(); 106 | $user_id = $_SESSION['user_id'] = $row['user_id']; 107 | } 108 | 109 | return $user_id; 110 | } 111 | 112 | // ------------------------------------------------------------------------ 113 | 114 | /** 115 | * Fetch a user from db 116 | * 117 | * @param string field value (e.g user id, username (default)) 118 | * @param string field to search by, default is username 119 | * the chosen field must be unique to user 120 | * @return array User row if found or null 121 | */ 122 | public static function get_user($value = '',$field = 'username') 123 | { 124 | $res = db()->query(' 125 | SELECT * 126 | FROM user 127 | WHERE '.$field.' = '.quote_escape($value).' 128 | LIMIT 1 129 | '); 130 | 131 | if($res) 132 | { 133 | return $res->fetch_assoc(); 134 | } 135 | 136 | return FALSE; 137 | } 138 | 139 | // ------------------------------------------------------------------------ 140 | 141 | /** 142 | * Logout user by deleting sessions 143 | * 144 | * @param int user id 145 | * @return void 146 | */ 147 | public static function logout() 148 | { 149 | unset($_SESSION['user_id']); 150 | } 151 | 152 | // ------------------------------------------------------------------------ 153 | 154 | /** 155 | * Check if user is logged in 156 | * 157 | * @return bool 158 | */ 159 | public static function is_logged_in() 160 | { 161 | return (bool) isset($_SESSION['user_id']); 162 | } 163 | 164 | // ------------------------------------------------------------------------ 165 | 166 | /** 167 | * Lookup db for username to check if it exists 168 | * 169 | * @param string username 170 | * @return bool true if exists 171 | */ 172 | public static function username_exists($username) 173 | { 174 | $res = db()->query(' 175 | SELECT user_id 176 | FROM user 177 | WHERE username = '.quote_escape($username).' 178 | LIMIT 1 179 | '); 180 | 181 | return (bool) $res->num_rows; 182 | } 183 | 184 | // ------------------------------------------------------------------------ 185 | 186 | /** 187 | * Check if user has admin privileges 188 | * 189 | * @return bool true if yes 190 | */ 191 | public function is_admin() 192 | { 193 | global $config; 194 | 195 | if(self::is_logged_in()) 196 | { 197 | if($user = self::get_user($this->username())) 198 | { 199 | if(in_array($user['username'],$config['admins'])) return TRUE; 200 | } 201 | } 202 | 203 | return FALSE; 204 | } 205 | 206 | // ------------------------------------------------------------------------ 207 | 208 | /** 209 | * Validate username 210 | * 211 | * A username must be alphanumeric and a certain minimum and maxinimum length 212 | * 213 | * @param string username 214 | * @return bool 215 | */ 216 | public static function valid_username($username) 217 | { 218 | global $config; 219 | 220 | // The string can only be alphanumeric characters 221 | if( ! ctype_alnum($username)) return FALSE; 222 | 223 | // Enforce minimum and maximum length of username 224 | if(strlen($username) < $config['user']['username']['min_length']) return FALSE; 225 | if(strlen($username) > $config['user']['username']['max_length']) return FALSE; 226 | 227 | return TRUE; 228 | } 229 | 230 | // ------------------------------------------------------------------------ 231 | 232 | /** 233 | * Validate password 234 | * 235 | * A password must be a certain minimum length, except from that it does not 236 | * matter, as it will be encrypted 237 | * 238 | * @param string password 239 | * @return bool 240 | */ 241 | public static function valid_password($password) 242 | { 243 | global $config; 244 | 245 | return (bool) ! (strlen($password) < $config['user']['password']['min_length']); 246 | 247 | } 248 | } -------------------------------------------------------------------------------- /classes/jsonrpc2client.php: -------------------------------------------------------------------------------- 1 | 4 | * GNU GPL LICENSE 5 | * The object of this class are generic jsonRPC 1.0 clients 6 | * http://json-rpc.org/wiki/specification 7 | * @author sergio 8 | */ 9 | class jsonRPCClient { 10 | private $debug; 11 | private $url; 12 | private $id; 13 | private $notification = false; 14 | public function __construct($url,$debug = false) { 15 | $this->url = $url; 16 | empty($proxy) ? $this->proxy = '' : $this->proxy = $proxy; 17 | empty($debug) ? $this->debug = false : $this->debug = true; 18 | $this->id = 1; 19 | } 20 | public function setRPCNotification($notification) { 21 | empty($notification) ? $this->notification = false : $this->notification = true; 22 | } 23 | public function __call($method,$params) { 24 | 25 | $is_param_arr = true; 26 | if(isset($params[0]) and !is_array($params[0])) 27 | { 28 | $is_param_arr = false; 29 | } 30 | 31 | if (!is_scalar($method)) { throw new Exception('Method name has no scalar value'); } 32 | if (is_array($params)) { $params = array_values($params);}else{throw new Exception('Params must be given as array');} 33 | if ($this->notification) {$currentId = NULL; }else{ $currentId = $this->id;} 34 | if($is_param_arr) 35 | { 36 | $request = array( 'method' => $method, 'params' => $params, 'id' => $currentId ); 37 | $request = json_encode($request); 38 | } 39 | else 40 | { 41 | $request = '{"jsonrpc":"2.0","id":"'.$currentId.'","method":"'.$method.'","params":'.$params[0].'}'; 42 | } 43 | 44 | $this->debug && $this->debug.='***** Request *****'."\n".$request."\n".'***** End Of request *****'."\n\n"; 45 | $ch = curl_init($this->url); 46 | curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); 47 | curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json')); 48 | curl_setopt($ch, CURLOPT_POST, true); 49 | curl_setopt($ch, CURLOPT_POSTFIELDS, $request); 50 | #curl_setopt($ch,CURLOPT_TIMEOUT,10); 51 | 52 | $response = json_decode(curl_exec($ch),true); 53 | curl_close($ch); 54 | 55 | if ($this->debug) { echo nl2br($debug); } 56 | if (!$this->notification) { 57 | 58 | if ($response['id'] != $currentId) { return $response; } 59 | if (isset($response['error']) AND !is_null($response['error'])) { return $response; } 60 | return $response['result']; 61 | }else{ 62 | return true; 63 | } 64 | 65 | } 66 | } 67 | ?> -------------------------------------------------------------------------------- /classes/jsonrpc2clientwallet.php: -------------------------------------------------------------------------------- 1 | 4 | * GNU GPL LICENSE 5 | * The object of this class are generic jsonRPC 1.0 clients 6 | * http://json-rpc.org/wiki/specification 7 | * @author sergio 8 | */ 9 | class jsonRPCClientWallet { 10 | private $debug; 11 | private $url; 12 | private $id; 13 | private $notification = false; 14 | public function __construct($url,$debug = false) { 15 | $this->url = $url; 16 | empty($proxy) ? $this->proxy = '' : $this->proxy = $proxy; 17 | empty($debug) ? $this->debug = false : $this->debug = true; 18 | $this->id = 1; 19 | } 20 | public function setRPCNotification($notification) { 21 | empty($notification) ? $this->notification = false : $this->notification = true; 22 | } 23 | public function __call($method,$params) { 24 | 25 | $is_param_arr = true; 26 | if(isset($params[0]) and !is_array($params[0])) 27 | { 28 | $is_param_arr = false; 29 | } 30 | if (!is_scalar($method)) { throw new Exception('Method name has no scalar value'); } 31 | if (is_array($params)) { $params = array_values($params);}else{throw new Exception('Params must be given as array');} 32 | if ($this->notification) {$currentId = NULL; }else{ $currentId = $this->id;} 33 | if($is_param_arr) 34 | { 35 | $request = array( 'method' => $method, 'params' => $params, 'id' => $currentId ); 36 | $request = json_encode($request); 37 | } 38 | else 39 | { 40 | $request = '{"jsonrpc":"2.0","id":"'.$currentId.'","method":"'.$method.'","params":'.$params[0].'}'; 41 | } 42 | $this->debug && $this->debug.='***** Request *****'."\n".$request."\n".'***** End Of request *****'."\n\n"; 43 | $ch = curl_init($this->url); 44 | curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); 45 | curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json')); 46 | curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST); 47 | curl_setopt($ch, CURLOPT_USERPWD, RPC_CRED); // RPC_CRED is set in ../init.php 48 | curl_setopt($ch, CURLOPT_POST, true); 49 | curl_setopt($ch, CURLOPT_POSTFIELDS, $request); 50 | #curl_setopt($ch,CURLOPT_TIMEOUT,10); 51 | 52 | $response = json_decode(curl_exec($ch),true); 53 | curl_close($ch); 54 | 55 | if ($this->debug) { echo nl2br($debug); } 56 | if (!$this->notification) { 57 | 58 | if ($response['id'] != $currentId) { return $response; } 59 | if (isset($response['error']) AND !is_null($response['error'])) { return $response; } 60 | return $response['result']; 61 | }else{ 62 | return true; 63 | } 64 | 65 | } 66 | } 67 | ?> 68 | -------------------------------------------------------------------------------- /config.php: -------------------------------------------------------------------------------- 1 | array( 11 | 'hostname' => 'localhost', 12 | 'username' => 'root', 13 | 'password' => '', 14 | 'database' => 'monero', 15 | ), 16 | 'site' => array( 17 | // If you're running script at root of domain leave this one "/", if you run in a subdirectory such as "http://YOURDOMAIN.com/xmr/exchange" you should enter "/xmr/exchange" 18 | 'base_url' => '/', 19 | ), 20 | 'asset' => array( 21 | XMR => array( 22 | // Your receiving XMR address, should be the one in your simplewallet 23 | 'address' => '4ABnA7A4NuvJFkUdEWrwxmQa2z1s6UKuw3n6LxkC5hsHh5SFBaj7WUDEEepy9VZE85FY5862roiDS26G519ktCTxGPAgGCD', 24 | // Default is 127.0.0.1 25 | 'daemon_host' => '127.0.0.1', 26 | // Default is 18081 27 | 'daemon_port' => '18081', 28 | // Default is 127.0.0.1 29 | 'wallet_host' => '127.0.0.1', 30 | // Default is 18082 31 | 'wallet_port' => '18082', 32 | // The minimum confirmations before an XMR transaction is approved (Default: 15) 33 | 'min_conf' => '15', 34 | // Minimum mixin is 0 35 | 'min_mixin' => '1', 36 | // Maximum mixin 37 | 'max_mixin' => '10', 38 | // Default mixin is 3 39 | 'default_mixin' => '3', 40 | // Minimum withdraw amount in XMR 41 | 'min_withdraw' => '0.1', 42 | // Fee per withdraw in XMR 43 | 'withdraw_fee' => '0.01', 44 | // Properties is sent to the CryptoNote object, DO NOT change unless you know what you are doing 45 | 'properties' => array( 46 | 'protocol' => 'CryptoNote', 47 | 'name' => 'Monero', // Safe to change 48 | 'short_name' => 'XMR', // if you change this, you must also change name of the files 49 | 'decimals' => 12 50 | ), 51 | ), 52 | // You could add more cryptonote currencies by following the scheme of XMR (@todo: This is only implemented in admin and cron, user area is xmr only) 53 | BCN => array( 54 | ), 55 | BBR => array( 56 | ), 57 | ), 58 | 'user' => array( 59 | 'username' => array( 60 | // Minimum characters in username (1 or more) 61 | 'min_length' => 3, 62 | // Maximum characters in username (20 is max in DB) 63 | 'max_length' => 20, 64 | ), 65 | 'password' => array( 66 | 'min_length' => 6, 67 | ), 68 | ), 69 | 'errors' => array( 70 | // If set to TRUE, you will receive an e-mail for any critical errors (recommended), such as daemon stops working 71 | 'enable_mail_notify' => TRUE, 72 | // E-mail to which any error notifications will be sent 73 | 'mail' => 'your@email.com', 74 | ), 75 | 'admins' => array( 76 | // List all usernames here whom you'd like to assign admin access 77 | 'admin', 78 | ), 79 | ); -------------------------------------------------------------------------------- /database.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS `info` ( 2 | `name` varchar(255) NOT NULL COMMENT 'Name of info, e.g. last_admin_login etc', 3 | `value` varchar(255) NOT NULL COMMENT 'Value of info, could be anything.', 4 | `comment` text COMMENT 'Optional comment to explain info', 5 | PRIMARY KEY (`name`) 6 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 7 | 8 | INSERT INTO `info` (`name`, `value`, `comment`) VALUES 9 | ('1_block_height', '1', 'Last checked block height for monero'), 10 | ('1_display_block_height', '1', NULL); 11 | 12 | CREATE TABLE IF NOT EXISTS `user` ( 13 | `user_id` bigint(20) NOT NULL AUTO_INCREMENT, 14 | `username` varchar(20) NOT NULL, 15 | `password` char(64) NOT NULL, 16 | PRIMARY KEY (`user_id`), 17 | UNIQUE KEY `username` (`username`) 18 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 19 | 20 | CREATE TABLE IF NOT EXISTS `users_assets` ( 21 | `user_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Foreign key to user.user_id', 22 | `asset_id` int(11) unsigned NOT NULL COMMENT '1 = XMR, we use this field to allow multiple currencies/assets', 23 | `balance` decimal(56,24) NOT NULL DEFAULT '0.000000000000000000000000' COMMENT 'Current available balance', 24 | PRIMARY KEY (`user_id`) 25 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 26 | 27 | CREATE TABLE IF NOT EXISTS `users_cn_payment_ids` ( 28 | `pid` bigint(20) unsigned NOT NULL AUTO_INCREMENT, 29 | `asset_id` int(11) unsigned NOT NULL COMMENT 'Asset ID', 30 | `payment_id` char(64) NOT NULL COMMENT 'Payment ID', 31 | `user_id` bigint(20) unsigned NOT NULL, 32 | `date_created` datetime NOT NULL, 33 | PRIMARY KEY (`pid`), 34 | UNIQUE KEY `payment_id` (`payment_id`), 35 | KEY `user_id` (`user_id`) 36 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 37 | 38 | CREATE TABLE IF NOT EXISTS `users_cn_transactions` ( 39 | `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'CryptoNote Txn ID', 40 | `pid` bigint(20) unsigned NOT NULL COMMENT 'Foreign key to users_cn_payment_ids.pid', 41 | `amount` decimal(28,12) unsigned NOT NULL COMMENT 'The amount transaction', 42 | `block_height` int(11) unsigned NOT NULL COMMENT 'The block height of this transaction', 43 | `tx_hash` char(64) NOT NULL, 44 | `datetime` datetime NOT NULL, 45 | `status` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '0 = pending, 1 = complete', 46 | PRIMARY KEY (`id`) 47 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 48 | 49 | CREATE TABLE IF NOT EXISTS `users_transactions` ( 50 | `id` bigint(20) unsigned NOT NULL COMMENT 'Txn ID', 51 | `user_id` bigint(20) unsigned NOT NULL COMMENT 'Foreign key to user.user_id', 52 | `amount` decimal(56,24) NOT NULL COMMENT 'Positive = incoming, Negative = outgoing', 53 | `asset_id` int(11) unsigned NOT NULL COMMENT 'Asset that was transacted', 54 | `datetime` datetime NOT NULL COMMENT 'Date and time of txn', 55 | PRIMARY KEY (`id`), 56 | KEY `user_id` (`user_id`) 57 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 58 | 59 | CREATE TABLE IF NOT EXISTS `withdraws_complete` ( 60 | `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Withdraw ID', 61 | `user_id` bigint(20) unsigned NOT NULL COMMENT 'User ID who requested payment', 62 | `address` text NOT NULL COMMENT 'Reciever address, e.g bitcoin address, monero address, bank info etc', 63 | `amount` decimal(56,24) unsigned NOT NULL DEFAULT '0.000000000000000000000000' COMMENT 'Amount', 64 | `fee` decimal(56,24) unsigned NOT NULL DEFAULT '0.000000000000000000000000' COMMENT 'Fee amount (already detucted from amount)', 65 | `date_paid` datetime NOT NULL, 66 | `asset_id` int(11) unsigned NOT NULL COMMENT 'Asset ID', 67 | `mixin` tinyint(3) unsigned NOT NULL DEFAULT '0', 68 | `txn` text NOT NULL COMMENT 'Transaction id onec status is 1', 69 | PRIMARY KEY (`id`) 70 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Completed withdraws' AUTO_INCREMENT=1 ; 71 | 72 | CREATE TABLE IF NOT EXISTS `withdraws_pending` ( 73 | `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Withdraw ID', 74 | `user_id` bigint(20) unsigned NOT NULL COMMENT 'User ID who requested payment', 75 | `address` text NOT NULL COMMENT 'Reciever address, e.g bitcoin address, monero address, bank info etc', 76 | `payment_id` char(64) NOT NULL, 77 | `amount` decimal(56,24) unsigned NOT NULL DEFAULT '0.000000000000000000000000' COMMENT 'Amount (without fee / receivable)', 78 | `fee` decimal(56,24) unsigned NOT NULL DEFAULT '0.000000000000000000000000' COMMENT 'Fee amount (already detucted from amount)', 79 | `date_requested` datetime NOT NULL, 80 | `asset_id` int(11) unsigned NOT NULL COMMENT 'Asset ID', 81 | `mixin` tinyint(3) unsigned NOT NULL DEFAULT '0', 82 | `status` tinyint(1) NOT NULL COMMENT '0 = Pending, 1 = Approved (waiting for payment processing), -1 error/failed, rejected/canceled are deleted', 83 | `error` text NOT NULL COMMENT 'If status = -1, there can be an error message here', 84 | PRIMARY KEY (`id`), 85 | KEY `status` (`status`) 86 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Pending withdraws' AUTO_INCREMENT=1 ; -------------------------------------------------------------------------------- /db.php: -------------------------------------------------------------------------------- 1 | connect_errno) 10 | { 11 | echo "Failed to connect to MySQL: (" . $db->connect_errno . ") " . $db->connect_error; exit; 12 | } -------------------------------------------------------------------------------- /functions.php: -------------------------------------------------------------------------------- 1 | value pair and table name, the method 35 | * will quote and escape everything automatically. To not quote/escape simply 36 | * send the value as array($value) instead of $value. 37 | * 38 | * @param string table name 39 | * @param array key => val to be inserted 40 | * @return string the finished sql query 41 | */ 42 | function insert_query($table, $data) 43 | { 44 | $keys = array_keys($data); 45 | $values = array_values($data); 46 | 47 | $sql = 'INSERT INTO '.$table; 48 | 49 | $col = ' ('; 50 | $val = ' VALUES('; 51 | 52 | foreach($data as $k => $v) 53 | { 54 | $col .= $k.','; 55 | $val .= (is_array($v) ? $v[0] : quote_escape($v)).','; 56 | } 57 | 58 | $val = rtrim($val,',').');'; 59 | $col = rtrim($col,',').')'; 60 | 61 | return $sql.' '.$col.' '.$val; 62 | 63 | } 64 | 65 | // ---------------------------------------------------------------------------- 66 | 67 | /** 68 | * Retrive info value from db 69 | * 70 | * @param string name/identifier 71 | * @return string the value 72 | */ 73 | function info($name) 74 | { 75 | $s = db()->prepare('SELECT `value` FROM `info` WHERE `name` = ? LIMIT 1'); 76 | $s->bind_param('s',$name); 77 | $s->execute(); 78 | $s->bind_result($value); 79 | $s->fetch(); 80 | 81 | return $value; 82 | } 83 | 84 | // ---------------------------------------------------------------------------- 85 | 86 | /** 87 | * Flash Message (quick message) 88 | * 89 | * Checks for a message stored in session, if it exists it will return it and 90 | * delete it from session. 91 | * 92 | * @return string message or empty string if none 93 | */ 94 | function flash_msg() 95 | { 96 | if(isset($_SESSION['flash_message'])) 97 | { 98 | $msg = $_SESSION['flash_message']; 99 | unset($_SESSION['flash_message']); 100 | return $msg; 101 | } 102 | return ''; 103 | } 104 | 105 | // ---------------------------------------------------------------------------- 106 | 107 | /** 108 | * Force refresh of current page 109 | * 110 | * Must be executed before any output and will send user back to the same back 111 | * he is on (clearing $_POST variables) 112 | * 113 | * @return void 114 | */ 115 | function refresh() 116 | { 117 | redirect($_SERVER['REQUEST_URI'],true); 118 | } 119 | 120 | // ---------------------------------------------------------------------------- 121 | 122 | /** 123 | * Redirect user to another page 124 | * 125 | * @param string|null The url to redirect to 126 | * @param bool determines if the url specified is a full url or short (within the site) 127 | * @return void 128 | */ 129 | function redirect($url = null,$full_url = false) 130 | { 131 | global $config; 132 | 133 | if($url === null) 134 | { 135 | $url = $_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].$config['site']['base_url']; 136 | } 137 | else 138 | { 139 | if( ! $full_url) 140 | { 141 | $url = $_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].$config['site']['base_url'].$url; 142 | } 143 | } 144 | header('Location: '.$url); 145 | exit; 146 | } 147 | 148 | // ---------------------------------------------------------------------------- 149 | 150 | /** 151 | * CSRF token generation 152 | * 153 | * Adds token to session, as array. 154 | * 155 | * @todo it may be smart to add expiration for more security 156 | * @return string a token 157 | */ 158 | function csrf_token() 159 | { 160 | if( ! isset($_SESSION['csrf_token'])) $_SESSION['csrf_token'] = array(); 161 | $token = $_SESSION['csrf_token'][] = random_str(); 162 | return $token; 163 | } 164 | 165 | // ---------------------------------------------------------------------------- 166 | 167 | /** 168 | * CSRF check 169 | * 170 | * Will validate a token against those stored in sessions (to protect against CSRF) 171 | * 172 | * @param string token 173 | * @return bool 174 | */ 175 | function csrf_check($token) 176 | { 177 | if(isset($_SESSION['csrf_token']) and is_array($_SESSION['csrf_token'])) 178 | { 179 | if(($key = array_search($token,$_SESSION['csrf_token'])) !== false) 180 | { 181 | unset($_SESSION['csrf_token'][$key]); 182 | return TRUE; 183 | } 184 | } 185 | 186 | return FALSE; 187 | } 188 | 189 | // ---------------------------------------------------------------------------- 190 | 191 | /** 192 | * Generate random non-case alpha-numeric hash/string 193 | * 194 | * @param int length of hash 195 | * @return string random hash 196 | */ 197 | function random_str($length = 64) 198 | { 199 | $str = ''; 200 | while(strlen($str) < $length) 201 | { 202 | $str .= sha1(mcrypt_create_iv(24, MCRYPT_DEV_URANDOM)); 203 | } 204 | return substr($str,0,$length); 205 | } 206 | 207 | // ---------------------------------------------------------------------------- 208 | 209 | ### For compability, re-implementation of functions that may not be available on all servers ### 210 | 211 | if( ! function_exists('ctype_alnum')) 212 | { 213 | function ctype_alnum($text) 214 | { 215 | return preg_match('/^[a-zA-Z0-9]+$/', $text); 216 | } 217 | } -------------------------------------------------------------------------------- /init.php: -------------------------------------------------------------------------------- 1 | $conf) 67 | { 68 | if( ! isset($conf['properties'])) continue; 69 | 70 | $short_name = $conf['properties']['short_name']; 71 | 72 | $path = 'classes/asset/cryptonote/'.strtoupper($short_name).'/class.'.strtolower($short_name).'.php'; 73 | if(file_exists($path)) 74 | { 75 | include $path; 76 | } 77 | $path = 'classes/asset/cryptonote/'.strtoupper($short_name).'/class.'.strtolower($short_name).'.daemon.php'; 78 | if(file_exists($path)) 79 | { 80 | include $path; 81 | } 82 | $path = 'classes/asset/cryptonote/'.strtoupper($short_name).'/class.'.strtolower($short_name).'.wallet.php'; 83 | if(file_exists($path)) 84 | { 85 | include $path; 86 | } 87 | } 88 | 89 | $error = new Error_(); 90 | 91 | // Logout user 92 | if(isset($_POST['logout']) AND csrf_check($_POST['csrf_token'])) 93 | { 94 | User::logout(); 95 | refresh(); 96 | } 97 | -------------------------------------------------------------------------------- /install.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | Install 8 | 9 | 10 | 11 |
12 | 15 | 16 |

17 | 18 | 19 | 20 | 21 | 22 | 23 |
Server requirements are:
PHP 5.3.3+OK' : 'Too old version of PHP, you are running '.PHP_VERSION.'');?>
MySQLiOK' : 'mysqli extension is not enabled');?>
BCMathOK' : 'bcmath extension is not enabled');?>
PHP Short TagsOK' : 'short_open_tag is not enabled' )?>
24 | 25 |

26 |
WARNING! Your server does not fulfill the requirements, please look into the errors above before proceeding.
27 |
28 | 29 |
30 |
Congratulations! Your server fulfills all the requirements.
31 |
32 | 33 | 34 |

35 | 36 |
    37 |
  1. Open config.php and enter your database details. Please follow the steps below to install.
  2. 38 |
    39 | 'database' => array(
    40 |         'hostname' => 'localhost',
    41 |         'username' => 'your_username',
    42 |         'password' => 'your_password',
    43 |         'database' => 'your_database',
    44 | ),
    45 |
  3. Import database.sql into your database
  4. 46 | 55 |
  5. By default the user admin is assigned admin rights, sign up with username "admin", use a strong password
  6. 56 |
  7. You can change admins in config.php at any time, e.g if you want user "admin", "jack" and "john" to be admins it should look like this: 57 |
    58 | 'admins' => array(
    59 |     // List all usernames here whom you'd like to assign admin access
    60 |     'admin','jack','john'
    61 | ),
    62 |
  8. 63 |
  9. Change config.php base_url, it should usually be set to "/"
  10. 64 |
  11. Now setup the XMR daemon and wallet, if you are unsure how, you can read how to do that https://moneroeconomy.com/xmr-integration
  12. 65 |
66 |
67 | 68 | -------------------------------------------------------------------------------- /qr/CHANGELOG: -------------------------------------------------------------------------------- 1 | * 1.0.0 build 2010031920 2 | 3 | - first public release 4 | - help in readme, install 5 | - cleanup ans separation of QRtools and QRspec 6 | - now TCPDF binding requires minimal changes in TCPDF, having most of job 7 | done in QRtools tcpdfBarcodeArray 8 | - nicer QRtools::timeBenchmark output 9 | - license and copyright notices in files 10 | - indent cleanup - from tab to 4spc, keep it that way please :) 11 | - sf project, repository, wiki 12 | - simple code generator in index.php 13 | 14 | * 1.1.0 build 2010032113 15 | 16 | - added merge tool wich generate merged version of code 17 | located in phpqrcode.php 18 | - splited qrconst.php from qrlib.php 19 | 20 | * 1.1.1 build 2010032405 21 | 22 | - patch by Rick Seymour allowing saving PNG and displaying it at the same time 23 | - added version info in VERSION file 24 | - modified merge tool to include version info into generated file 25 | - fixed e-mail in almost all head comments 26 | 27 | * 1.1.2 build 2010032722 28 | 29 | - full integration with TCPDF thanks to Nicola Asuni, it's author 30 | - fixed bug with alphanumeric encoding detection 31 | 32 | * 1.1.3 build 2010081807 33 | 34 | - short opening tags replaced with standard ones 35 | 36 | * 1.1.4 build 2010100721 37 | 38 | - added missing static keyword QRinput::check (found by Luke Brookhart, Onjax LLC) 39 | -------------------------------------------------------------------------------- /qr/INSTALL: -------------------------------------------------------------------------------- 1 | == REQUIREMENTS == 2 | 3 | * PHP5 4 | * PHP GD2 extension with JPEG and PNG support 5 | 6 | == INSTALLATION == 7 | 8 | If you want to recreate cache by yourself make sure cache directory is 9 | writable and you have permisions to write into it. Also make sure you are 10 | able to read files in it if you have cache option enabled 11 | 12 | == CONFIGURATION == 13 | 14 | Feel free to modify config constants in qrconfig.php file. Read about it in 15 | provided comments and project wiki page (links in README file) 16 | 17 | == QUICK START == 18 | 19 | Notice: probably you should'nt use all of this in same script :) 20 | 21 | encode('PHP QR Code :)'); 47 | QRspec::debug($tab, true); 48 | 49 | == TCPDF INTEGRATION == 50 | 51 | Inside bindings/tcpdf you will find slightly modified 2dbarcodes.php. 52 | Instal phpqrcode liblaty inside tcpdf folder, then overwrite (or merge) 53 | 2dbarcodes.php 54 | 55 | Then use similar as example #50 from TCPDF examples: 56 | 57 | true, 61 | 'padding' => 4, 62 | 'fgcolor' => array(0,0,0), 63 | 'bgcolor' => false, //array(255,255,255) 64 | ); 65 | 66 | //code name: QR, specify error correction level after semicolon (L,M,Q,H) 67 | $pdf->write2DBarcode('PHP QR Code :)', 'QR,L', '', '', 30, 30, $style, 'N'); 68 | -------------------------------------------------------------------------------- /qr/README: -------------------------------------------------------------------------------- 1 | This is PHP implementation of QR Code 2-D barcode generator. It is pure-php 2 | LGPL-licensed implementation based on C libqrencode by Kentaro Fukuchi. 3 | 4 | == LICENSING == 5 | 6 | Copyright (C) 2010 by Dominik Dzienia 7 | 8 | This library is free software; you can redistribute it and/or modify it under 9 | the terms of the GNU Lesser General Public License as published by the Free 10 | Software Foundation; either version 3 of the License, or any later version. 11 | 12 | This library is distributed in the hope that it will be useful, but WITHOUT ANY 13 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 14 | PARTICULAR PURPOSE. See the GNU Lesser General Public License (LICENSE file) 15 | for more details. 16 | 17 | You should have received a copy of the GNU Lesser General Public License along 18 | with this library; if not, write to the Free Software Foundation, Inc., 51 19 | Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 | 21 | == INSTALATION AND USAGE == 22 | 23 | * INSTALL file 24 | * http://sourceforge.net/apps/mediawiki/phpqrcode/index.php?title=Main_Page 25 | 26 | == CONTACT == 27 | 28 | Fell free to contact me via e-mail (deltalab at poczta dot fm) or using 29 | folowing project pages: 30 | 31 | * http://sourceforge.net/projects/phpqrcode/ 32 | * http://phpqrcode.sourceforge.net/ 33 | 34 | == ACKNOWLEDGMENTS == 35 | 36 | Based on C libqrencode library (ver. 3.1.1) 37 | Copyright (C) 2006-2010 by Kentaro Fukuchi 38 | http://megaui.net/fukuchi/works/qrencode/index.en.html 39 | 40 | QR Code is registered trademarks of DENSO WAVE INCORPORATED in JAPAN and other 41 | countries. 42 | 43 | Reed-Solomon code encoder is written by Phil Karn, KA9Q. 44 | Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q 45 | -------------------------------------------------------------------------------- /qr/VERSION: -------------------------------------------------------------------------------- 1 | 1.1.4 2 | 2010100721 -------------------------------------------------------------------------------- /qr/cache/frame_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_1.dat -------------------------------------------------------------------------------- /qr/cache/frame_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_1.png -------------------------------------------------------------------------------- /qr/cache/frame_10.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_10.dat -------------------------------------------------------------------------------- /qr/cache/frame_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_10.png -------------------------------------------------------------------------------- /qr/cache/frame_11.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_11.dat -------------------------------------------------------------------------------- /qr/cache/frame_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_11.png -------------------------------------------------------------------------------- /qr/cache/frame_12.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_12.dat -------------------------------------------------------------------------------- /qr/cache/frame_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_12.png -------------------------------------------------------------------------------- /qr/cache/frame_13.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_13.dat -------------------------------------------------------------------------------- /qr/cache/frame_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_13.png -------------------------------------------------------------------------------- /qr/cache/frame_14.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_14.dat -------------------------------------------------------------------------------- /qr/cache/frame_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_14.png -------------------------------------------------------------------------------- /qr/cache/frame_15.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_15.dat -------------------------------------------------------------------------------- /qr/cache/frame_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_15.png -------------------------------------------------------------------------------- /qr/cache/frame_16.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_16.dat -------------------------------------------------------------------------------- /qr/cache/frame_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_16.png -------------------------------------------------------------------------------- /qr/cache/frame_17.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_17.dat -------------------------------------------------------------------------------- /qr/cache/frame_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_17.png -------------------------------------------------------------------------------- /qr/cache/frame_18.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_18.dat -------------------------------------------------------------------------------- /qr/cache/frame_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_18.png -------------------------------------------------------------------------------- /qr/cache/frame_19.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_19.dat -------------------------------------------------------------------------------- /qr/cache/frame_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_19.png -------------------------------------------------------------------------------- /qr/cache/frame_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_2.dat -------------------------------------------------------------------------------- /qr/cache/frame_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_2.png -------------------------------------------------------------------------------- /qr/cache/frame_20.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_20.dat -------------------------------------------------------------------------------- /qr/cache/frame_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_20.png -------------------------------------------------------------------------------- /qr/cache/frame_21.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_21.dat -------------------------------------------------------------------------------- /qr/cache/frame_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_21.png -------------------------------------------------------------------------------- /qr/cache/frame_22.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_22.dat -------------------------------------------------------------------------------- /qr/cache/frame_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_22.png -------------------------------------------------------------------------------- /qr/cache/frame_23.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_23.dat -------------------------------------------------------------------------------- /qr/cache/frame_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_23.png -------------------------------------------------------------------------------- /qr/cache/frame_24.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_24.dat -------------------------------------------------------------------------------- /qr/cache/frame_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_24.png -------------------------------------------------------------------------------- /qr/cache/frame_25.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_25.dat -------------------------------------------------------------------------------- /qr/cache/frame_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_25.png -------------------------------------------------------------------------------- /qr/cache/frame_26.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_26.dat -------------------------------------------------------------------------------- /qr/cache/frame_26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_26.png -------------------------------------------------------------------------------- /qr/cache/frame_27.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_27.dat -------------------------------------------------------------------------------- /qr/cache/frame_27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_27.png -------------------------------------------------------------------------------- /qr/cache/frame_28.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_28.dat -------------------------------------------------------------------------------- /qr/cache/frame_28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_28.png -------------------------------------------------------------------------------- /qr/cache/frame_29.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_29.dat -------------------------------------------------------------------------------- /qr/cache/frame_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_29.png -------------------------------------------------------------------------------- /qr/cache/frame_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_3.dat -------------------------------------------------------------------------------- /qr/cache/frame_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_3.png -------------------------------------------------------------------------------- /qr/cache/frame_30.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_30.dat -------------------------------------------------------------------------------- /qr/cache/frame_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_30.png -------------------------------------------------------------------------------- /qr/cache/frame_31.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_31.dat -------------------------------------------------------------------------------- /qr/cache/frame_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_31.png -------------------------------------------------------------------------------- /qr/cache/frame_32.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_32.dat -------------------------------------------------------------------------------- /qr/cache/frame_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_32.png -------------------------------------------------------------------------------- /qr/cache/frame_33.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_33.dat -------------------------------------------------------------------------------- /qr/cache/frame_33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_33.png -------------------------------------------------------------------------------- /qr/cache/frame_34.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_34.dat -------------------------------------------------------------------------------- /qr/cache/frame_34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_34.png -------------------------------------------------------------------------------- /qr/cache/frame_35.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_35.dat -------------------------------------------------------------------------------- /qr/cache/frame_35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_35.png -------------------------------------------------------------------------------- /qr/cache/frame_36.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_36.dat -------------------------------------------------------------------------------- /qr/cache/frame_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_36.png -------------------------------------------------------------------------------- /qr/cache/frame_37.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_37.dat -------------------------------------------------------------------------------- /qr/cache/frame_37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_37.png -------------------------------------------------------------------------------- /qr/cache/frame_38.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_38.dat -------------------------------------------------------------------------------- /qr/cache/frame_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_38.png -------------------------------------------------------------------------------- /qr/cache/frame_39.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_39.dat -------------------------------------------------------------------------------- /qr/cache/frame_39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_39.png -------------------------------------------------------------------------------- /qr/cache/frame_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_4.dat -------------------------------------------------------------------------------- /qr/cache/frame_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_4.png -------------------------------------------------------------------------------- /qr/cache/frame_40.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_40.dat -------------------------------------------------------------------------------- /qr/cache/frame_40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_40.png -------------------------------------------------------------------------------- /qr/cache/frame_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_5.dat -------------------------------------------------------------------------------- /qr/cache/frame_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_5.png -------------------------------------------------------------------------------- /qr/cache/frame_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_6.dat -------------------------------------------------------------------------------- /qr/cache/frame_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_6.png -------------------------------------------------------------------------------- /qr/cache/frame_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_7.dat -------------------------------------------------------------------------------- /qr/cache/frame_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_7.png -------------------------------------------------------------------------------- /qr/cache/frame_8.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_8.dat -------------------------------------------------------------------------------- /qr/cache/frame_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_8.png -------------------------------------------------------------------------------- /qr/cache/frame_9.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_9.dat -------------------------------------------------------------------------------- /qr/cache/frame_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/frame_9.png -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_101_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_101_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_105_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_105_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_109_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_109_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_113_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_113_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_117_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_117_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_121_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_121_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_125_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_125_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_129_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_129_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_133_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_133_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_137_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_137_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_141_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_141_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_145_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_145_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_149_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_149_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_153_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_153_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_157_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_157_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_161_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_161_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_165_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_165_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_169_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_169_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_173_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_173_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_177_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_177_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_21_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_21_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_25_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_25_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_29_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_29_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_33_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_33_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_37_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_37_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_41_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_41_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_45_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_45_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_49_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_49_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_53_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_53_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_57_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_57_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_61_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_61_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_65_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_65_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_69_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_69_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_73_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_73_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_77_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_77_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_81_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_81_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_85_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_85_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_89_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_89_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_93_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_93_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_0/mask_97_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_0/mask_97_0.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_101_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_101_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_105_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_105_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_109_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_109_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_113_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_113_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_117_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_117_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_121_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_121_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_125_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_125_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_129_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_129_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_133_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_133_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_137_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_137_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_141_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_141_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_145_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_145_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_149_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_149_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_153_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_153_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_157_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_157_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_161_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_161_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_165_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_165_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_169_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_169_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_173_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_173_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_177_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_177_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_21_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_21_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_25_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_25_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_29_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_29_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_33_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_33_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_37_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_37_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_41_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_41_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_45_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_45_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_49_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_49_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_53_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_53_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_57_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_57_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_61_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_61_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_65_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_65_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_69_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_69_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_73_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_73_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_77_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_77_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_81_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_81_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_85_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_85_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_89_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_89_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_93_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_93_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_1/mask_97_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_1/mask_97_1.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_101_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_101_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_105_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_105_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_109_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_109_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_113_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_113_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_117_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_117_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_121_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_121_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_125_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_125_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_129_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_129_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_133_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_133_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_137_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_137_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_141_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_141_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_145_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_145_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_149_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_149_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_153_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_153_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_157_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_157_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_161_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_161_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_165_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_165_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_169_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_169_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_173_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_173_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_177_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_177_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_21_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_21_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_25_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_25_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_29_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_29_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_33_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_33_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_37_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_37_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_41_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_41_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_45_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_45_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_49_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_49_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_53_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_53_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_57_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_57_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_61_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_61_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_65_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_65_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_69_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_69_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_73_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_73_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_77_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_77_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_81_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_81_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_85_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_85_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_89_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_89_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_93_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_93_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_2/mask_97_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_2/mask_97_2.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_101_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_101_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_105_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_105_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_109_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_109_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_113_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_113_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_117_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_117_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_121_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_121_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_125_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_125_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_129_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_129_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_133_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_133_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_137_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_137_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_141_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_141_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_145_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_145_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_149_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_149_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_153_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_153_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_157_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_157_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_161_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_161_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_165_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_165_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_169_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_169_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_173_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_173_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_177_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_177_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_21_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_21_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_25_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_25_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_29_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_29_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_33_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_33_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_37_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_37_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_41_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_41_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_45_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_45_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_49_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_49_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_53_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_53_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_57_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_57_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_61_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_61_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_65_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_65_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_69_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_69_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_73_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_73_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_77_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_77_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_81_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_81_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_85_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_85_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_89_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_89_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_93_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_93_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_3/mask_97_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_3/mask_97_3.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_101_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_101_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_105_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_105_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_109_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_109_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_113_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_113_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_117_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_117_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_121_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_121_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_125_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_125_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_129_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_129_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_133_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_133_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_137_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_137_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_141_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_141_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_145_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_145_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_149_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_149_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_153_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_153_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_157_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_157_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_161_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_161_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_165_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_165_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_169_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_169_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_173_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_173_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_177_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_177_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_21_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_21_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_25_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_25_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_29_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_29_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_33_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_33_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_37_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_37_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_41_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_41_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_45_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_45_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_49_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_49_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_53_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_53_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_57_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_57_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_61_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_61_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_65_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_65_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_69_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_69_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_73_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_73_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_77_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_77_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_81_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_81_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_85_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_85_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_89_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_89_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_93_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_93_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_4/mask_97_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_4/mask_97_4.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_101_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_101_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_105_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_105_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_109_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_109_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_113_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_113_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_117_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_117_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_121_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_121_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_125_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_125_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_129_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_129_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_133_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_133_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_137_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_137_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_141_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_141_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_145_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_145_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_149_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_149_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_153_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_153_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_157_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_157_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_161_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_161_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_165_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_165_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_169_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_169_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_173_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_173_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_177_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_177_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_21_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_21_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_25_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_25_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_29_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_29_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_33_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_33_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_37_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_37_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_41_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_41_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_45_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_45_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_49_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_49_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_53_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_53_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_57_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_57_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_61_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_61_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_65_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_65_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_69_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_69_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_73_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_73_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_77_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_77_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_81_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_81_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_85_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_85_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_89_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_89_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_93_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_93_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_5/mask_97_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_5/mask_97_5.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_101_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_101_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_105_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_105_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_109_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_109_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_113_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_113_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_117_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_117_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_121_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_121_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_125_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_125_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_129_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_129_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_133_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_133_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_137_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_137_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_141_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_141_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_145_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_145_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_149_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_149_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_153_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_153_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_157_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_157_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_161_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_161_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_165_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_165_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_169_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_169_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_173_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_173_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_177_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_177_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_21_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_21_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_25_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_25_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_29_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_29_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_33_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_33_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_37_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_37_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_41_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_41_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_45_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_45_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_49_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_49_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_53_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_53_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_57_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_57_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_61_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_61_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_65_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_65_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_69_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_69_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_73_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_73_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_77_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_77_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_81_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_81_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_85_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_85_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_89_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_89_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_93_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_93_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_6/mask_97_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_6/mask_97_6.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_101_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_101_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_105_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_105_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_109_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_109_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_113_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_113_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_117_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_117_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_121_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_121_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_125_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_125_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_129_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_129_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_133_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_133_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_137_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_137_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_141_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_141_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_145_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_145_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_149_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_149_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_153_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_153_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_157_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_157_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_161_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_161_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_165_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_165_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_169_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_169_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_173_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_173_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_177_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_177_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_21_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_21_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_25_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_25_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_29_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_29_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_33_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_33_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_37_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_37_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_41_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_41_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_45_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_45_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_49_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_49_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_53_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_53_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_57_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_57_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_61_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_61_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_65_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_65_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_69_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_69_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_73_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_73_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_77_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_77_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_81_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_81_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_85_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_85_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_89_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_89_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_93_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_93_7.dat -------------------------------------------------------------------------------- /qr/cache/mask_7/mask_97_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/cache/mask_7/mask_97_7.dat -------------------------------------------------------------------------------- /qr/errors.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheKoziTwo/xmr-integration/6d44763d6fb4517c2ec6e9eb245bc682d377bdf4/qr/errors.txt -------------------------------------------------------------------------------- /qr/index.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * This library is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 3 of the License, or any later version. 14 | * 15 | * This library is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with this library; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | echo "

PHP QR Code


"; 26 | 27 | //set it to writable location, a place for temp generated PNG files 28 | $PNG_TEMP_DIR = dirname(__FILE__).DIRECTORY_SEPARATOR.'temp'.DIRECTORY_SEPARATOR; 29 | 30 | //html PNG location prefix 31 | $PNG_WEB_DIR = 'temp/'; 32 | 33 | include "qrlib.php"; 34 | 35 | //ofcourse we need rights to create temp dir 36 | if (!file_exists($PNG_TEMP_DIR)) 37 | mkdir($PNG_TEMP_DIR); 38 | 39 | 40 | $filename = $PNG_TEMP_DIR.'test.png'; 41 | 42 | //processing form input 43 | //remember to sanitize user input in real-life solution !!! 44 | $errorCorrectionLevel = 'L'; 45 | if (isset($_REQUEST['level']) && in_array($_REQUEST['level'], array('L','M','Q','H'))) 46 | $errorCorrectionLevel = $_REQUEST['level']; 47 | 48 | $matrixPointSize = 4; 49 | if (isset($_REQUEST['size'])) 50 | $matrixPointSize = min(max((int)$_REQUEST['size'], 1), 10); 51 | 52 | 53 | if (isset($_REQUEST['data'])) { 54 | 55 | //it's very important! 56 | if (trim($_REQUEST['data']) == '') 57 | die('data cannot be empty! back'); 58 | 59 | // user data 60 | $filename = $PNG_TEMP_DIR.'test'.md5($_REQUEST['data'].'|'.$errorCorrectionLevel.'|'.$matrixPointSize).'.png'; 61 | QRcode::png($_REQUEST['data'], $filename, $errorCorrectionLevel, $matrixPointSize, 2); 62 | 63 | } else { 64 | 65 | //default data 66 | echo 'You can provide data in GET parameter: like that
'; 67 | QRcode::png('PHP QR Code :)', $filename, $errorCorrectionLevel, $matrixPointSize, 2); 68 | 69 | } 70 | 71 | //display generated file 72 | echo '
'; 73 | 74 | //config form 75 | echo '
76 | Data:   77 | ECC:   83 | Size:   89 |

'; 90 | 91 | // benchmark 92 | QRtools::timeBenchmark(); 93 | 94 | -------------------------------------------------------------------------------- /qr/qrbitstream.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * PHP QR Code is distributed under LGPL 3 11 | * Copyright (C) 2010 Dominik Dzienia 12 | * 13 | * This library is free software; you can redistribute it and/or 14 | * modify it under the terms of the GNU Lesser General Public 15 | * License as published by the Free Software Foundation; either 16 | * version 3 of the License, or any later version. 17 | * 18 | * This library is distributed in the hope that it will be useful, 19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 21 | * Lesser General Public License for more details. 22 | * 23 | * You should have received a copy of the GNU Lesser General Public 24 | * License along with this library; if not, write to the Free Software 25 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 26 | */ 27 | 28 | class QRbitstream { 29 | 30 | public $data = array(); 31 | 32 | //---------------------------------------------------------------------- 33 | public function size() 34 | { 35 | return count($this->data); 36 | } 37 | 38 | //---------------------------------------------------------------------- 39 | public function allocate($setLength) 40 | { 41 | $this->data = array_fill(0, $setLength, 0); 42 | return 0; 43 | } 44 | 45 | //---------------------------------------------------------------------- 46 | public static function newFromNum($bits, $num) 47 | { 48 | $bstream = new QRbitstream(); 49 | $bstream->allocate($bits); 50 | 51 | $mask = 1 << ($bits - 1); 52 | for($i=0; $i<$bits; $i++) { 53 | if($num & $mask) { 54 | $bstream->data[$i] = 1; 55 | } else { 56 | $bstream->data[$i] = 0; 57 | } 58 | $mask = $mask >> 1; 59 | } 60 | 61 | return $bstream; 62 | } 63 | 64 | //---------------------------------------------------------------------- 65 | public static function newFromBytes($size, $data) 66 | { 67 | $bstream = new QRbitstream(); 68 | $bstream->allocate($size * 8); 69 | $p=0; 70 | 71 | for($i=0; $i<$size; $i++) { 72 | $mask = 0x80; 73 | for($j=0; $j<8; $j++) { 74 | if($data[$i] & $mask) { 75 | $bstream->data[$p] = 1; 76 | } else { 77 | $bstream->data[$p] = 0; 78 | } 79 | $p++; 80 | $mask = $mask >> 1; 81 | } 82 | } 83 | 84 | return $bstream; 85 | } 86 | 87 | //---------------------------------------------------------------------- 88 | public function append(QRbitstream $arg) 89 | { 90 | if (is_null($arg)) { 91 | return -1; 92 | } 93 | 94 | if($arg->size() == 0) { 95 | return 0; 96 | } 97 | 98 | if($this->size() == 0) { 99 | $this->data = $arg->data; 100 | return 0; 101 | } 102 | 103 | $this->data = array_values(array_merge($this->data, $arg->data)); 104 | 105 | return 0; 106 | } 107 | 108 | //---------------------------------------------------------------------- 109 | public function appendNum($bits, $num) 110 | { 111 | if ($bits == 0) 112 | return 0; 113 | 114 | $b = QRbitstream::newFromNum($bits, $num); 115 | 116 | if(is_null($b)) 117 | return -1; 118 | 119 | $ret = $this->append($b); 120 | unset($b); 121 | 122 | return $ret; 123 | } 124 | 125 | //---------------------------------------------------------------------- 126 | public function appendBytes($size, $data) 127 | { 128 | if ($size == 0) 129 | return 0; 130 | 131 | $b = QRbitstream::newFromBytes($size, $data); 132 | 133 | if(is_null($b)) 134 | return -1; 135 | 136 | $ret = $this->append($b); 137 | unset($b); 138 | 139 | return $ret; 140 | } 141 | 142 | //---------------------------------------------------------------------- 143 | public function toByte() 144 | { 145 | 146 | $size = $this->size(); 147 | 148 | if($size == 0) { 149 | return array(); 150 | } 151 | 152 | $data = array_fill(0, (int)(($size + 7) / 8), 0); 153 | $bytes = (int)($size / 8); 154 | 155 | $p = 0; 156 | 157 | for($i=0; $i<$bytes; $i++) { 158 | $v = 0; 159 | for($j=0; $j<8; $j++) { 160 | $v = $v << 1; 161 | $v |= $this->data[$p]; 162 | $p++; 163 | } 164 | $data[$i] = $v; 165 | } 166 | 167 | if($size & 7) { 168 | $v = 0; 169 | for($j=0; $j<($size & 7); $j++) { 170 | $v = $v << 1; 171 | $v |= $this->data[$p]; 172 | $p++; 173 | } 174 | $data[$bytes] = $v; 175 | } 176 | 177 | return $data; 178 | } 179 | 180 | } 181 | -------------------------------------------------------------------------------- /qr/qrconfig.php: -------------------------------------------------------------------------------- 1 | 10 | * 11 | * PHP QR Code is distributed under LGPL 3 12 | * Copyright (C) 2010 Dominik Dzienia 13 | * 14 | * This library is free software; you can redistribute it and/or 15 | * modify it under the terms of the GNU Lesser General Public 16 | * License as published by the Free Software Foundation; either 17 | * version 3 of the License, or any later version. 18 | * 19 | * This library is distributed in the hope that it will be useful, 20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 22 | * Lesser General Public License for more details. 23 | * 24 | * You should have received a copy of the GNU Lesser General Public 25 | * License along with this library; if not, write to the Free Software 26 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 27 | */ 28 | 29 | // Encoding modes 30 | 31 | define('QR_MODE_NUL', -1); 32 | define('QR_MODE_NUM', 0); 33 | define('QR_MODE_AN', 1); 34 | define('QR_MODE_8', 2); 35 | define('QR_MODE_KANJI', 3); 36 | define('QR_MODE_STRUCTURE', 4); 37 | 38 | // Levels of error correction. 39 | 40 | define('QR_ECLEVEL_L', 0); 41 | define('QR_ECLEVEL_M', 1); 42 | define('QR_ECLEVEL_Q', 2); 43 | define('QR_ECLEVEL_H', 3); 44 | 45 | // Supported output formats 46 | 47 | define('QR_FORMAT_TEXT', 0); 48 | define('QR_FORMAT_PNG', 1); 49 | 50 | class qrstr { 51 | public static function set(&$srctab, $x, $y, $repl, $replLen = false) { 52 | $srctab[$y] = substr_replace($srctab[$y], ($replLen !== false)?substr($repl,0,$replLen):$repl, $x, ($replLen !== false)?$replLen:strlen($repl)); 53 | } 54 | } -------------------------------------------------------------------------------- /qr/qrimage.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * This library is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 3 of the License, or any later version. 14 | * 15 | * This library is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with this library; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | define('QR_IMAGE', true); 26 | 27 | class QRimage { 28 | 29 | //---------------------------------------------------------------------- 30 | public static function png($frame, $filename = false, $pixelPerPoint = 4, $outerFrame = 4,$saveandprint=FALSE) 31 | { 32 | $image = self::image($frame, $pixelPerPoint, $outerFrame); 33 | 34 | if ($filename === false) { 35 | Header("Content-type: image/png"); 36 | ImagePng($image); 37 | } else { 38 | if($saveandprint===TRUE){ 39 | ImagePng($image, $filename); 40 | header("Content-type: image/png"); 41 | ImagePng($image); 42 | }else{ 43 | ImagePng($image, $filename); 44 | } 45 | } 46 | 47 | ImageDestroy($image); 48 | } 49 | 50 | //---------------------------------------------------------------------- 51 | public static function jpg($frame, $filename = false, $pixelPerPoint = 8, $outerFrame = 4, $q = 85) 52 | { 53 | $image = self::image($frame, $pixelPerPoint, $outerFrame); 54 | 55 | if ($filename === false) { 56 | Header("Content-type: image/jpeg"); 57 | ImageJpeg($image, null, $q); 58 | } else { 59 | ImageJpeg($image, $filename, $q); 60 | } 61 | 62 | ImageDestroy($image); 63 | } 64 | 65 | //---------------------------------------------------------------------- 66 | private static function image($frame, $pixelPerPoint = 4, $outerFrame = 4) 67 | { 68 | $h = count($frame); 69 | $w = strlen($frame[0]); 70 | 71 | $imgW = $w + 2*$outerFrame; 72 | $imgH = $h + 2*$outerFrame; 73 | 74 | $base_image =ImageCreate($imgW, $imgH); 75 | 76 | $col[0] = ImageColorAllocate($base_image,255,255,255); 77 | $col[1] = ImageColorAllocate($base_image,0,0,0); 78 | 79 | imagefill($base_image, 0, 0, $col[0]); 80 | 81 | for($y=0; $y<$h; $y++) { 82 | for($x=0; $x<$w; $x++) { 83 | if ($frame[$y][$x] == '1') { 84 | ImageSetPixel($base_image,$x+$outerFrame,$y+$outerFrame,$col[1]); 85 | } 86 | } 87 | } 88 | 89 | $target_image =ImageCreate($imgW * $pixelPerPoint, $imgH * $pixelPerPoint); 90 | ImageCopyResized($target_image, $base_image, 0, 0, 0, 0, $imgW * $pixelPerPoint, $imgH * $pixelPerPoint, $imgW, $imgH); 91 | ImageDestroy($base_image); 92 | 93 | return $target_image; 94 | } 95 | } -------------------------------------------------------------------------------- /qr/qrlib.php: -------------------------------------------------------------------------------- 1 | 10 | * 11 | * PHP QR Code is distributed under LGPL 3 12 | * Copyright (C) 2010 Dominik Dzienia 13 | * 14 | * This library is free software; you can redistribute it and/or 15 | * modify it under the terms of the GNU Lesser General Public 16 | * License as published by the Free Software Foundation; either 17 | * version 3 of the License, or any later version. 18 | * 19 | * This library is distributed in the hope that it will be useful, 20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 22 | * Lesser General Public License for more details. 23 | * 24 | * You should have received a copy of the GNU Lesser General Public 25 | * License along with this library; if not, write to the Free Software 26 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 27 | */ 28 | 29 | $QR_BASEDIR = dirname(__FILE__).DIRECTORY_SEPARATOR; 30 | 31 | // Required libs 32 | 33 | include $QR_BASEDIR."qrconst.php"; 34 | include $QR_BASEDIR."qrconfig.php"; 35 | include $QR_BASEDIR."qrtools.php"; 36 | include $QR_BASEDIR."qrspec.php"; 37 | include $QR_BASEDIR."qrimage.php"; 38 | include $QR_BASEDIR."qrinput.php"; 39 | include $QR_BASEDIR."qrbitstream.php"; 40 | include $QR_BASEDIR."qrsplit.php"; 41 | include $QR_BASEDIR."qrrscode.php"; 42 | include $QR_BASEDIR."qrmask.php"; 43 | include $QR_BASEDIR."qrencode.php"; 44 | 45 | -------------------------------------------------------------------------------- /qr/qrtools.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * This library is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU Lesser General Public 12 | * License as published by the Free Software Foundation; either 13 | * version 3 of the License, or any later version. 14 | * 15 | * This library is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 | * Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with this library; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 23 | */ 24 | 25 | class QRtools { 26 | 27 | //---------------------------------------------------------------------- 28 | public static function binarize($frame) 29 | { 30 | $len = count($frame); 31 | foreach ($frame as &$frameLine) { 32 | 33 | for($i=0; $i<$len; $i++) { 34 | $frameLine[$i] = (ord($frameLine[$i])&1)?'1':'0'; 35 | } 36 | } 37 | 38 | return $frame; 39 | } 40 | 41 | //---------------------------------------------------------------------- 42 | public static function tcpdfBarcodeArray($code, $mode = 'QR,L', $tcPdfVersion = '4.5.037') 43 | { 44 | $barcode_array = array(); 45 | 46 | if (!is_array($mode)) 47 | $mode = explode(',', $mode); 48 | 49 | $eccLevel = 'L'; 50 | 51 | if (count($mode) > 1) { 52 | $eccLevel = $mode[1]; 53 | } 54 | 55 | $qrTab = QRcode::text($code, false, $eccLevel); 56 | $size = count($qrTab); 57 | 58 | $barcode_array['num_rows'] = $size; 59 | $barcode_array['num_cols'] = $size; 60 | $barcode_array['bcode'] = array(); 61 | 62 | foreach ($qrTab as $line) { 63 | $arrAdd = array(); 64 | foreach(str_split($line) as $char) 65 | $arrAdd[] = ($char=='1')?1:0; 66 | $barcode_array['bcode'][] = $arrAdd; 67 | } 68 | 69 | return $barcode_array; 70 | } 71 | 72 | //---------------------------------------------------------------------- 73 | public static function clearCache() 74 | { 75 | self::$frames = array(); 76 | } 77 | 78 | //---------------------------------------------------------------------- 79 | public static function buildCache() 80 | { 81 | QRtools::markTime('before_build_cache'); 82 | 83 | $mask = new QRmask(); 84 | for ($a=1; $a <= QRSPEC_VERSION_MAX; $a++) { 85 | $frame = QRspec::newFrame($a); 86 | if (QR_IMAGE) { 87 | $fileName = QR_CACHE_DIR.'frame_'.$a.'.png'; 88 | QRimage::png(self::binarize($frame), $fileName, 1, 0); 89 | } 90 | 91 | $width = count($frame); 92 | $bitMask = array_fill(0, $width, array_fill(0, $width, 0)); 93 | for ($maskNo=0; $maskNo<8; $maskNo++) 94 | $mask->makeMaskNo($maskNo, $width, $frame, $bitMask, true); 95 | } 96 | 97 | QRtools::markTime('after_build_cache'); 98 | } 99 | 100 | //---------------------------------------------------------------------- 101 | public static function log($outfile, $err) 102 | { 103 | if (QR_LOG_DIR !== false) { 104 | if ($err != '') { 105 | if ($outfile !== false) { 106 | file_put_contents(QR_LOG_DIR.basename($outfile).'-errors.txt', date('Y-m-d H:i:s').': '.$err, FILE_APPEND); 107 | } else { 108 | file_put_contents(QR_LOG_DIR.'errors.txt', date('Y-m-d H:i:s').': '.$err, FILE_APPEND); 109 | } 110 | } 111 | } 112 | } 113 | 114 | //---------------------------------------------------------------------- 115 | public static function dumpMask($frame) 116 | { 117 | $width = count($frame); 118 | for($y=0;$y<$width;$y++) { 119 | for($x=0;$x<$width;$x++) { 120 | echo ord($frame[$y][$x]).','; 121 | } 122 | } 123 | } 124 | 125 | //---------------------------------------------------------------------- 126 | public static function markTime($markerId) 127 | { 128 | list($usec, $sec) = explode(" ", microtime()); 129 | $time = ((float)$usec + (float)$sec); 130 | 131 | if (!isset($GLOBALS['qr_time_bench'])) 132 | $GLOBALS['qr_time_bench'] = array(); 133 | 134 | $GLOBALS['qr_time_bench'][$markerId] = $time; 135 | } 136 | 137 | //---------------------------------------------------------------------- 138 | public static function timeBenchmark() 139 | { 140 | self::markTime('finish'); 141 | 142 | $lastTime = 0; 143 | $startTime = 0; 144 | $p = 0; 145 | 146 | echo ' 147 | 148 | '; 149 | 150 | foreach($GLOBALS['qr_time_bench'] as $markerId=>$thisTime) { 151 | if ($p > 0) { 152 | echo ''; 153 | } else { 154 | $startTime = $thisTime; 155 | } 156 | 157 | $p++; 158 | $lastTime = $thisTime; 159 | } 160 | 161 | echo ' 162 | 163 | 164 |
BENCHMARK
till '.$markerId.': '.number_format($thisTime-$lastTime, 6).'s
TOTAL: '.number_format($lastTime-$startTime, 6).'s
'; 165 | } 166 | 167 | } 168 | 169 | //########################################################################## 170 | 171 | QRtools::markTime('start'); 172 | -------------------------------------------------------------------------------- /qr/tools/merge.bat: -------------------------------------------------------------------------------- 1 | php ./merge.php 2 | pause -------------------------------------------------------------------------------- /qr/tools/merge.php: -------------------------------------------------------------------------------- 1 | 12 | * 13 | * This library is free software; you can redistribute it and/or 14 | * modify it under the terms of the GNU Lesser General Public 15 | * License as published by the Free Software Foundation; either 16 | * version 3 of the License, or any later version. 17 | * 18 | * This library is distributed in the hope that it will be useful, 19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 21 | * Lesser General Public License for more details. 22 | * 23 | * You should have received a copy of the GNU Lesser General Public 24 | * License along with this library; if not, write to the Free Software 25 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 26 | */ 27 | 28 | $QR_BASEDIR = dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR; 29 | $QR_TOOLSDIR = dirname(__FILE__).DIRECTORY_SEPARATOR; 30 | 31 | $outputFile = $QR_BASEDIR.'phpqrcode.php'; 32 | 33 | // Required libs 34 | 35 | $fileList = array( 36 | $QR_BASEDIR.'qrconst.php', 37 | $QR_TOOLSDIR.'merged_config.php', 38 | $QR_BASEDIR.'qrtools.php', 39 | $QR_BASEDIR.'qrspec.php', 40 | $QR_BASEDIR.'qrimage.php', 41 | $QR_BASEDIR.'qrinput.php', 42 | $QR_BASEDIR.'qrbitstream.php', 43 | $QR_BASEDIR.'qrsplit.php', 44 | $QR_BASEDIR.'qrrscode.php', 45 | $QR_BASEDIR.'qrmask.php', 46 | $QR_BASEDIR.'qrencode.php' 47 | ); 48 | 49 | $headerFile = $QR_TOOLSDIR.'merged_header.php'; 50 | $versionFile = $QR_BASEDIR.'VERSION'; 51 | 52 | $outputCode = ''; 53 | 54 | foreach($fileList as $fileName) { 55 | $outputCode .= "\n\n".'//---- '.basename($fileName).' -----------------------------'."\n\n"; 56 | $anotherCode = file_get_contents($fileName); 57 | $anotherCode = preg_replace ('/^<\?php/', '', $anotherCode); 58 | $anotherCode = preg_replace ('/\?>\*$/', '', $anotherCode); 59 | $outputCode .= "\n\n".$anotherCode."\n\n"; 60 | } 61 | 62 | $versionDataEx = explode("\n", file_get_contents($versionFile)); 63 | 64 | $outputContents = file_get_contents($headerFile); 65 | $outputContents .= "\n\n/*\n * Version: ".trim($versionDataEx[0])."\n * Build: ".trim($versionDataEx[1])."\n */\n\n"; 66 | $outputContents .= $outputCode; 67 | 68 | file_put_contents($outputFile, $outputContents); 69 | 70 | -------------------------------------------------------------------------------- /qr/tools/merge.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | php ./merge.php -------------------------------------------------------------------------------- /qr/tools/merged_config.php: -------------------------------------------------------------------------------- 1 | 20 | * 21 | * This library is free software; you can redistribute it and/or 22 | * modify it under the terms of the GNU Lesser General Public 23 | * License as published by the Free Software Foundation; either 24 | * version 3 of the License, or any later version. 25 | * 26 | * This library is distributed in the hope that it will be useful, 27 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 28 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 29 | * Lesser General Public License for more details. 30 | * 31 | * You should have received a copy of the GNU Lesser General Public 32 | * License along with this library; if not, write to the Free Software 33 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 34 | */ 35 | 36 | -------------------------------------------------------------------------------- /qrPR.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Admin Panel 6 | 7 | 8 | 9 |
10 | 13 | 14 | 15 |
16 |
17 |

name?> (short_name?>)

18 |
19 |
20 | 21 | 22 | 23 | 31 | 32 | 33 | 43 | 44 | is_ready()) { ?> 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 |
Wallet Status 24 | 25 | OK 26 | 27 | NOT RESPONDING 28 | 29 | - (HOST: 30 | PORT: )
Daemon Status 34 | is_ready()) { ?> 35 | OK 36 | is_busy()) { ?> 37 | BUSY 38 | 39 | NOT RESPONDING 40 | 41 | - (HOST: 42 | PORT: )
Block Heightget_block_count()?>
Address
Min. Confirmations
Mixin- (Default: )
Min. Withdraw short_name?>
Withdraw Fee short_name?>
53 | Wallet/daemon status:
54 | OK = Everything is functioning correctly.
55 | BUSY = the blockchain is being saved, just wait for a while and it should return to OK.
56 | NOT RESPONDING = the daemon or wallet is shut off or not responding on the IP/PORT and will require investigation. 57 | 58 | 59 | 60 | Balance 61 | 62 | 63 | 64 | 65 |
Lockedget_locked_balance()?> short_name?>
Unlockedget_unlocked_balance()?> short_name?>
Total Balanceget_balance()?> short_name?>
66 | 67 | 68 |
69 |
70 | 71 | 72 |
73 | 74 | --------------------------------------------------------------------------------