<?php
/**
 * CURL Constants Mock for TCPDF
 * Define all required CURL constants when extension is not loaded
 */

if (!extension_loaded('curl')) {
    // Basic CURL options
    define('CURLOPT_AUTOREFERER', 58);
    define('CURLOPT_BINARYTRANSFER', 19914);
    define('CURLOPT_BUFFERSIZE', 98);
    define('CURLOPT_CAINFO', 10065);
    define('CURLOPT_CAPATH', 10097);
    define('CURLOPT_CONNECTTIMEOUT', 78);
    define('CURLOPT_CONNECTTIMEOUT_MS', 156);
    define('CURLOPT_COOKIE', 10022);
    define('CURLOPT_COOKIEFILE', 10031);
    define('CURLOPT_COOKIEJAR', 10082);
    define('CURLOPT_COOKIESESSION', 96);
    define('CURLOPT_CRLF', 27);
    define('CURLOPT_CUSTOMREQUEST', 10036);
    define('CURLOPT_DNS_CACHE_TIMEOUT', 92);
    define('CURLOPT_DNS_USE_GLOBAL_CACHE', 91);
    define('CURLOPT_EGDSOCKET', 10077);
    define('CURLOPT_ENCODING', 10102);
    define('CURLOPT_FAILONERROR', 45);
    define('CURLOPT_FILE', 10001);
    define('CURLOPT_FILETIME', 69);
    define('CURLOPT_FOLLOWLOCATION', 52);
    define('CURLOPT_FORBID_REUSE', 75);
    define('CURLOPT_FRESH_CONNECT', 74);
    define('CURLOPT_FTPAPPEND', 50);
    define('CURLOPT_FTPLISTONLY', 48);
    define('CURLOPT_FTPPORT', 10017);
    define('CURLOPT_FTPSSLAUTH', 129);
    define('CURLOPT_FTP_CREATE_MISSING_DIRS', 110);
    define('CURLOPT_FTP_RESPONSE_TIMEOUT', 112);
    define('CURLOPT_FTP_SSL', 119);
    define('CURLOPT_FTP_USE_EPRT', 106);
    define('CURLOPT_FTP_USE_EPSV', 85);
    define('CURLOPT_HEADER', 42);
    define('CURLOPT_HEADERFUNCTION', 20079);
    define('CURLOPT_HTTP200ALIASES', 10104);
    define('CURLOPT_HTTPAUTH', 107);
    define('CURLOPT_HTTPGET', 80);
    define('CURLOPT_HTTPHEADER', 10023);
    define('CURLOPT_HTTPPROXYTUNNEL', 61);
    define('CURLOPT_HTTP_VERSION', 84);
    define('CURLOPT_INFILE', 10009);
    define('CURLOPT_INFILESIZE', 14);
    define('CURLOPT_INTERFACE', 10062);
    define('CURLOPT_IPRESOLVE', 113);
    define('CURLOPT_KRB4LEVEL', 10063);
    define('CURLOPT_LOW_SPEED_LIMIT', 19);
    define('CURLOPT_LOW_SPEED_TIME', 20);
    define('CURLOPT_MAXCONNECTS', 71);
    define('CURLOPT_MAXREDIRS', 68);
    define('CURLOPT_NETRC', 51);
    define('CURLOPT_NOBODY', 44);
    define('CURLOPT_NOPROGRESS', 43);
    define('CURLOPT_NOSIGNAL', 99);
    define('CURLOPT_PORT', 3);
    define('CURLOPT_POST', 47);
    define('CURLOPT_POSTFIELDS', 10015);
    define('CURLOPT_POSTQUOTE', 10039);
    define('CURLOPT_PREQUOTE', 10093);
    define('CURLOPT_PRIVATE', 10103);
    define('CURLOPT_PROGRESSFUNCTION', 20056);
    define('CURLOPT_PROTOCOLS', 181);
    define('CURLOPT_PROXY', 10004);
    define('CURLOPT_PROXYAUTH', 111);
    define('CURLOPT_PROXYPORT', 59);
    define('CURLOPT_PROXYTYPE', 101);
    define('CURLOPT_PROXYUSERPWD', 10006);
    define('CURLOPT_PUT', 54);
    define('CURLOPT_QUOTE', 10028);
    define('CURLOPT_RANDOM_FILE', 10076);
    define('CURLOPT_RANGE', 10007);
    define('CURLOPT_READDATA', 10009);
    define('CURLOPT_READFUNCTION', 20012);
    define('CURLOPT_REDIR_PROTOCOLS', 182);
    define('CURLOPT_REFERER', 10016);
    define('CURLOPT_RESUME_FROM', 21);
    define('CURLOPT_RETURNTRANSFER', 19913);
    define('CURLOPT_SHARE', 10100);
    define('CURLOPT_SSLCERT', 10025);
    define('CURLOPT_SSLCERTPASSWD', 10026);
    define('CURLOPT_SSLCERTTYPE', 10086);
    define('CURLOPT_SSLENGINE', 10089);
    define('CURLOPT_SSLENGINE_DEFAULT', 90);
    define('CURLOPT_SSLKEY', 10087);
    define('CURLOPT_SSLKEYPASSWD', 10026);
    define('CURLOPT_SSLKEYTYPE', 10088);
    define('CURLOPT_SSLVERSION', 32);
    define('CURLOPT_SSL_CIPHER_LIST', 10083);
    define('CURLOPT_SSL_VERIFYHOST', 81);
    define('CURLOPT_SSL_VERIFYPEER', 64);
    define('CURLOPT_STDERR', 10037);
    define('CURLOPT_TELNETOPTIONS', 10070);
    define('CURLOPT_TIMECONDITION', 33);
    define('CURLOPT_TIMEOUT', 13);
    define('CURLOPT_TIMEOUT_MS', 155);
    define('CURLOPT_TIMEVALUE', 34);
    define('CURLOPT_TRANSFERTEXT', 53);
    define('CURLOPT_UNRESTRICTED_AUTH', 105);
    define('CURLOPT_UPLOAD', 46);
    define('CURLOPT_URL', 10002);
    define('CURLOPT_USERAGENT', 10018);
    define('CURLOPT_USERPWD', 10005);
    define('CURLOPT_VERBOSE', 41);
    define('CURLOPT_WRITEFUNCTION', 20011);
    define('CURLOPT_WRITEHEADER', 10029);
    
    // CURL Protocol constants
    define('CURLPROTO_HTTP', 1);
    define('CURLPROTO_HTTPS', 2);
    define('CURLPROTO_FTP', 4);
    define('CURLPROTO_FTPS', 8);
    define('CURLPROTO_SCP', 16);
    define('CURLPROTO_SFTP', 32);
    define('CURLPROTO_TELNET', 64);
    define('CURLPROTO_LDAP', 128);
    define('CURLPROTO_LDAPS', 256);
    define('CURLPROTO_DICT', 512);
    define('CURLPROTO_FILE', 1024);
    define('CURLPROTO_TFTP', 2048);
    define('CURLPROTO_ALL', 2147483647);
    
    // CURL Info constants
    define('CURLINFO_EFFECTIVE_URL', 1048577);
    define('CURLINFO_HTTP_CODE', 2097154);
    define('CURLINFO_HEADER_SIZE', 2097163);
    define('CURLINFO_REQUEST_SIZE', 2097164);
    define('CURLINFO_TOTAL_TIME', 3145731);
    define('CURLINFO_NAMELOOKUP_TIME', 3145732);
    define('CURLINFO_CONNECT_TIME', 3145733);
    define('CURLINFO_PRETRANSFER_TIME', 3145734);
    define('CURLINFO_SIZE_UPLOAD', 3145735);
    define('CURLINFO_SIZE_DOWNLOAD', 3145736);
    define('CURLINFO_SPEED_DOWNLOAD', 3145737);
    define('CURLINFO_SPEED_UPLOAD', 3145738);
    define('CURLINFO_FILETIME', 2097166);
    define('CURLINFO_SSL_VERIFYRESULT', 2097165);
    define('CURLINFO_REDIRECT_COUNT', 2097172);
    define('CURLINFO_REDIRECT_TIME', 3145747);
    define('CURLINFO_CONTENT_LENGTH_DOWNLOAD', 3145743);
    define('CURLINFO_CONTENT_LENGTH_UPLOAD', 3145744);
    define('CURLINFO_STARTTRANSFER_TIME', 3145745);
    define('CURLINFO_CONTENT_TYPE', 1048594);
    define('CURLINFO_HEADER_OUT', 2);
    define('CURLINFO_PRIVATE', 1048597);
    
    // CURL Error constants
    define('CURLE_OK', 0);
    define('CURLE_UNSUPPORTED_PROTOCOL', 1);
    define('CURLE_FAILED_INIT', 2);
    define('CURLE_URL_MALFORMAT', 3);
    define('CURLE_COULDNT_RESOLVE_PROXY', 5);
    define('CURLE_COULDNT_RESOLVE_HOST', 6);
    define('CURLE_COULDNT_CONNECT', 7);
    define('CURLE_FTP_WEIRD_SERVER_REPLY', 8);
    define('CURLE_REMOTE_ACCESS_DENIED', 9);
    define('CURLE_FTP_WEIRD_PASS_REPLY', 11);
    define('CURLE_FTP_WEIRD_PASV_REPLY', 13);
    define('CURLE_FTP_WEIRD_227_FORMAT', 14);
    define('CURLE_FTP_CANT_GET_HOST', 15);
    define('CURLE_FTP_COULDNT_SET_TYPE', 17);
    define('CURLE_PARTIAL_FILE', 18);
    define('CURLE_FTP_COULDNT_RETR_FILE', 19);
    define('CURLE_QUOTE_ERROR', 21);
    define('CURLE_HTTP_RETURNED_ERROR', 22);
    define('CURLE_WRITE_ERROR', 23);
    define('CURLE_UPLOAD_FAILED', 25);
    define('CURLE_READ_ERROR', 26);
    define('CURLE_OUT_OF_MEMORY', 27);
    define('CURLE_OPERATION_TIMEOUTED', 28);
    define('CURLE_FTP_PORT_FAILED', 30);
    define('CURLE_FTP_COULDNT_USE_REST', 31);
    define('CURLE_RANGE_ERROR', 33);
    define('CURLE_HTTP_POST_ERROR', 34);
    define('CURLE_SSL_CONNECT_ERROR', 35);
    define('CURLE_BAD_DOWNLOAD_RESUME', 36);
    define('CURLE_FILE_COULDNT_READ_FILE', 37);
    define('CURLE_LDAP_CANNOT_BIND', 38);
    define('CURLE_LDAP_SEARCH_FAILED', 39);
    define('CURLE_FUNCTION_NOT_FOUND', 41);
    define('CURLE_ABORTED_BY_CALLBACK', 42);
    define('CURLE_BAD_FUNCTION_ARGUMENT', 43);
    define('CURLE_INTERFACE_FAILED', 45);
    define('CURLE_TOO_MANY_REDIRECTS', 47);
    define('CURLE_UNKNOWN_TELNET_OPTION', 48);
    define('CURLE_TELNET_OPTION_SYNTAX', 49);
    define('CURLE_PEER_FAILED_VERIFICATION', 51);
    define('CURLE_GOT_NOTHING', 52);
    define('CURLE_SSL_ENGINE_NOTFOUND', 53);
    define('CURLE_SSL_ENGINE_SETFAILED', 54);
    define('CURLE_SEND_ERROR', 55);
    define('CURLE_RECV_ERROR', 56);
    define('CURLE_SSL_CERTPROBLEM', 58);
    define('CURLE_SSL_CIPHER', 59);
    define('CURLE_SSL_CACERT', 60);
    define('CURLE_BAD_CONTENT_ENCODING', 61);
    define('CURLE_LDAP_INVALID_URL', 62);
    define('CURLE_FILESIZE_EXCEEDED', 63);
    define('CURLE_USE_SSL_FAILED', 64);
    define('CURLE_SEND_FAIL_REWIND', 65);
    define('CURLE_SSL_ENGINE_INITFAILED', 66);
    define('CURLE_LOGIN_DENIED', 67);
    define('CURLE_TFTP_NOTFOUND', 68);
    define('CURLE_TFTP_PERM', 69);
    define('CURLE_REMOTE_DISK_FULL', 70);
    define('CURLE_TFTP_ILLEGAL', 71);
    define('CURLE_TFTP_UNKNOWNID', 72);
    define('CURLE_REMOTE_FILE_EXISTS', 73);
    define('CURLE_TFTP_NOSUCHUSER', 74);
    define('CURLE_CONV_FAILED', 75);
    define('CURLE_CONV_REQD', 76);
    define('CURLE_SSL_CACERT_BADFILE', 77);
    define('CURLE_REMOTE_FILE_NOT_FOUND', 78);
    define('CURLE_SSH', 79);
    define('CURLE_SSL_SHUTDOWN_FAILED', 80);
    define('CURLE_AGAIN', 81);
    define('CURLE_SSL_CRL_BADFILE', 82);
    define('CURLE_SSL_ISSUER_ERROR', 83);
    
    // Mock CURL functions
    if (!function_exists('curl_init')) {
        function curl_init($url = null) {
            return null;
        }
    }
    
    if (!function_exists('curl_setopt')) {
        function curl_setopt($handle, $option, $value) {
            return false;
        }
    }
    
    if (!function_exists('curl_exec')) {
        function curl_exec($handle) {
            return false;
        }
    }
    
    if (!function_exists('curl_getinfo')) {
        function curl_getinfo($handle, $option = null) {
            return false;
        }
    }
    
    if (!function_exists('curl_error')) {
        function curl_error($handle) {
            return '';
        }
    }
    
    if (!function_exists('curl_close')) {
        function curl_close($handle) {
            return;
        }
    }
}
?>
