pci:v00001AF4d00001004sv00001AF4sd00000008bc01sc00i00
  +   ˆl–Ðz¾”ªe¶…8 ^¸ÜdJbÑ¿Á„!ÿ_†I|¥�+ÁÀ ?÷     /*
 * WARNING: do not edit!
 * Generated by Makefile from include/openssl/crypto.h.in
 *
 * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved.
 * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
 *
 * Licensed under the Apache License 2.0 (the "License").  You may not use
 * this file except in compliance with the License.  You can obtain a copy
 * in the file LICENSE in the source distribution or at
 * https://www.openssl.org/source/license.html
 */

/* clang-format off */

/* clang-format on */

#ifndef OPENSSL_CRYPTO_H
#define OPENSSL_CRYPTO_H
#pragma once

#include <openssl/macros.h>
#ifndef OPENSSL_NO_DEPRECATED_3_0
#define HEADER_CRYPTO_H
#endif

#include <stdlib.h>
#include <time.h>

#include <openssl/e_os2.h>

#ifndef OPENSSL_NO_STDIO
#include <stdio.h>
#endif

#include <openssl/safestack.h>
#include <openssl/opensslv.h>
#include <openssl/types.h>
#include <openssl/opensslconf.h>
#include <openssl/cryptoerr.h>
#include <openssl/core.h>

#ifdef CHARSET_EBCDIC
#include <openssl/ebcdic.h>
#endif

/*
 * Resolve problems on some operating systems with symbol names that clash
 * one way or another
 */
#include <openssl/symhacks.h>

#ifndef OPENSSL_NO_DEPRECATED_1_1_0
#include <openssl/opensslv.h>
#endif

#ifdef __cplusplus
extern "C" {
#endif

#ifndef OPENSSL_NO_DEPRECATED_1_1_0
#define SSLeay OpenSSL_version_num
#define SSLeay_version OpenSSL_version
#define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER
#define SSLEAY_VERSION OPENSSL_VERSION
#define SSLEAY_CFLAGS OPENSSL_CFLAGS
#define SSLEAY_BUILT_ON OPENSSL_BUILT_ON
#define SSLEAY_PLATFORM OPENSSL_PLATFORM
#define SSLEAY_DIR OPENSSL_DIR

/*
 * Old type for allocating dynamic locks. No longer used. Use the new thread
 * API instead.
 */
typedef struct {
    int dummy;
} CRYPTO_dynlock;

#endif /* OPENSSL_NO_DEPRECATED_1_1_0 */

typedef void CRYPTO_RWLOCK;

CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void);
__owur int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock);
__owur int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock);
int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock);
void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock);

int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock);
int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret,
    CRYPTO_RWLOCK *lock);
int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret,
    CRYPTO_RWLOCK *lock);
int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,
    CRYPTO_RWLOCK *lock);
int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock);
int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock);
int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock);

/* No longer needed, so this is a no-op */
#define OPENSSL_malloc_init() \
    while (0)                 \
    continue

#define OPENSSL_malloc(num) \
    CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE)
#define OPENSSL_zalloc(num) \
    CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE)
#define OPENSSL_aligned_alloc(num, alignment, freeptr) \
    CRYPTO_aligned_alloc(num, alignment, freeptr,      \
        OPENSSL_FILE, OPENSSL_LINE)
#define OPENSSL_realloc(addr, num) \
    CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE)
#define OPENSSL_clear_realloc(addr, old_num, num) \
    CRYPTO_clear_realloc(addr, old_num, num, OPENSSL_FILE, OPENSSL_LINE)
#define OPENSSL_clear_free(addr, num) \
    CRYPTO_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE)
#define OPENSSL_free(addr) \
    CRYPTO_free(addr, OPENSSL_FILE, OPENSSL_LINE)
#define OPENSSL_memdup(str, s) \
    CRYPTO_memdup((str), s, OPENSSL_FILE, OPENSSL_LINE)
#define OPENSSL_strdup(str) \
    CRYPTO_strdup(str, OPENSSL_FILE, OPENSSL_LINE)
#define OPENSSL_strndup(str, n) \
    CRYPTO_strndup(str, n, OPENSSL_FILE, OPENSSL_LINE)
#define OPENSSL_secure_malloc(num) \
    CRYPTO_secure_malloc(num, OPENSSL_FILE, OPENSSL_LINE)
#define OPENSSL_secure_zalloc(num) \
    CRYPTO_secure_zalloc(num, OPENSSL_FILE, OPE