require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&OPENSSL_OBJECTS_H)) {
    eval 'sub OPENSSL_OBJECTS_H () {1;}' unless defined(&OPENSSL_OBJECTS_H);
    require 'openssl/macros.ph';
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	eval 'sub HEADER_OBJECTS_H () {1;}' unless defined(&HEADER_OBJECTS_H);
    }
    require 'openssl/obj_mac.ph';
    require 'openssl/bio.ph';
    require 'openssl/asn1.ph';
    require 'openssl/objectserr.ph';
    eval 'sub OBJ_NAME_TYPE_UNDEF () {0x;}' unless defined(&OBJ_NAME_TYPE_UNDEF);
    eval 'sub OBJ_NAME_TYPE_MD_METH () {0x1;}' unless defined(&OBJ_NAME_TYPE_MD_METH);
    eval 'sub OBJ_NAME_TYPE_CIPHER_METH () {0x2;}' unless defined(&OBJ_NAME_TYPE_CIPHER_METH);
    eval 'sub OBJ_NAME_TYPE_PKEY_METH () {0x3;}' unless defined(&OBJ_NAME_TYPE_PKEY_METH);
    eval 'sub OBJ_NAME_TYPE_COMP_METH () {0x4;}' unless defined(&OBJ_NAME_TYPE_COMP_METH);
    eval 'sub OBJ_NAME_TYPE_MAC_METH () {0x5;}' unless defined(&OBJ_NAME_TYPE_MAC_METH);
    eval 'sub OBJ_NAME_TYPE_KDF_METH () {0x6;}' unless defined(&OBJ_NAME_TYPE_KDF_METH);
    eval 'sub OBJ_NAME_TYPE_NUM () {0x7;}' unless defined(&OBJ_NAME_TYPE_NUM);
    eval 'sub OBJ_NAME_ALIAS () {0x8000;}' unless defined(&OBJ_NAME_ALIAS);
    eval 'sub OBJ_BSEARCH_VALUE_ON_NOMATCH () {0x1;}' unless defined(&OBJ_BSEARCH_VALUE_ON_NOMATCH);
    eval 'sub OBJ_BSEARCH_FIRST_VALUE_ON_MATCH () {0x2;}' unless defined(&OBJ_BSEARCH_FIRST_VALUE_ON_MATCH);
    if(defined(&__cplusplus)) {
    }
    eval 'sub OBJ_create_and_add_object {
        my($a, $b, $c) = @_;
	    eval q( &OBJ_create($a, $b, $c));
    }' unless defined(&OBJ_create_and_add_object);
    eval 'sub _DECLARE_OBJ_BSEARCH_CMP_FN {
        my($scope, $type1, $type2, $nm) = @_;
	    eval q( &static \'int\' $nm &_cmp_BSEARCH_CMP_FN( &const  &void *,  &const  &void *);  &static \'int\' $nm &_cmp($type1  &const *, $type2  &const *); $scope $type2 * &OBJ_bsearch_$nm($type1 * &key, $type2  &const * &base, \'int\'  &num));
    }' unless defined(&_DECLARE_OBJ_BSEARCH_CMP_FN);
    eval 'sub DECLARE_OBJ_BSEARCH_CMP_FN {
        my($type1, $type2, $cmp) = @_;
	    eval q( &_DECLARE_OBJ_BSEARCH_CMP_FN( &static, $type1, $type2, $cmp));
    }' unless defined(&DECLARE_OBJ_BSEARCH_CMP_FN);
    eval 'sub DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN {
        my($type1, $type2, $nm) = @_;
	    eval q($type2 * &OBJ_bsearch_$nm($type1 * &key, $type2  &const * &base, \'int\'  &num));
    }' unless defined(&DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN);
    eval 'sub IMPLEMENT_OBJ_BSEARCH_CMP_FN {
        my($type1, $type2, $nm) = @_;
	    eval q( &static \'int\' $nm &_cmp_BSEARCH_CMP_FN( &const  &void * &a_,  &const  &void * &b_) { $type1  &const * &a =  &a_; $type2  &const * &b =  &b_;  &return $nm &_cmp( &a,  &b); }  &static $type2 * &OBJ_bsearch_$nm($type1 * &key, $type2  &const * &base, \'int\'  &num) {  &return ($type2 *) &OBJ_bsearch_( &key,  &base,  &num, $sizeof{$type2}, $nm &_cmp_BSEARCH_CMP_FN); }  &extern  &void  &dummy_prototype( &void));
    }' unless defined(&IMPLEMENT_OBJ_BSEARCH_CMP_FN);
    eval 'sub IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN {
        my($type1, $type2, $nm) = @_;
	    eval q( &static \'int\' $nm &_cmp_BSEARCH_CMP_FN( &const  &void * &a_,  &const  &void * &b_) { $type1  &const * &a =  &a_; $type2  &const * &b =  &b_;  &return $nm &_cmp( &a,  &b); } $type2 * &OBJ_bsearch_$nm($type1 * &key, $type2  &const * &base, \'int\'  &num) {  &return ($type2 *) &OBJ_bsearch_( &key,  &base,  &num, $sizeof{$type2}, $nm &_cmp_BSEARCH_CMP_FN); }  &extern  &void  &dummy_prototype( &void));
    }' unless defined(&IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN);
    eval 'sub OBJ_bsearch {
        my($type1, $key, $type2, $base, $num, $cmp) = @_;
	    eval q((($type2 *) &OBJ_bsearch_( &CHECKED_PTR_OF($type1, $key),  &CHECKED_PTR_OF($type2, $base), $num, $sizeof{$type2}, (( &void) &CHECKED_PTR_OF($type1, $cmp &_type_1), ( &void) &CHECKED_PTR_OF($type2, $cmp &_type_2), $cmp &_BSEARCH_CMP_FN))));
    }' unless defined(&OBJ_bsearch);
    eval 'sub OBJ_bsearch_ex {
        my($type1, $key, $type2, $base, $num, $cmp, $flags) = @_;
	    eval q((($type2 *) &OBJ_bsearch_ex_( &CHECKED_PTR_OF($type1, $key),  &CHECKED_PTR_OF($type2, $base), $num, $sizeof{$type2}, (( &void) &CHECKED_PTR_OF($type1, $cmp &_type_1), ( &void) &type_2 =  &CHECKED_PTR_OF($type2, $cmp &_type_2), $cmp &_BSEARCH_CMP_FN)), $flags));
    }' unless defined(&OBJ_bsearch_ex);
    unless(defined(&OPENSSL_NO_DEPRECATED_1_1_0)) {
	eval 'sub OBJ_cleanup () {
	    eval q( &while (0)  &continue);
	}' unless defined(&OBJ_cleanup);
    }
    if(defined(&__cplusplus)) {
    }
}
1;
