├── admin ├── addUserForm.php ├── admin.php ├── changePasswordForm.php └── showUserList.php ├── config.php ├── css └── style.css ├── index.php ├── install ├── install.php └── installForm.php ├── lib ├── TFAErrorHandler.php ├── dbManager.php ├── googleAuthenticator.php ├── nocsrf.php ├── phpqrcode │ ├── 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 │ ├── 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 └── showQRCode.php ├── login ├── login.php └── loginForm.php ├── nginx └── auth.php ├── readme.md └── user ├── changePasswordForm.php ├── logout.php └── user.php /admin/addUserForm.php: -------------------------------------------------------------------------------- 1 | FORBIDDEN - This page cannot be called directly"; 18 | http_response_code(403); 19 | exit(); 20 | } 21 | 22 | ?> 23 |
24 |
25 | 26 | ADD USER 27 | 28 |
29 | 30 |
31 | 32 |
33 | 34 | 35 |
36 | 37 |
38 |
39 | 40 | 41 |
42 | 43 |
44 |
45 | 46 | 47 |
48 | 49 |
50 |
51 | 52 |
53 |
54 |
55 |
56 | -------------------------------------------------------------------------------- /admin/changePasswordForm.php: -------------------------------------------------------------------------------- 1 | FORBIDDEN - This page cannot be called directly"; 16 | http_response_code(403); 17 | exit(); 18 | } 19 | 20 | ?> 21 |
22 |
23 | 24 | Change password for user 25 | 26 |
27 | 28 |
29 | 30 | 31 |
32 | 33 | 34 |
35 | 36 |
37 |
38 | 39 | 40 |
41 | 42 |
43 |
44 |
45 |
46 | -------------------------------------------------------------------------------- /admin/showUserList.php: -------------------------------------------------------------------------------- 1 | FORBIDDEN - This page cannot be called directly"; 16 | http_response_code(403); 17 | exit(); 18 | } 19 | 20 | //-------------------------------------------------------- 21 | // Get the list of users and their admin 22 | if (!($userList = $dbManager->getUserList())) { 23 | $message = "[ERROR] Could not get users from the database"; 24 | } 25 | else { 26 | //-------------------------------------------------------- 27 | // Create the list of users as a table content 28 | foreach ($userList as $userName => $isAdmin) { 29 | echo ""; 30 | echo "".$userName.""; 31 | echo "".(($isAdmin === 0)? "No" : "Yes").""; 32 | echo ""; 33 | echo "
"; 34 | echo ""; 35 | echo ""; 36 | echo "\n"; 37 | echo "\n"; 38 | echo "\n"; 39 | echo ""; 40 | echo "
"; 41 | echo ""; 42 | } 43 | } 44 | ?> -------------------------------------------------------------------------------- /config.php: -------------------------------------------------------------------------------- 1 | CHANGE THIS TO YOUR OWN MEANINGFUL TITLE 44 | define('QRCODE_TITLE','www.example.com'); 45 | 46 | //======================================================================== 47 | // Application & Session settings 48 | //======================================================================== 49 | 50 | // Set the session name you want to use. If you're integrating TwoFactorAuth 51 | // with your own application session, you might want to set it to the session name 52 | // you're already using 53 | define('SESSION_NAME','2fatkn'); 54 | 55 | // Redirection mechanism upon successful login : 56 | // If the user has been redirected to the login page from another page AND this other page 57 | // is passed as a GET parameter to the login page, then the user will be redirected back to 58 | // the originating URL 59 | // Otherwise, redirect to the URL specified here 60 | define('AUTH_SUCCEED_REDIRECT_URL','https://www.example.com/'); 61 | 62 | // If you are using TwoFactorAuth with nginx, and are experiencing common issues 63 | // like infinite redirects or failed authentications, you can log authentication 64 | // activity to the file /nginx/debug.log for your review. 65 | define('TFA_NGINX_DEBUG', false); 66 | ?> 67 | -------------------------------------------------------------------------------- /css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | background-repeat: no-repeat; 5 | background: #000000; /* Old browsers */ 6 | background: linear-gradient(top, #000000 0%,#090A44 100%); /* W3C */ 7 | background: -moz-linear-gradient(top, #000000 0%, #090A44 100%) no-repeat; /* FF3.6+ */ 8 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#000000), color-stop(100%,#090A44)); /* Chrome,Safari4+ */ 9 | background: -webkit-linear-gradient(top, #000000 0%,#090A44 100%); /* Chrome10+,Safari5.1+ */ 10 | background: -o-linear-gradient(top, #000000 0%,#090A44 100%); /* Opera11.10+ */ 11 | background: -ms-linear-gradient(top, #000000 0%,#090A44 100%); /* IE10+ */ 12 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#000000', endColorstr='#090A44',GradientType=0 ); /* IE6-9 */ 13 | } 14 | 15 | html { 16 | height: 100%; 17 | } 18 | 19 | .supersize1 { 20 | font-size: 1.25em; 21 | } 22 | 23 | .feedback { 24 | color: #ff0000; 25 | border-radius: 3px; 26 | display: none; 27 | background-color: #aaaaaa; 28 | } 29 | 30 | .message { 31 | padding: 7px; 32 | } 33 | 34 | .blackOut { 35 | position: absolute; 36 | 37 | top:0px; 38 | left:0px; 39 | z-index: 5; 40 | width:100%; 41 | height:100%; 42 | background-color: rgba(0,0,0,.8); 43 | text-align:center; 44 | } 45 | 46 | span.boxWrapper{ 47 | border: solid; 48 | border-width: 1px; 49 | border-radius: 3px; 50 | padding: 10px; 51 | background-color: #ffffff; 52 | display:block; 53 | width:640px; 54 | height:480px; 55 | margin:0 auto; 56 | z-index:8; 57 | } 58 | 59 | .box { 60 | margin-left:auto; 61 | margin-right:auto; 62 | vertical-align:center; 63 | z-index:8; 64 | } -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 41 | 42 | 43 | 44 | TwoFactorAuth 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 |
53 |
54 |
55 |
56 |
57 | 58 | Logged as {$username} 59 | 60 |
61 |
    62 | EOT; 63 | 64 | echo "
  • User management
  • "; 65 | 66 | if (isset($_SESSION["isAdmin"]) && $_SESSION["isAdmin"] === true) { 67 | echo "
  • Administration
  • "; 68 | } 69 | 70 | echo << 72 |
