///////////////////////////////////////////////////////////////////////////////////
//  MIT License
//  
//  Copyright (c) 2021 SaxonSoc contributors
//  
//  Permission is hereby granted, free of charge, to any person obtaining a copy
//  of this software and associated documentation files (the "Software"), to deal
//  in the Software without restriction, including without limitation the rights
//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
//  copies of the Software, and to permit persons to whom the Software is
//  furnished to do so, subject to the following conditions:
//  
//  The above copyright notice and this permission notice shall be included in all
//  copies or substantial portions of the Software.
//  
//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
//  SOFTWARE.
///////////////////////////////////////////////////////////////////////////////////
#pragma once

#include <stdint.h>

typedef uint64_t    u64;
typedef int64_t     s64;
typedef uint32_t    u32;
typedef int32_t     s32;
typedef uint16_t    u16;
typedef int16_t     s16;
typedef uint8_t     u8;
typedef int8_t      s8;

#define BIT_0   (1 << 0)
#define BIT_1   (1 << 1)
#define BIT_2   (1 << 2)
#define BIT_3   (1 << 3)
#define BIT_4   (1 << 4)
#define BIT_5   (1 << 5)
#define BIT_6   (1 << 6)
#define BIT_7   (1 << 7)
#define BIT_8   (1 << 8)
#define BIT_9   (1 << 9)
#define BIT_10  (1 << 10)
#define BIT_11  (1 << 11)
#define BIT_12  (1 << 12)
#define BIT_13  (1 << 13)
#define BIT_14  (1 << 14)
#define BIT_15  (1 << 15)
#define BIT_16  (1 << 16)
#define BIT_17  (1 << 17)
#define BIT_18  (1 << 18)
#define BIT_19  (1 << 19)
#define BIT_20  (1 << 20)
#define BIT_21  (1 << 21)
#define BIT_22  (1 << 22)
#define BIT_23  (1 << 23)
#define BIT_24  (1 << 24)
#define BIT_25  (1 << 25)
#define BIT_26  (1 << 26)
#define BIT_27  (1 << 27)
#define BIT_28  (1 << 28)
#define BIT_29  (1 << 29)
#define BIT_30  (1 << 30)
#define BIT_31  (1 << 31)