73 |
74 |
75 |
76 | 77 | 78 | EOT; 79 | } 80 | else { 81 | $redirectTo = ((isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] === "on")? "https://" : "http://").$_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$baseUrl."/login/login.php"; 82 | header("Location: ".$redirectTo,true,302); 83 | } 84 | 85 | } 86 | ?> -------------------------------------------------------------------------------- /install/installForm.php: -------------------------------------------------------------------------------- 1 | FORBIDDEN - This page cannot be called directly"; 18 | http_response_code(403); 19 | exit(); 20 | } 21 | ?> 22 | 23 | 24 | 25 | TwoFactorAuth 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
34 |
35 |
36 |
37 |
38 | 39 | INSTALLATION 40 |
41 | 42 |
43 | This script will finalize the installation of TwoFactorAuth on your server. What it does :
44 |
    45 |
  • Create some directories
  • 46 |
  • Create the users database
  • 47 |
  • Create the first user with admin rights
  • 48 |
49 | Current settings from the config.php :
50 |
    51 |
  • SESSION_NAME :
  • 52 |
  • QRCODE_TITLE :
  • 53 |
  • AUTH_SUCCEED_REDIRECT_URL :
  • 54 |
55 | If these settings do not match your expectations, please modify the config.php before proceeding.
56 |
57 | Please enter details for the first user (will have admin rights) :
58 |
59 |
60 |
61 | 62 | 63 |
64 | 65 |
66 |
67 | 68 | 69 |
70 | 71 |
72 |
73 | 74 | 75 |
76 | 77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 | 86 | 131 | 132 | 133 | -------------------------------------------------------------------------------- /lib/TFAErrorHandler.php: -------------------------------------------------------------------------------- 1 | 6 | * Licensed under the MIT license 7 | * 8 | * @author Thibaut Despoulain 9 | * @version 1.0 10 | */ 11 | class NoCSRF 12 | { 13 | 14 | protected static $doOriginCheck = false; 15 | 16 | /** 17 | * Check CSRF tokens match between session and $origin. 18 | * Make sure you generated a token in the form before checking it. 19 | * 20 | * @param String $key The session and $origin key where to find the token. 21 | * @param Mixed $origin The object/associative array to retreive the token data from (usually $_POST). 22 | * @param Boolean $throwException (Facultative) TRUE to throw exception on check fail, FALSE or default to return false. 23 | * @param Integer $timespan (Facultative) Makes the token expire after $timespan seconds. (null = never) 24 | * @param Boolean $multiple (Facultative) Makes the token reusable and not one-time. (Useful for ajax-heavy requests). 25 | * 26 | * @return Boolean Returns FALSE if a CSRF attack is detected, TRUE otherwise. 27 | */ 28 | public static function check( $key, $origin, $throwException=false, $timespan=null, $multiple=false ) 29 | { 30 | if ( !isset( $_SESSION[ 'csrf_' . $key ] ) ) 31 | if($throwException) 32 | throw new Exception( 'Missing CSRF session token.' ); 33 | else 34 | return false; 35 | 36 | if ( !isset( $origin[ $key ] ) ) 37 | if($throwException) 38 | throw new Exception( 'Missing CSRF form token.' ); 39 | else 40 | return false; 41 | 42 | // Get valid token from session 43 | $hash = $_SESSION[ 'csrf_' . $key ]; 44 | 45 | // Free up session token for one-time CSRF token usage. 46 | if(!$multiple) 47 | $_SESSION[ 'csrf_' . $key ] = null; 48 | 49 | // Origin checks 50 | if( self::$doOriginCheck && sha1( $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'] ) != substr( base64_decode( $hash ), 10, 40 ) ) 51 | { 52 | if($throwException) 53 | throw new Exception( 'Form origin does not match token origin.' ); 54 | else 55 | return false; 56 | } 57 | 58 | // Check if session token matches form token 59 | if ( $origin[ $key ] != $hash ) 60 | if($throwException) 61 | throw new Exception( 'Invalid CSRF token.' ); 62 | else 63 | return false; 64 | 65 | // Check for token expiration 66 | if ( $timespan != null && is_int( $timespan ) && intval( substr( base64_decode( $hash ), 0, 10 ) ) + $timespan < time() ) 67 | if($throwException) 68 | throw new Exception( 'CSRF token has expired.' ); 69 | else 70 | return false; 71 | 72 | return true; 73 | } 74 | 75 | /** 76 | * Adds extra useragent and remote_addr checks to CSRF protections. 77 | */ 78 | public static function enableOriginCheck() 79 | { 80 | self::$doOriginCheck = true; 81 | } 82 | 83 | /** 84 | * CSRF token generation method. After generating the token, put it inside a hidden form field named $key. 85 | * 86 | * @param String $key The session key where the token will be stored. (Will also be the name of the hidden field name) 87 | * @return String The generated, base64 encoded token. 88 | */ 89 | public static function generate( $key ) 90 | { 91 | $extra = self::$doOriginCheck ? sha1( $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'] ) : ''; 92 | // token generation (basically base64_encode any random complex string, time() is used for token expiration) 93 | $token = base64_encode( time() . $extra . self::randomString( 32 ) ); 94 | // store the one-time token in session 95 | $_SESSION[ 'csrf_' . $key ] = $token; 96 | 97 | return $token; 98 | } 99 | 100 | /** 101 | * Generates a random string of given $length. 102 | * 103 | * @param Integer $length The string length. 104 | * @return String The randomly generated string. 105 | */ 106 | protected static function randomString( $length ) 107 | { 108 | $seed = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijqlmnopqrtsuvwxyz0123456789'; 109 | $max = strlen( $seed ) - 1; 110 | 111 | $string = ''; 112 | for ( $i = 0; $i < $length; ++$i ) 113 | $string .= $seed{intval( mt_rand( 0.0, $max ) )}; 114 | 115 | return $string; 116 | } 117 | 118 | } 119 | ?> 120 | -------------------------------------------------------------------------------- /lib/phpqrcode/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 | -------------------------------------------------------------------------------- /lib/phpqrcode/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 | -------------------------------------------------------------------------------- /lib/phpqrcode/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 | -------------------------------------------------------------------------------- /lib/phpqrcode/VERSION: -------------------------------------------------------------------------------- 1 | 1.1.4 2 | 2010100721 -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_1.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_10.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_10.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_10.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_11.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_11.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_11.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_12.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_12.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_12.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_13.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_13.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_13.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_14.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_14.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_14.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_15.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_15.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_15.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_16.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_16.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_16.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_17.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_17.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_17.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_18.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_18.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_18.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_19.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_19.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_19.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_2.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_20.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_20.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_20.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_21.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_21.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_21.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_22.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_22.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_22.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_23.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_23.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_23.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_24.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_24.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_24.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_25.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_25.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_25.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_26.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_26.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_26.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_27.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_27.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_27.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_28.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_28.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_28.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_29.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_29.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_29.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_3.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_30.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_30.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_30.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_31.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_31.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_31.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_32.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_32.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_32.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_33.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_33.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_33.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_34.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_34.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_34.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_35.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_35.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_35.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_36.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_36.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_36.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_37.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_37.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_37.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_38.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_38.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_38.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_39.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_39.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_39.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_4.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_40.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_40.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_40.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_5.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_6.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_7.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_8.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_8.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_8.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_9.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_9.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/frame_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/frame_9.png -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_101_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_101_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_105_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_105_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_109_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_109_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_113_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_113_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_117_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_117_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_121_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_121_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_125_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_125_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_129_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_129_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_133_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_133_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_137_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_137_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_141_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_141_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_145_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_145_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_149_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_149_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_153_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_153_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_157_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_157_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_161_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_161_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_165_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_165_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_169_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_169_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_173_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_173_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_177_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_177_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_21_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_21_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_25_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_25_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_29_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_29_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_33_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_33_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_37_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_37_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_41_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_41_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_45_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_45_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_49_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_49_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_53_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_53_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_57_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_57_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_61_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_61_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_65_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_65_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_69_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_69_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_73_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_73_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_77_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_77_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_81_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_81_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_85_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_85_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_89_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_89_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_93_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_93_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_0/mask_97_0.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_0/mask_97_0.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_101_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_101_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_105_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_105_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_109_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_109_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_113_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_113_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_117_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_117_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_121_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_121_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_125_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_125_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_129_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_129_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_133_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_133_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_137_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_137_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_141_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_141_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_145_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_145_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_149_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_149_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_153_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_153_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_157_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_157_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_161_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_161_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_165_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_165_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_169_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_169_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_173_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_173_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_177_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_177_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_21_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_21_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_25_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_25_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_29_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_29_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_33_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_33_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_37_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_37_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_41_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_41_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_45_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_45_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_49_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_49_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_53_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_53_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_57_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_57_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_61_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_61_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_65_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_65_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_69_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_69_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_73_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_73_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_77_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_77_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_81_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_81_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_85_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_85_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_89_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_89_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_93_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_93_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_1/mask_97_1.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_1/mask_97_1.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_101_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_101_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_105_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_105_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_109_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_109_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_113_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_113_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_117_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_117_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_121_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_121_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_125_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_125_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_129_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_129_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_133_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_133_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_137_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_137_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_141_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_141_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_145_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_145_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_149_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_149_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_153_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_153_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_157_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_157_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_161_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_161_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_165_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_165_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_169_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_169_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_173_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_173_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_177_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_177_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_21_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_21_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_25_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_25_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_29_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_29_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_33_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_33_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_37_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_37_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_41_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_41_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_45_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_45_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_49_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_49_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_53_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_53_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_57_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_57_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_61_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_61_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_65_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_65_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_69_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_69_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_73_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_73_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_77_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_77_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_81_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_81_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_85_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_85_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_89_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_89_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_93_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_93_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_2/mask_97_2.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_2/mask_97_2.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_101_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_101_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_105_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_105_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_109_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_109_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_113_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_113_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_117_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_117_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_121_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_121_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_125_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_125_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_129_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_129_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_133_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_133_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_137_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_137_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_141_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_141_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_145_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_145_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_149_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_149_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_153_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_153_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_157_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_157_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_161_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_161_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_165_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_165_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_169_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_169_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_173_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_173_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_177_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_177_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_21_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_21_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_25_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_25_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_29_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_29_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_33_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_33_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_37_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_37_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_41_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_41_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_45_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_45_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_49_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_49_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_53_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_53_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_57_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_57_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_61_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_61_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_65_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_65_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_69_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_69_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_73_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_73_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_77_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_77_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_81_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_81_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_85_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_85_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_89_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_89_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_93_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_93_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_3/mask_97_3.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_3/mask_97_3.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_101_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_101_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_105_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_105_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_109_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_109_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_113_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_113_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_117_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_117_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_121_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_121_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_125_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_125_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_129_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_129_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_133_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_133_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_137_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_137_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_141_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_141_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_145_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_145_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_149_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_149_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_153_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_153_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_157_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_157_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_161_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_161_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_165_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_165_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_169_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_169_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_173_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_173_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_177_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_177_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_21_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_21_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_25_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_25_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_29_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_29_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_33_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_33_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_37_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_37_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_41_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_41_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_45_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_45_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_49_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_49_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_53_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_53_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_57_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_57_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_61_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_61_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_65_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_65_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_69_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_69_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_73_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_73_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_77_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_77_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_81_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_81_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_85_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_85_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_89_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_89_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_93_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_93_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_4/mask_97_4.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_4/mask_97_4.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_101_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_101_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_105_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_105_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_109_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_109_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_113_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_113_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_117_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_117_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_121_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_121_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_125_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_125_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_129_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_129_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_133_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_133_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_137_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_137_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_141_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_141_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_145_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_145_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_149_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_149_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_153_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_153_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_157_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_157_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_161_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_161_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_165_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_165_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_169_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_169_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_173_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_173_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_177_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_177_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_21_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_21_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_25_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_25_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_29_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_29_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_33_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_33_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_37_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_37_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_41_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_41_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_45_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_45_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_49_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_49_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_53_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_53_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_57_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_57_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_61_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_61_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_65_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_65_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_69_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_69_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_73_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_73_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_77_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_77_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_81_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_81_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_85_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_85_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_89_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_89_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_93_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_93_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_5/mask_97_5.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_5/mask_97_5.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_101_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_101_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_105_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_105_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_109_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_109_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_113_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_113_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_117_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_117_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_121_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_121_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_125_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_125_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_129_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_129_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_133_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_133_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_137_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_137_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_141_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_141_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_145_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_145_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_149_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_149_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_153_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_153_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_157_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_157_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_161_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_161_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_165_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_165_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_169_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_169_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_173_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_173_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_177_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_177_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_21_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_21_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_25_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_25_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_29_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_29_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_33_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_33_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_37_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_37_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_41_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_41_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_45_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_45_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_49_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_49_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_53_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_53_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_57_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_57_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_61_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_61_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_65_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_65_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_69_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_69_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_73_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_73_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_77_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_77_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_81_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_81_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_85_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_85_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_89_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_89_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_93_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_93_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_6/mask_97_6.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_6/mask_97_6.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_101_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_101_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_105_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_105_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_109_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_109_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_113_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_113_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_117_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_117_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_121_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_121_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_125_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_125_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_129_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_129_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_133_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_133_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_137_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_137_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_141_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_141_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_145_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_145_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_149_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_149_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_153_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_153_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_157_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_157_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_161_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_161_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_165_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_165_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_169_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_169_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_173_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_173_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_177_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_177_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_21_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_21_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_25_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_25_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_29_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_29_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_33_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_33_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_37_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_37_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_41_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_41_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_45_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_45_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_49_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_49_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_53_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_53_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_57_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_57_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_61_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_61_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_65_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_65_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_69_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_69_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_73_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_73_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_77_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_77_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_81_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_81_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_85_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_85_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_89_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_89_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_93_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_93_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/cache/mask_7/mask_97_7.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arno0x/TwoFactorAuth/3539ca5b250a4acca8401b4f2cb7af2aae8baff0/lib/phpqrcode/cache/mask_7/mask_97_7.dat -------------------------------------------------------------------------------- /lib/phpqrcode/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 | -------------------------------------------------------------------------------- /lib/phpqrcode/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 | -------------------------------------------------------------------------------- /lib/phpqrcode/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 | } -------------------------------------------------------------------------------- /lib/phpqrcode/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 | } -------------------------------------------------------------------------------- /lib/phpqrcode/qrlib.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 | $QR_BASEDIR = dirname(__FILE__).DIRECTORY_SEPARATOR; 29 | 30 | // Required libs 31 | 32 | include $QR_BASEDIR."qrconst.php"; 33 | include $QR_BASEDIR."qrconfig.php"; 34 | include $QR_BASEDIR."qrtools.php"; 35 | include $QR_BASEDIR."qrspec.php"; 36 | include $QR_BASEDIR."qrimage.php"; 37 | include $QR_BASEDIR."qrinput.php"; 38 | include $QR_BASEDIR."qrbitstream.php"; 39 | include $QR_BASEDIR."qrsplit.php"; 40 | include $QR_BASEDIR."qrrscode.php"; 41 | include $QR_BASEDIR."qrmask.php"; 42 | include $QR_BASEDIR."qrencode.php"; 43 | 44 | -------------------------------------------------------------------------------- /lib/phpqrcode/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 | -------------------------------------------------------------------------------- /lib/phpqrcode/tools/merge.bat: -------------------------------------------------------------------------------- 1 | php ./merge.php 2 | pause -------------------------------------------------------------------------------- /lib/phpqrcode/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 | -------------------------------------------------------------------------------- /lib/phpqrcode/tools/merge.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | php ./merge.php -------------------------------------------------------------------------------- /lib/phpqrcode/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 | -------------------------------------------------------------------------------- /lib/showQRCode.php: -------------------------------------------------------------------------------- 1 | 53 |
54 | Scan the following QR Code with your Google Authenticator app:
55 | 56 | OUT; 57 | } 58 | ?> -------------------------------------------------------------------------------- /login/login.php: -------------------------------------------------------------------------------- 1 | getPasswordHashAndGauthSecret($username))) { 46 | $error = "[ERROR] Unknown user"; 47 | } else { 48 | // Import the GoogleAuth library and create a GoogleAuth object 49 | require_once(GAUTH_LIB); 50 | $gauth = new GoogleAuthenticator(); 51 | 52 | // Checking password hash and token 53 | if (($result['PASSWORDHASH'] !== hash("sha256",$password)) || !($gauth->verifyCode($result['GAUTHSECRET'],$token))) { 54 | $error = "[ERROR] Authentication failed"; 55 | } else { 56 | $isAdmin = $dbManager->getAdminStatus($username); 57 | } 58 | } 59 | 60 | $dbManager->close(); 61 | 62 | //-------------------------------------------------- 63 | // Login successful - let's proceed 64 | if (!isset($error)) { 65 | //-------------------------------------------------- 66 | // Creating a session to persist the authentication 67 | session_name(SESSION_NAME); 68 | session_cache_limiter('private_no_expire'); 69 | 70 | // Session parameters : 71 | // - Timelife of of the whole browser session 72 | // - Valid for all path on the domain, for this FQDN only 73 | // - Ensure Cookies are not available to Javascript 74 | // - Cookies are sent on https only 75 | $domain = ($_SERVER['HTTP_HOST'] !== 'localhost') ? $_SERVER['SERVER_NAME'] : false; 76 | session_set_cookie_params (0, "/", $domain, true, true); 77 | 78 | // Create a session 79 | session_start(); 80 | 81 | $_SESSION["authenticated"] = true; 82 | $_SESSION["username"] = $username; 83 | $_SESSION["isAdmin"] = ($isAdmin === 1)? true: false; 84 | 85 | //-------------------------------------------------- 86 | // Checking which URL we should redirect the user to 87 | if (isset($_GET['from'])) { 88 | $from = $_GET['from']; 89 | if (preg_match('#^(?:https?:)?//#', $_GET['from'], $m)) { 90 | $url = parse_url($_GET['from']); 91 | $from = $url['path'] . (!empty($url['query']) ? '?' . $url['query'] : '') . (!empty($url['fragment']) ? '#' . $url['fragment'] : ''); 92 | } 93 | $redirectTo = ((isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] === "on")? "https://" : "http://").$_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$from; 94 | } 95 | else { 96 | $redirectTo = AUTH_SUCCEED_REDIRECT_URL; 97 | } 98 | header("Location: ".$redirectTo,true,302); 99 | } 100 | else { 101 | http_response_code(403); 102 | require_once("loginForm.php"); 103 | } 104 | } catch (Exception $e) { 105 | $error = "[ERROR] Cannot open user database file"; 106 | require_once("loginForm.php"); 107 | } 108 | } 109 | ?> 110 | -------------------------------------------------------------------------------- /login/loginForm.php: -------------------------------------------------------------------------------- 1 | FORBIDDEN - This page cannot be called directly"; 17 | exit(); 18 | } 19 | 20 | $safe_from = ''; 21 | 22 | if (isset($_GET['from'])) 23 | { 24 | $safe_from = '?from=' . htmlspecialchars(urlencode(stripslashes($_GET['from'])), ENT_QUOTES); 25 | } 26 | ?> 27 | 28 | 29 | 30 | 31 | TwoFactorAuth 32 | 33 | 34 | 35 | 36 | 58 | 59 | 60 |
61 |
62 |
63 |
64 |
65 | 66 | LOGIN 67 |
68 | 69 |
70 |
71 | 72 | 73 |
74 | 75 |
76 |
77 | 78 | 79 |
80 | 81 |
82 |
83 | 84 | 85 |
86 | 87 |
88 |
89 |
90 | ".$error."
"; 93 | } 94 | ?> 95 |
96 |
97 |
98 | 99 | 101 | 102 | 103 | 104 | 143 | 144 | 145 | -------------------------------------------------------------------------------- /nginx/auth.php: -------------------------------------------------------------------------------- 1 | $value) { 52 | if (is_array($value)) { 53 | $vs = array(); 54 | 55 | foreach ($value AS $k => $v) { 56 | if (is_array($v)) { 57 | continue; 58 | } 59 | 60 | $vs[] = '[' . $k . "] => '" . $v . "'"; 61 | } 62 | 63 | $value = implode(",\n", $vs); 64 | } 65 | 66 | fwrite ($debugHandle,$key.": ".$value."\n"); 67 | } 68 | 69 | fwrite ($debugHandle,"END"); 70 | fclose($debugHandle); 71 | } 72 | } 73 | 74 | if (!defined('SESSION_NAME') OR !SESSION_NAME) { 75 | // don't authenticate if config.php is broken!! 76 | http_response_code(401); 77 | } 78 | 79 | //==================================================== 80 | // Restore an existing session 81 | session_name(SESSION_NAME); 82 | session_start(); 83 | 84 | //==================================================== 85 | // Check if the authentication has been completed 86 | if (isset($_SESSION["authenticated"]) && $_SESSION["authenticated"] === true) { 87 | http_response_code(200); 88 | } 89 | else { 90 | // Else return an HTTP 401 status code 91 | session_destroy(); 92 | http_response_code(401); 93 | } 94 | ?> 95 | -------------------------------------------------------------------------------- /user/changePasswordForm.php: -------------------------------------------------------------------------------- 1 | FORBIDDEN - This page cannot be called directly"; 16 | http_response_code(403); 17 | exit(); 18 | } 19 | 20 | ?> 21 |
22 |
23 | 24 | Change password for user 25 | 26 |
27 | 28 |
29 | 30 |
31 | 32 | 33 |
34 | 35 |
36 |
37 | 38 | 39 |
40 | 41 |
42 |
43 |
44 |
45 | -------------------------------------------------------------------------------- /user/logout.php: -------------------------------------------------------------------------------- 1 | 24 | 25 | 26 | 27 | 28 | TwoFactorAuth 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 |
37 |
38 |
39 |
40 |
41 | LOGGED OUT 42 |
43 |
44 |
45 |
46 |
47 | 48 | -------------------------------------------------------------------------------- /user/user.php: -------------------------------------------------------------------------------- 1 | ERROR - You must be logged in to access this page"; 26 | http_response_code(401); 27 | exit(); 28 | } 29 | 30 | //----------------------------------------------------- 31 | // Import required libraries 32 | require_once(DBMANAGER_LIB); 33 | require_once(NOCSRF_LIB); 34 | 35 | //------------------------------------------------------ 36 | // Retrieve the currently logged user from the session 37 | $username = $_SESSION["username"]; 38 | 39 | //------------------------------------------------------ 40 | // Main processing 41 | try { 42 | $dbManager = new DBManager(USER_SQL_DATABASE_FILE); 43 | 44 | //------------------------------------------------------ 45 | // Check if an action was requested on the admin page 46 | if (isset($_POST["action"])) { 47 | 48 | //--------------------------------------------- 49 | // Check for a CSRF attempt 50 | if (NoCSRF::check('csrf_token', $_POST, false, 60*10, false) === false) { 51 | echo "

CSRF attempt detected

"; 52 | http_response_code(403); 53 | exit(); 54 | } 55 | 56 | // Generate a new CSRF token to use in form hidden field 57 | $token = NoCSRF::generate('csrf_token'); 58 | 59 | //--------------------------------------------- 60 | // Parse all possible actions 61 | switch($_POST["action"]) { 62 | // Show the change password form for the selected user 63 | case "chgPwdForm": 64 | $overlay = "changePasswordForm.php"; 65 | break; 66 | 67 | // Show the change password form for the selected user 68 | case "changePassword": 69 | if (isset($_POST["password"])) { 70 | if($dbManager->updatePassword($username,$_POST['password'])) { 71 | $message = "[SUCCESS] Password successfully changed for user ".$username; 72 | } 73 | else { 74 | $message = "[ERROR] Could not change password for user ".$username.". Impossible to write into the user database"; 75 | } 76 | } 77 | break; 78 | 79 | // Show the QRCode, for current GAuth secret, for selected user 80 | case "showQRCode": 81 | require_once(GAUTH_LIB); 82 | 83 | // Create GoogleAuth object 84 | $gauth = new GoogleAuthenticator(); 85 | 86 | if (($secret = $dbManager->getGauthSecret($username))) { 87 | // Create the QRCode as PNG image 88 | $randomString = bin2hex(openssl_random_pseudo_bytes (15)); 89 | $qrcodeimg = QRCODE_TEMP_DIR.$randomString.".png"; 90 | $gauth->getQRCode($username,$secret,$qrcodeimg,QRCODE_TITLE); 91 | 92 | $overlay = LIB_DIR."/showQRCode.php"; 93 | } 94 | break; 95 | 96 | // Renew the GAuth secret for selected user and show the corresponding QRCode 97 | case "renewGAuthSecret": 98 | require_once(GAUTH_LIB); 99 | 100 | // Create GoogleAuth object 101 | $gauth = new GoogleAuthenticator(); 102 | $secret = $gauth->createSecret(); 103 | 104 | if (($dbManager->updateGauthSecret($username,$secret))) { 105 | // Create the QRCode as PNG image 106 | $randomString = bin2hex(openssl_random_pseudo_bytes (15)); 107 | $qrcodeimg = QRCODE_TEMP_DIR.$randomString.".png"; 108 | $gauth->getQRCode($username,$secret,$qrcodeimg,QRCODE_TITLE); 109 | 110 | $overlay = LIB_DIR."/showQRCode.php"; 111 | } 112 | break; 113 | } 114 | } 115 | else { 116 | // Generate CSRF token to use in form hidden field 117 | $token = NoCSRF::generate('csrf_token'); 118 | } 119 | } catch (Exception $e) { 120 | echo "

ERROR - Impossible to open the user database

"; 121 | exit(); 122 | } 123 | ?> 124 | 125 | 126 | 127 | 128 | TwoFactorAuth 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 |
137 |
138 |
139 |
140 |
141 | 142 | USER MANAGEMENT 143 |
144 |
145 |
146 | 147 | 148 | 149 | 150 |
151 |
152 | ".$message."
"; ?> 153 |
154 |
155 |
156 | 157 | 158 |
"; 161 | require_once($overlay); 162 | echo"
"; 163 | } 164 | ?> 165 | 167 | 168 | 169 | 174 | 175 | 176 | --------------------------------------------------------------------------------