diff options
Diffstat (limited to 'tf2')
149 files changed, 0 insertions, 25766 deletions
diff --git a/tf2/ButtonCode_t.h b/tf2/ButtonCode_t.h deleted file mode 100644 index 1d11c19..0000000 --- a/tf2/ButtonCode_t.h +++ /dev/null @@ -1,253 +0,0 @@ -#pragma once
-
-#define MAX_SPLITSCREEN_CLIENT_BITS 2
-#define MAX_SPLITSCREEN_CLIENTS ( 1 << MAX_SPLITSCREEN_CLIENT_BITS ) // 4
-
-#define JOYSTICK_BUTTON_INTERNAL( _joystick, _button ) ( JOYSTICK_FIRST_BUTTON + ((_joystick) * JOYSTICK_MAX_BUTTON_COUNT) + (_button) )
-#define JOYSTICK_POV_BUTTON_INTERNAL( _joystick, _button ) ( JOYSTICK_FIRST_POV_BUTTON + ((_joystick) * JOYSTICK_POV_BUTTON_COUNT) + (_button) )
-#define JOYSTICK_AXIS_BUTTON_INTERNAL( _joystick, _button ) ( JOYSTICK_FIRST_AXIS_BUTTON + ((_joystick) * JOYSTICK_AXIS_BUTTON_COUNT) + (_button) )
-
-#define JOYSTICK_BUTTON( _joystick, _button ) ( (ButtonCode_t)JOYSTICK_BUTTON_INTERNAL( _joystick, _button ) )
-#define JOYSTICK_POV_BUTTON( _joystick, _button ) ( (ButtonCode_t)JOYSTICK_POV_BUTTON_INTERNAL( _joystick, _button ) )
-#define JOYSTICK_AXIS_BUTTON( _joystick, _button ) ( (ButtonCode_t)JOYSTICK_AXIS_BUTTON_INTERNAL( _joystick, _button ) )
-
-enum {
- MAX_JOYSTICKS = MAX_SPLITSCREEN_CLIENTS,
- MOUSE_BUTTON_COUNT = 5,
-};
-
-enum JoystickAxis_t {
- JOY_AXIS_X = 0,
- JOY_AXIS_Y,
- JOY_AXIS_Z,
- JOY_AXIS_R,
- JOY_AXIS_U,
- JOY_AXIS_V,
- MAX_JOYSTICK_AXES,
-};
-
-enum {
- JOYSTICK_MAX_BUTTON_COUNT = 32,
- JOYSTICK_POV_BUTTON_COUNT = 4,
- JOYSTICK_AXIS_BUTTON_COUNT = MAX_JOYSTICK_AXES * 2,
-};
-
-enum ButtonCode_t {
- BUTTON_CODE_INVALID = -1,
- BUTTON_CODE_NONE = 0,
-
- KEY_FIRST = 0,
-
- KEY_NONE = KEY_FIRST,
- KEY_0,
- KEY_1,
- KEY_2,
- KEY_3,
- KEY_4,
- KEY_5,
- KEY_6,
- KEY_7,
- KEY_8,
- KEY_9,
- KEY_A,
- KEY_B,
- KEY_C,
- KEY_D,
- KEY_E,
- KEY_F,
- KEY_G,
- KEY_H,
- KEY_I,
- KEY_J,
- KEY_K,
- KEY_L,
- KEY_M,
- KEY_N,
- KEY_O,
- KEY_P,
- KEY_Q,
- KEY_R,
- KEY_S,
- KEY_T,
- KEY_U,
- KEY_V,
- KEY_W,
- KEY_X,
- KEY_Y,
- KEY_Z,
- KEY_PAD_0,
- KEY_PAD_1,
- KEY_PAD_2,
- KEY_PAD_3,
- KEY_PAD_4,
- KEY_PAD_5,
- KEY_PAD_6,
- KEY_PAD_7,
- KEY_PAD_8,
- KEY_PAD_9,
- KEY_PAD_DIVIDE,
- KEY_PAD_MULTIPLY,
- KEY_PAD_MINUS,
- KEY_PAD_PLUS,
- KEY_PAD_ENTER,
- KEY_PAD_DECIMAL,
- KEY_LBRACKET,
- KEY_RBRACKET,
- KEY_SEMICOLON,
- KEY_APOSTROPHE,
- KEY_BACKQUOTE,
- KEY_COMMA,
- KEY_PERIOD,
- KEY_SLASH,
- KEY_BACKSLASH,
- KEY_MINUS,
- KEY_EQUAL,
- KEY_ENTER,
- KEY_SPACE,
- KEY_BACKSPACE,
- KEY_TAB,
- KEY_CAPSLOCK,
- KEY_NUMLOCK,
- KEY_ESCAPE,
- KEY_SCROLLLOCK,
- KEY_INSERT,
- KEY_DELETE,
- KEY_HOME,
- KEY_END,
- KEY_PAGEUP,
- KEY_PAGEDOWN,
- KEY_BREAK,
- KEY_LSHIFT,
- KEY_RSHIFT,
- KEY_LALT,
- KEY_RALT,
- KEY_LCONTROL,
- KEY_RCONTROL,
- KEY_LWIN,
- KEY_RWIN,
- KEY_APP,
- KEY_UP,
- KEY_LEFT,
- KEY_DOWN,
- KEY_RIGHT,
- KEY_F1,
- KEY_F2,
- KEY_F3,
- KEY_F4,
- KEY_F5,
- KEY_F6,
- KEY_F7,
- KEY_F8,
- KEY_F9,
- KEY_F10,
- KEY_F11,
- KEY_F12,
- KEY_CAPSLOCKTOGGLE,
- KEY_NUMLOCKTOGGLE,
- KEY_SCROLLLOCKTOGGLE,
-
- KEY_LAST = KEY_SCROLLLOCKTOGGLE,
- KEY_COUNT = KEY_LAST - KEY_FIRST + 1,
-
- // Mouse
- MOUSE_FIRST = KEY_LAST + 1,
-
- MOUSE_LEFT = MOUSE_FIRST,
- MOUSE_RIGHT,
- MOUSE_MIDDLE,
- MOUSE_4,
- MOUSE_5,
- MOUSE_WHEEL_UP, // A fake button which is 'pressed' and 'released' when the wheel is moved up
- MOUSE_WHEEL_DOWN, // A fake button which is 'pressed' and 'released' when the wheel is moved down
-
- MOUSE_LAST = MOUSE_WHEEL_DOWN,
- MOUSE_COUNT = MOUSE_LAST - MOUSE_FIRST + 1,
-
- // Joystick
- JOYSTICK_FIRST = MOUSE_LAST + 1,
-
- JOYSTICK_FIRST_BUTTON = JOYSTICK_FIRST,
- JOYSTICK_LAST_BUTTON = JOYSTICK_BUTTON_INTERNAL( MAX_JOYSTICKS - 1, JOYSTICK_MAX_BUTTON_COUNT - 1 ),
- JOYSTICK_FIRST_POV_BUTTON,
- JOYSTICK_LAST_POV_BUTTON = JOYSTICK_POV_BUTTON_INTERNAL( MAX_JOYSTICKS - 1, JOYSTICK_POV_BUTTON_COUNT - 1 ),
- JOYSTICK_FIRST_AXIS_BUTTON,
- JOYSTICK_LAST_AXIS_BUTTON = JOYSTICK_AXIS_BUTTON_INTERNAL( MAX_JOYSTICKS - 1, JOYSTICK_AXIS_BUTTON_COUNT - 1 ),
-
- JOYSTICK_LAST = JOYSTICK_LAST_AXIS_BUTTON,
-
- BUTTON_CODE_LAST,
- BUTTON_CODE_COUNT = BUTTON_CODE_LAST - KEY_FIRST + 1,
-
- // Helpers for XBox 360
- KEY_XBUTTON_UP = JOYSTICK_FIRST_POV_BUTTON, // POV buttons
- KEY_XBUTTON_RIGHT,
- KEY_XBUTTON_DOWN,
- KEY_XBUTTON_LEFT,
-
- KEY_XBUTTON_A = JOYSTICK_FIRST_BUTTON, // Buttons
- KEY_XBUTTON_B,
- KEY_XBUTTON_X,
- KEY_XBUTTON_Y,
- KEY_XBUTTON_LEFT_SHOULDER,
- KEY_XBUTTON_RIGHT_SHOULDER,
- KEY_XBUTTON_BACK,
- KEY_XBUTTON_START,
- KEY_XBUTTON_STICK1,
- KEY_XBUTTON_STICK2,
- KEY_XBUTTON_INACTIVE_START,
-
- KEY_XSTICK1_RIGHT = JOYSTICK_FIRST_AXIS_BUTTON, // XAXIS POSITIVE
- KEY_XSTICK1_LEFT, // XAXIS NEGATIVE
- KEY_XSTICK1_DOWN, // YAXIS POSITIVE
- KEY_XSTICK1_UP, // YAXIS NEGATIVE
- KEY_XBUTTON_LTRIGGER, // ZAXIS POSITIVE
- KEY_XBUTTON_RTRIGGER, // ZAXIS NEGATIVE
- KEY_XSTICK2_RIGHT, // UAXIS POSITIVE
- KEY_XSTICK2_LEFT, // UAXIS NEGATIVE
- KEY_XSTICK2_DOWN, // VAXIS POSITIVE
- KEY_XSTICK2_UP, // VAXIS NEGATIVE
- KEY_MAX,
-};
-
-enum AnalogCode_t {
- ANALOG_CODE_INVALID = -1,
- MOUSE_X = 0,
- MOUSE_Y,
- MOUSE_XY, // Invoked when either x or y changes
- MOUSE_WHEEL,
-
- JOYSTICK_FIRST_AXIS,
- JOYSTICK_LAST_AXIS = 5,
-
- ANALOG_CODE_LAST,
-};
-
-enum InputStandardCursor_t {
- INPUT_CURSOR_NONE = 0,
- INPUT_CURSOR_ARROW,
- INPUT_CURSOR_IBEAM,
- INPUT_CURSOR_HOURGLASS,
- INPUT_CURSOR_CROSSHAIR,
- INPUT_CURSOR_WAITARROW,
- INPUT_CURSOR_UP,
- INPUT_CURSOR_SIZE_NW_SE,
- INPUT_CURSOR_SIZE_NE_SW,
- INPUT_CURSOR_SIZE_W_E,
- INPUT_CURSOR_SIZE_N_S,
- INPUT_CURSOR_SIZE_ALL,
- INPUT_CURSOR_NO,
- INPUT_CURSOR_HAND,
-
- INPUT_CURSOR_COUNT
-};
-
-using PlatWindow_t = void*;
-using InputCursorHandle_t = void*;
-
-struct InputEvent_t {
- int m_nType; // Type of the event (see InputEventType_t)
- int m_nTick; // Tick on which the event occurred
- int m_nData; // Generic 32-bit data, what it contains depends on the event
- int m_nData2; // Generic 32-bit data, what it contains depends on the event
- int m_nData3; // Generic 32-bit data, what it contains depends on the event
-};
\ No newline at end of file diff --git a/tf2/CAttribute.h b/tf2/CAttribute.h deleted file mode 100644 index a7dd944..0000000 --- a/tf2/CAttribute.h +++ /dev/null @@ -1,41 +0,0 @@ -#pragma once
-#include "UtlMem.h"
-
-class c_attribute {
-private:
- void* vtable;
-public:
- uint16_t m_attribute_definition_index;
- float m_value;
-private:
- uint32_t unk;
-
-public:
- __forceinline c_attribute( unsigned short index, float value ) {
- m_attribute_definition_index = index;
- m_value = value;
- }
-};
-
-class c_attribute_list {
-private:
- uint32_t unk;
-public:
- CUtlVector< c_attribute, CUtlMemory< c_attribute > > m_attributes;
-
- __forceinline void add_attribute( int index, float value ) {
- if ( m_attributes.Count( ) >= 15 ) return; //setting this above 15 will crash
- if ( has_attrib( index ) ) return;
-
- c_attribute attribute( index, value );
- m_attributes.AddToTail( attribute );
- }
-
- __forceinline bool has_attrib( int index ) {
- for ( int i{ }; i < m_attributes.Count( ); i++ ) {
- if ( !m_attributes ) continue;
- if ( m_attributes[ i ].m_attribute_definition_index == index ) return true;
- }
- return false;
- }
-};
\ No newline at end of file diff --git a/tf2/CBasePlayer.cpp b/tf2/CBasePlayer.cpp deleted file mode 100644 index a5860ac..0000000 --- a/tf2/CBasePlayer.cpp +++ /dev/null @@ -1,264 +0,0 @@ -#include "CBasePlayer.h"
-#include "sdk.h"
-#include <string>
-#include "math.h"
-#include "graphics.h"
-#include "CBaseWeapon.h"
-#include "ClientClass.h"
-#include "IVEngineClient.h"
-
-vec3_t c_base_player::get_eye_pos( ) {
- vec3_t offset = get_view_offset( );
- vec3_t origin = get_origin( );
- return offset + origin;
-}
-
-uintptr_t c_base_player::get_player_resource( ) {
- for( int i{ 1 }; i < cl.m_entlist( )->get_highest_entity_index( ); ++i ) {
- auto ent = cl.m_entlist( )->get_client_entity< IClientEntity >( i );
- if( !ent ) continue;
- auto class_ = ent->GetClientClass( );
- if( class_ ) {
- if( class_->m_class_id == CTFPlayerResource ) {
- return uintptr_t( ent );
- }
- }
- }
-
- return 0;
-}
-
-player_info_t c_base_player::get_info( ) {
- player_info_t info;
- cl.m_engine( )->GetPlayerInfo( ce( )->index( ), &info );
-
- return info;
-}
-
-void c_base_player::get_name_safe( char* buf ) {
- player_info_t info;
- if( cl.m_engine( )->GetPlayerInfo( this->ce( )->index( ), &info ) ) {
- for( size_t i{ }; i < 32; ++i ) {
- switch( info.name[ i ] ) {
- case '"':
- case '\\':
- case ';':
- case '\n':
- buf[ i ] = ' ';
- break;
- default:
- buf[ i ] = info.name[ i ];
- break;
- }
- }
-
- buf[ 31 ] = 0;
- }
-}
-
-uintptr_t c_base_player::get_game_rules( ) {
- static uintptr_t** game_rules = pattern::first_code_match< uintptr_t** >( cl.m_chl.dll( ), xors( "A1 ? ? ? ? 85 C0 0F 84 ? ? ? ? 80 B8 ? ? ? ? ? 0F 84 ? ? ? ? 0F 10 05" ), 0x1 );
- return **game_rules;
-}
-
-bool c_base_player::is_valid( ) {
- auto local = cl.m_entlist( )->get_local_player( );
- return ( this != local && !is_dormant( ) && is_alive( ) && GetClientClass( )->m_class_id == CTFPlayer );
-}
-
-vec3_t c_base_player::get_origin( ) {
- return m_vecOrigin( );
-}
-
-vec3_t c_base_player::get_view_offset( ) {
- return m_vecViewOffset( );
-}
-
-vec3_t c_base_player::get_eye_angles( ) {
- return m_angEyeAngles( );
-}
-
-vec3_t c_base_player::get_velocity( ) {
- return m_vecVelocity( );
-}
-
-vec3_t c_base_player::get_bone_position( int bone ) {
- matrix3x4 matrix[ 128 ];
-
- setup_bones( matrix, 128, 0x100, cl.m_globals->curtime );
-
- return vec3_t( matrix[ bone ][ 0 ][ 3 ], matrix[ bone ][ 1 ][ 3 ], matrix[ bone ][ 2 ][ 3 ] );
-}
-
-// bye fps lol
-vec3_t c_base_player::get_hitbox_position( int hitbox ) {
- const auto model = get_model( );
- if ( !model ) return vec3_t{ };
-
- auto hdr = cl.m_modelinfo( )->GetStudioModel( model );
- if ( !hdr ) return vec3_t{ };
-
- matrix3x4 matrix[ 128 ];
- if ( !setup_bones( matrix, 128, 0x100, cl.m_globals->curtime ) ) return vec3_t{ };
-
- auto set = hdr->pHitboxSet( m_nHitboxSet( ) );
- if ( !set ) return vec3_t{ };
-
- auto box = set->pHitbox( hitbox );
-
- vec3_t hitbox_center = ( box->bbmin + box->bbmax ) * 0.5f;
-
- vec3_t transformed = math::vector_transform( hitbox_center, matrix[ box->bone ] );
-
- return transformed;
-}
-
-int c_base_player::get_team( ) {
- return m_iTeamNum( );
-}
-
-bool c_base_player::is_enemy( ) {
- auto local = g_ctx.m_local;
- if ( !local ) return false;
- return get_team( ) != local->get_team( );
-}
-
-int c_base_player::get_class( ) {
- int class_num = m_iClass( );
- return std::clamp( class_num, 0, 10 ); //to prevent crashes if its out of bounds
-}
-
-const char* c_base_player::get_class_name( ) {
- static const char* tf2_class_names[ ] = {
- "none",
- "scout",
- "sniper",
- "soldier",
- "demoman",
- "medic",
- "heavy",
- "pyro",
- "spy",
- "engineer",
- "invalid"
- };
- return tf2_class_names[ get_class( ) ];
-}
-
-byte c_base_player::get_life_state( ) {
- return m_lifeState( );
-}
-
-int c_base_player::get_flags( ) {
- return m_fFlags( );
-}
-
-int c_base_player::get_health( ) {
- return m_iHealth( );
-}
-
-int c_base_player::get_max_health( ) {
- IClientEntity* player_resource{ };
- for ( int i{ }; i < cl.m_entlist( )->get_highest_entity_index( ); i++ ) {
- auto ent = cl.m_entlist( )->get_client_entity( i );
- if ( ent && ent->GetClientClass( )->m_class_id == CTFPlayerResource ) {
- player_resource = ent;
- break;
- }
- }
- if ( !player_resource ) return 0;
-
- return *reinterpret_cast< int* >( uintptr_t( player_resource ) + m_iMaxHealth( ) + ( 4 * this->index( ) ) );
-}
-
-bool c_base_player::is_buffed( ) {
- return get_health( ) > get_max_health( );
-}
-
-bool c_base_player::is_alive( ) {
- return m_iHealth( ) > 0 && get_life_state( ) == LIFE_ALIVE;
-}
-
-int c_base_player::get_tick_base( ) {
- return m_nTickBase( );
-}
-
-bool c_base_player::is_visible( ) {
- auto local = cl.m_entlist( )->get_local_player( );
- if ( !local ) return true;
- trace_t tr;
- Ray_t ray;
- CTraceFilter filter;
-
- filter.pSkip = local;
-
- ray.Init( local->get_eye_pos( ), get_eye_pos( ) );
-
- cl.m_trace( )->trace_ray( ray, MASK_AIM, &filter, &tr );
-
- return ( tr.m_pEnt == this || tr.fraction > 0.99f );
-}
-
-bool c_base_player::is_visible( int hitbox ) {
- auto local = cl.m_entlist( )->get_local_player( );
- if ( !local ) return true;
- trace_t tr;
- Ray_t ray;
- CTraceFilter filter;
-
- filter.pSkip = local;
-
- ray.Init( local->get_eye_pos( ), get_hitbox_position( hitbox ) );
-
- cl.m_trace( )->trace_ray( ray, MASK_AIM, &filter, &tr );
-
- return ( tr.m_pEnt == this || tr.fraction > 0.99f );
-}
-
-dynamic_box_t c_base_player::get_dynamic_box( ) {
- const matrix3x4& trans = m_CollisionGroup( );
-
- vec3_t min = *reinterpret_cast< vec3_t* >( this + m_Collision( ) + 0x8 );
- vec3_t max = *reinterpret_cast< vec3_t* >( this + m_Collision( ) + 0x14 );
-
- vec3_t point_list[ ] = {
- vec3_t( min.x, min.y, min.z ),
- vec3_t( min.x, max.y, min.z ),
- vec3_t( max.x, max.y, min.z ),
- vec3_t( max.x, min.y, min.z ),
- vec3_t( max.x, max.y, max.z ),
- vec3_t( min.x, max.y, max.z ),
- vec3_t( min.x, min.y, max.z ),
- vec3_t( max.x, min.y, max.z )
- };
-
- vec3_t transformed[ 8 ];
-
- for ( int i{ }; i < 8; i++ ) {
- transformed[ i ] = math::vector_transform( point_list[ i ], trans );
- }
-
- vec2_t screen_pos[ 8 ]{ vec2_t( 0.f, 0.f ) };
-
- for ( int i = 0; i < 8; i++ ) {
- screen_pos[ i ] = graphics.world_to_screen( transformed[ i ] );
- }
-
- float left = FLT_MAX, top = FLT_MIN, right = FLT_MIN, bottom = FLT_MAX;
-
- for ( int i{ }; i < 8; i++ ) {
- left = std::min< float >( left, screen_pos[ i ].x );
- top = std::max< float >( top, screen_pos[ i ].y );
- right = std::max< float >( right, screen_pos[ i ].x );
- bottom = std::min< float >( bottom, screen_pos[ i ].y );
- }
-
- if ( right - left > 4000.f || top - bottom > 4000.f ) return{ 10000, 10000, 0, 0 }; //sanity check
- return{ ( int )left, ( int )bottom, ( int )( right - left ), ( int )( top - bottom ) + 4 };
-}
-
-c_base_weapon* c_base_player::get_active_weapon( ) {
- auto wep_handle = m_hActiveWeapon( );
- auto weapon = reinterpret_cast< c_base_weapon* >( cl.m_entlist( )->get_entity_from_handle( wep_handle ) );
- return weapon;
-}
diff --git a/tf2/CBasePlayer.h b/tf2/CBasePlayer.h deleted file mode 100644 index dbce5cd..0000000 --- a/tf2/CBasePlayer.h +++ /dev/null @@ -1,241 +0,0 @@ -#pragma once
-#include "vector.hpp"
-#include "CBaseWeapon.h"
-#include "IVEngineClient.h"
-
-enum MoveType_t {
- MOVETYPE_NONE = 0, // never moves
- MOVETYPE_ISOMETRIC, // For players -- in TF2 commander view, etc.
- MOVETYPE_WALK, // Player only - moving on the ground
- MOVETYPE_STEP, // gravity, special edge handling -- monsters use this
- MOVETYPE_FLY, // No gravity, but still collides with stuff
- MOVETYPE_FLYGRAVITY, // flies through the air + is affected by gravity
- MOVETYPE_VPHYSICS, // uses VPHYSICS for simulation
- MOVETYPE_PUSH, // no clip to world, push and crush
- MOVETYPE_NOCLIP, // No gravity, no collisions, still do velocity/avelocity
- MOVETYPE_LADDER, // Used by players only when going onto a ladder
- MOVETYPE_OBSERVER, // Observer movement, depends on player's observer mode
- MOVETYPE_CUSTOM, // Allows the entity to describe its own physics
- MOVETYPE_LAST = MOVETYPE_CUSTOM, // should always be defined as the last item in the list
- MOVETYPE_MAX_BITS = 4,
-};
-
-enum TFClasses_t {
- TF2_None = 0,
- TF2_Scout,
- TF2_Sniper,
- TF2_Soldier,
- TF2_Demoman,
- TF2_Medic,
- TF2_Heavy,
- TF2_Pyro,
- TF2_Spy,
- TF2_Engineer
-};
-
-enum LifeStates_t {
- LIFE_ALIVE = 0,
- LIFE_DYING,
- LIFE_DEAD,
- LIFE_RESPAWNABLE,
- LIFE_DISCARDBODY
-};
-
-enum PlayerStates_t {
- FL_ONGROUND = ( 1 << 0 ),
- FL_DUCKING = ( 1 << 1 ),
- FL_WATERJUMP = ( 1 << 2 ),
- FL_ONTRAIN = ( 1 << 3 ),
- FL_INRAIN = ( 1 << 4 ),
- FL_FROZEN = ( 1 << 5 ),
- FL_ATCONTROLS = ( 1 << 6 ),
- FL_CLIENT = ( 1 << 7 ),
- FL_FAKECLIENT = ( 1 << 8 ),
- FL_INWATER = ( 1 << 9 ),
-};
-
-struct dynamic_box_t {
- int x, y, w, h;
-};
-
-enum PlayerConds_t
-{
- TFCond_Slowed = ( 1 << 0 ), //Toggled when a player is slowed down.
- TFCond_Zoomed = ( 1 << 1 ), //Toggled when a player is zoomed.
- TFCond_Disguising = ( 1 << 2 ), //Toggled when a Spy is disguising.
- TFCond_Disguised = ( 1 << 3 ), //Toggled when a Spy is disguised.
- TFCond_Cloaked = ( 1 << 4 ), //Toggled when a Spy is invisible.
- TFCond_Ubercharged = ( 1 << 5 ), //Toggled when a player is ÜberCharged.
- TFCond_TeleportedGlow = ( 1 << 6 ), //Toggled when someone leaves a teleporter and has glow beneath their feet.
- TFCond_Taunting = ( 1 << 7 ), //Toggled when a player is taunting.
- TFCond_UberchargeFading = ( 1 << 8 ), //Toggled when the ÜberCharge is fading.
- TFCond_CloakFlicker = ( 1 << 9 ), //Toggled when a Spy is visible during cloak.
- TFCond_Teleporting = ( 1 << 10 ), //Only activates for a brief second when the player is being teleported; not very useful.
- TFCond_Kritzkrieged = ( 1 << 11 ), //Toggled when a player is being crit buffed by the KritzKrieg.
- TFCond_TmpDamageBonus = ( 1 << 12 ), //Unknown what this is for. Name taken from the AlliedModders SDK.
- TFCond_DeadRingered = ( 1 << 13 ), //Toggled when a player is taking reduced damage from the Deadringer.
- TFCond_Bonked = ( 1 << 14 ), //Toggled when a player is under the effects of The Bonk! Atomic Punch.
- TFCond_Stunned = ( 1 << 15 ), //Toggled when a player's speed is reduced from airblast or a Sandman ball.
- TFCond_Buffed = ( 1 << 16 ), //Toggled when a player is within range of an activated Buff Banner.
- TFCond_Charging = ( 1 << 17 ), //Toggled when a Demoman charges with the shield.
- TFCond_DemoBuff = ( 1 << 18 ), //Toggled when a Demoman has heads from the Eyelander.
- TFCond_CritCola = ( 1 << 19 ), //Toggled when the player is under the effect of The Crit-a-Cola.
- TFCond_InHealRadius = ( 1 << 20 ), //Unused condition, name taken from AlliedModders SDK.
- TFCond_Healing = ( 1 << 21 ), //Toggled when someone is being healed by a medic or a dispenser.
- TFCond_OnFire = ( 1 << 22 ), //Toggled when a player is on fire.
- TFCond_Overhealed = ( 1 << 23 ), //Toggled when a player has >100% health.
- TFCond_Jarated = ( 1 << 24 ), //Toggled when a player is hit with a Sniper's Jarate.
- TFCond_Bleeding = ( 1 << 25 ), //Toggled when a player is taking bleeding damage.
- TFCond_DefenseBuffed = ( 1 << 26 ), //Toggled when a player is within range of an activated Battalion's Backup.
- TFCond_Milked = ( 1 << 27 ), //Player was hit with a jar of Mad Milk.
- TFCond_MegaHeal = ( 1 << 28 ), //Player is under the effect of Quick-Fix charge.
- TFCond_RegenBuffed = ( 1 << 29 ), //Toggled when a player is within a Concheror's range.
- TFCond_MarkedForDeath = ( 1 << 30 ), //Player is marked for death by a Fan O'War hit. Effects are similar to TFCond_Jarated.
- TFCond_NoHealingDamageBuff = ( 1 << 31 ), //Unknown what this is used for.
-
- TFCondEx_SpeedBuffAlly = ( 1 << 0 ), //Toggled when a player gets hit with the disciplinary action.
- TFCondEx_HalloweenCritCandy = ( 1 << 1 ), //Only for Scream Fortress event maps that drop crit candy.
- TFCondEx_CritCanteen = ( 1 << 2 ), //Player is getting a crit boost from a MVM canteen.
- TFCondEx_CritDemoCharge = ( 1 << 3 ), //From demo's shield
- TFCondEx_CritHype = ( 1 << 4 ), //Soda Popper crits.
- TFCondEx_CritOnFirstBlood = ( 1 << 5 ), //Arena first blood crit buff.
- TFCondEx_CritOnWin = ( 1 << 6 ), //End of round crits.
- TFCondEx_CritOnFlagCapture = ( 1 << 7 ), //CTF intelligence capture crits.
- TFCondEx_CritOnKill = ( 1 << 8 ), //Unknown what this is for.
- TFCondEx_RestrictToMelee = ( 1 << 9 ), //Unknown what this is for.
- TFCondEx_DefenseBuffNoCritBlock = ( 1 << 10 ), //MvM Buff.
- TFCondEx_Reprogrammed = ( 1 << 11 ), //MvM Bot has been reprogrammed.
- TFCondEx_PyroCrits = ( 1 << 12 ), //Player is getting crits from the Mmmph charge.
- TFCondEx_PyroHeal = ( 1 << 13 ), //Player is being healed from the Mmmph charge.
- TFCondEx_FocusBuff = ( 1 << 14 ), //Player is getting a focus buff.
- TFCondEx_DisguisedRemoved = ( 1 << 15 ), //Disguised remove from a bot.
- TFCondEx_MarkedForDeathSilent = ( 1 << 16 ), //Player is under the effects of the Escape Plan/Equalizer or GRU.
- TFCondEx_DisguisedAsDispenser = ( 1 << 17 ), //Bot is disguised as dispenser.
- TFCondEx_Sapped = ( 1 << 18 ), //MvM bot is being sapped.
- TFCondEx_UberchargedHidden = ( 1 << 19 ), //MvM Related
- TFCondEx_UberchargedCanteen = ( 1 << 20 ), //Player is receiving ÜberCharge from a canteen.
- TFCondEx_HalloweenBombHead = ( 1 << 21 ), //Player has a bomb on their head from Merasmus.
- TFCondEx_HalloweenThriller = ( 1 << 22 ), //Players are forced to dance from Merasmus.
- TFCondEx_BulletCharge = ( 1 << 26 ), //Player is receiving 75% reduced damage from bullets.
- TFCondEx_ExplosiveCharge = ( 1 << 27 ), //Player is receiving 75% reduced damage from explosives.
- TFCondEx_FireCharge = ( 1 << 28 ), //Player is receiving 75% reduced damage from fire.
- TFCondEx_BulletResistance = ( 1 << 29 ), //Player is receiving 10% reduced damage from bullets.
- TFCondEx_ExplosiveResistance = ( 1 << 30 ), //Player is receiving 10% reduced damage from explosives.
- TFCondEx_FireResistance = ( 1 << 31 ), //Player is receiving 10% reduced damage from fire.
-
- TFCondEx2_Stealthed = ( 1 << 0 ),
- TFCondEx2_MedigunDebuff = ( 1 << 1 ),
- TFCondEx2_StealthedUserBuffFade = ( 1 << 2 ),
- TFCondEx2_BulletImmune = ( 1 << 3 ),
- TFCondEx2_BlastImmune = ( 1 << 4 ),
- TFCondEx2_FireImmune = ( 1 << 5 ),
- TFCondEx2_PreventDeath = ( 1 << 6 ),
- TFCondEx2_MVMBotRadiowave = ( 1 << 7 ),
- TFCondEx2_HalloweenSpeedBoost = ( 1 << 8 ), //Wheel has granted player speed boost.
- TFCondEx2_HalloweenQuickHeal = ( 1 << 9 ), //Wheel has granted player quick heal.
- TFCondEx2_HalloweenGiant = ( 1 << 10 ), //Wheel has granted player giant mode.
- TFCondEx2_HalloweenTiny = ( 1 << 11 ), //Wheel has granted player tiny mode.
- TFCondEx2_HalloweenInHell = ( 1 << 12 ), //Wheel has granted player in hell mode.
- TFCondEx2_HalloweenGhostMode = ( 1 << 13 ), //Wheel has granted player ghost mode.
- TFCondEx2_Parachute = ( 1 << 16 ), //Player has deployed the BASE Jumper.
- TFCondEx2_BlastJumping = ( 1 << 17 ), //Player has sticky or rocket jumped.
-
- TFCond_MiniCrits = ( TFCond_Buffed | TFCond_CritCola ),
- TFCond_IgnoreStates = ( TFCond_Ubercharged | TFCond_Bonked ),
- TFCondEx_IgnoreStates = ( TFCondEx_PyroHeal )
-};
-
-enum tf_hitbox : int {
- head = 0,
- pelvis = 1,
- spine_0 = 2,
- spine_1 = 3,
- spine_2 = 4,
- spine_3 = 5,
- upperArm_L = 6,
- lowerArm_L = 7,
- hand_L = 8,
- upperArm_R = 9,
- lowerArm_R = 10,
- hand_R = 11,
- hip_L = 12,
- knee_L = 13,
- foot_L = 14,
- hip_R = 15,
- knee_R = 16,
- foot_R = 17,
-};
-
-class c_base_player : public IClientEntity {
-public:
-
- NETVAR( m_nMoveType, "m_nRenderMode", "DT_BaseEntity", 1, MoveType_t );
- NETVAR( m_fFlags, "m_fFlags", "DT_BasePlayer", 0, int );
- NETVAR( m_vecVelocity, "m_vecVelocity[0]", "DT_BasePlayer", 0, vec3_t );
- NETVAR( m_flSimulationTime, "m_flSimulationTime", "DT_BaseEntity", 0, float );
- NETVAR( m_vecOrigin, "m_vecOrigin", "DT_BaseEntity", 0, vec3_t );
- NETVAR( m_angRotation, "m_angRotation", "DT_BaseEntity", 0, vec3_t );
- NETVAR( m_CollisionGroup, "m_CollisionGroup", "DT_BaseEntity", -0x4c, matrix3x4 );
- NETVAR( m_Collision, "m_Collision", "DT_BaseEntity", 0, std::ptrdiff_t );
- NETVAR( m_vecViewOffset, "m_vecViewOffset[0]", "DT_BasePlayer", 0, vec3_t );
- NETVAR( m_nTickBase, "m_nTickBase", "DT_BasePlayer", 0, int );
- NETVAR( m_lifeState, "m_lifeState", "DT_BasePlayer", 0, byte );
- NETVAR( m_iHealth, "m_iHealth", "DT_BasePlayer", 0, int );
- NETVAR( m_iTeamNum, "m_iTeamNum", "DT_BasePlayer", 0, int );
- NETVAR( m_nHitboxSet, "m_nHitboxSet", "DT_BaseAnimating", 0, int );
- NETVAR( m_PlayerClass, "m_PlayerClass", "DT_TFPlayer", 0, int );
- NETVAR( m_iClass, "m_iClass", "DT_TFPlayer", 0, int );
- NETVAR( m_angEyeAngles, "m_angEyeAngles[0]", "DT_TFPlayer", 0, vec3_t );
- NETVAR( m_hActiveWeapon, "m_hActiveWeapon", "DT_BaseCombatCharacter", 0, uintptr_t );
- NETVAR( m_iMaxHealth, "m_iMaxHealth", "DT_TFPlayerResource", 0, std::ptrdiff_t );
- NETVAR( m_hObserverTarget, "m_hObserverTarget", "DT_BasePlayer", 0, uint32_t );
- NETVAR( m_bIsScoped, "m_bIsScoped", "DT_TFPlayer", 0, bool );
- NETVAR( m_vecMins, "m_vecMins", "DT_BaseEntity", 0, vec3_t );
- NETVAR( m_vecMaxs, "m_vecMaxs", "DT_BaseEntity", 0, vec3_t );
- NETVAR( m_iObserverMode, "m_iObserverMode", "DT_Base_player", 0, int );
- NETVAR( m_bGlowEnabled, "m_bGlowEnabled", "DT_TFPlayer", 0, bool );
- NETVAR( m_nPlayerCond, "m_nPlayerCond", "DT_TFPlayer", 0, int );
-
- //fuck you this is for ragdolls
- NETVAR( m_vecRagdollVelocity, "m_vecRagdollVelocity", "DT_TFRagdoll", 0, vec3_t );
-
-
-
- static uintptr_t get_player_resource( );
- static uintptr_t get_game_rules( );
-
- __forceinline IClientEntity* ce( ) {
- return reinterpret_cast< IClientEntity* >( this );
- }
-
- __forceinline bool is_player( ) {
- client_class_t* client_class = ce( )->GetClientClass( );
- return client_class && client_class->m_class_id == CTFPlayer;
- }
-
- player_info_t get_info( );
- void get_name_safe( char* buf );
- bool is_valid( );
- vec3_t get_eye_pos( );
- vec3_t get_origin( );
- vec3_t get_view_offset( );
- vec3_t get_bone_position( int );
- vec3_t get_hitbox_position( int );
- vec3_t get_eye_angles( );
- vec3_t get_velocity( );
- int get_team( );
- bool is_enemy( );
- const char* get_class_name( );
- int get_class( );
- byte get_life_state( );
- int get_flags( );
- bool is_alive( );
- bool is_visible( );
- bool is_visible( int );
- dynamic_box_t get_dynamic_box( );
- int get_health( );
- int get_max_health( );
- bool is_buffed( );
- int get_tick_base( );
- c_base_weapon* get_active_weapon( );
-};
\ No newline at end of file diff --git a/tf2/CBaseWeapon.cpp b/tf2/CBaseWeapon.cpp deleted file mode 100644 index b9881d1..0000000 --- a/tf2/CBaseWeapon.cpp +++ /dev/null @@ -1,69 +0,0 @@ -#include "CBaseWeapon.h" -#include "interfaces.h" - -int c_base_weapon::get_max_clip_1( ) { - return call_vfunc< int( __thiscall* )( void* ) >( this, 318 )( this ); -} - -int c_base_weapon::get_max_clip_2( ) { - return call_vfunc< int( __thiscall* )( void* ) >( this, 319 )( this ); -} - -int c_base_weapon::get_slot( ) { - return call_vfunc< int( __thiscall* )( void* ) >( this, 327 )( this ); -} - -char* c_base_weapon::get_name( ) { - return call_vfunc< char *( __thiscall* )( void* ) >( this, 329 )( this ); -} - -char* c_base_weapon::get_print_name( ) { - return call_vfunc< char *( __thiscall* )( void* ) >( this, 330 )( this ); -} - -vec3_t& c_base_weapon::get_bullet_spread( ) { - return call_vfunc< vec3_t& ( __thiscall* )( void* ) >( this, 286 )( this ); -} - -float c_base_weapon::get_spread( ) { - return call_vfunc< float( __thiscall* )( void* ) >( this, 455 )( this ); -} - -int c_base_weapon::get_weaponid( ) { - return call_vfunc< int( __thiscall* )( void* ) >( this, 422 )( this ); -} - -bool c_base_weapon::can_fire( ) { - auto cur_time = g_ctx.m_local->get_tick_base( ) * cl.m_globals->interval_per_tick; - auto next_primary_attack = m_flNextPrimaryAttack( ); - return cur_time >= next_primary_attack; -} - -bool c_base_weapon::is_non_aim( ) { - if ( get_slot( ) >= 2 ) return true; - //more checks to be added - return false; -} - -int& c_base_weapon::get_inspect_stage( ) { - return m_nInspectStage( ); -} - -float& c_base_weapon::get_inspect_time( ) { - return m_flInspectAnimTime( ); -} - -c_attribute_list* c_base_weapon::get_attribute_list( ) { - return reinterpret_cast< c_attribute_list* >( this + 0xA8 ); -}
-
-float c_base_weapon::get_distance( ) {
-
- if( is_melee( ) )
- return 100.f;
-
- if( is_flame_thrower( ) )
- return 185.f;
-
- return 8012.f;
-}
diff --git a/tf2/CBaseWeapon.h b/tf2/CBaseWeapon.h deleted file mode 100644 index 213a576..0000000 --- a/tf2/CBaseWeapon.h +++ /dev/null @@ -1,1389 +0,0 @@ -#pragma once -#include "IClientEntity.h" -#include "CAttribute.h" -#include "netvars.h" -enum class weapon_attributes { - weapon_allow_inspect = 731, -}; - -enum scoutweapons -{ - //Primary - WPN_Scattergun = 13, - WPN_NewScattergun = 200, - WPN_FAN = 45, - WPN_Shortstop = 220, - WPN_SodaPopper = 448, - WPN_BabyFaceBlaster = 772, - WPN_BotScattergunS = 799, - WPN_BotScattergunG = 808, - WPN_BotScattergunR = 888, - WPN_BotScattergunB = 897, - WPN_BotScattergunC = 906, - WPN_BotScattergunD = 915, - WPN_BotScattergunES = 964, - WPN_BotScattergunEG = 973, - WPN_FestiveFaN = 1078, - WPN_BackScatter = 1103, - //Secondary - WPN_ScoutPistol = 23, - WPN_NewPistol = 209, - WPN_Bonk = 46, - WPN_CritCola = 163, - WPN_Lugermorph = 160, - WPN_Milk = 222, - WPN_Lugermorph2 = 294, - WPN_Winger = 449, - WPN_PocketPistol = 773, - WPN_MutatedMilk = 1121, - WPN_CAPPER = 30666, - //Melee - WPN_Bat = 0, - WPN_NewBat = 190, - WPN_Sandman = 44, - WPN_Fish = 221, - WPN_Cane = 317, - WPN_BostonBasher = 325, - WPN_SunStick = 349, - WPN_FanOWar = 355, - WPN_RuneBlade = 452, - WPN_Saxxy = 423, - WPN_Atomizer = 450, - WPN_ConscientiousObjector = 474, - WPN_UnarmedCombat = 572, - WPN_WrapAssassin = 648, - WPN_FestiveBat = 660, - WPN_FestiveScattergun = 669, - WPN_FlyingGuillotine1 = 812, - WPN_FlyingGuillotine2 = 833, - WPN_FreedomStaff = 880, - WPN_BatOuttaHell = 939, - WPN_MemoryMaker = 954, - WPN_FestiveFish = 999, - WPN_TheHamShank = 1013, - WPN_CrossingGuard = 1127, - WPN_NecroSmasher = 1123, - WPN_Batsaber = 30667, -}; -enum soldierweapons -{ - //Primary - WPN_RocketLauncher = 18, - WPN_NewRocketLauncher = 205, - WPN_DirectHit = 127, - WPN_BlackBox = 228, - WPN_RocketJumper = 237, - WPN_LibertyLauncher = 414, - WPN_CowMangler = 441, - WPN_Original = 513, - WPN_FestiveRocketLauncher = 658, - WPN_BeggersBazooka = 730, - WPN_BotRocketlauncherS = 800, - WPN_BotRocketlauncherG = 809, - WPN_BotRocketlauncherR = 889, - WPN_BotRocketlauncherB = 898, - WPN_BotRocketlauncherC = 907, - WPN_BotRocketlauncherD = 916, - WPN_BotRocketlauncherES = 965, - WPN_BotRocketlauncherEG = 974, - WPN_FestiveBlackbox = 1085, - WPN_Airstrike = 1104, - //Secondary - WPN_SoldierShotgun = 10, - WPN_NewShotgun = 199, - WPN_BuffBanner = 129, - WPN_BattalionBackup = 226, - WPN_Concheror = 354, - WPN_ReserveShooter = 415, - WPN_RighteousBison = 442, - WPN_FestiveBuffBanner = 1001, - WPN_PanicAttack = 1153, - WPN_ManTreads = 444, - WPN_GunBoats = 133, - WPN_BASEJumper = 1101, - //Melee - WPN_Shovel = 6, - WPN_NewShovel = 196, - WPN_Equalizer = 128, - WPN_PainTrain = 154, - WPN_Katana = 357, - WPN_MarketGardener = 416, - WPN_DisciplinaryAction = 447, - WPN_EscapePlan = 775, -}; -enum pyroweapons -{ - //Primary - WPN_Flamethrower = 21, - WPN_NewFlamethrower = 208, - WPN_Backburner = 40, - WPN_Degreaser = 215, - WPN_FestiveFlamethrower = 659, - WPN_Phlogistinator = 594, - WPN_Rainblower = 741, - WPN_BotFlamethrowerS = 798, - WPN_BotFlamethrowerG = 807, - WPN_BotFlamethrowerR = 887, - WPN_BotFlamethrowerB = 896, - WPN_BotFlamethrowerC = 905, - WPN_BotFlamethrowerD = 914, - WPN_BotFlamethrowerES = 963, - WPN_BotFlamethrowerEG = 972, - WPN_FestiveBackburner = 1146, - //Secondary - WPN_PyroShotgun = 12, - WPN_Flaregun = 39, - WPN_Detonator = 351, - WPN_ManMelter = 595, - WPN_ScorchShot = 740, - WPN_FestiveFlaregun = 1081, - WPN_ThermalThruster = 1179, - WPN_GasPasser = 1180, - //Melee - WPN_Fireaxe = 2, - WPN_NewAxe = 192, - WPN_Axtingusher = 38, - WPN_HomeWrecker = 153, - WPN_PowerJack = 214, - WPN_Backscratcher = 326, - WPN_VolcanoFragment = 348, - WPN_Maul = 466, - WPN_Mailbox = 457, - WPN_ThirdDegree = 593, - WPN_Lollychop = 739, - WPN_NeonAnnihilator1 = 813, - WPN_NeonAnnihilator2 = 834, - WPN_FestiveAxtingisher = 1000, -}; -enum demomanweapons -{ - //Primary - WPN_GrenadeLauncher = 19, - WPN_NewGrenadeLauncher = 206, - WPN_LochNLoad = 308, - WPN_LoooseCannon = 996, - WPN_FestiveGrenadeLauncher = 1007, - WPN_IronBomber = 1151, - //Secondary - WPN_StickyLauncher = 20, - WPN_NewStickyLauncher = 207, - WPN_ScottishResistance = 130, - WPN_StickyJumper = 265, - WPN_FestiveStickyLauncher = 661, - WPN_BotStickyS = 797, - WPN_BotStickyG = 806, - WPN_BotStickyR = 886, - WPN_BotStickyB = 895, - WPN_BotStickyC = 904, - WPN_BotStickyD = 913, - WPN_BotStickyES = 962, - WPN_BotStickyEG = 971, - WPN_QuickieBombLauncher = 1150, - WPN_SplendidScreen = 406, - WPN_CharginTarge = 131, - WPN_FestiveCharginTarge = 1144, - WPN_TideTurner = 1099, - //Melee - WPN_Bottle = 1, - WPN_NewBottle = 191, - WPN_Sword = 132, - WPN_ScottsSkullctter = 172, - WPN_Fryingpan = 264, - WPN_Headless = 266, - WPN_Ullapool = 307, - WPN_Claidheamhmor = 327, - WPN_PersainPersuader = 404, - WPN_Golfclub = 482, - WPN_ScottishHandshake = 609, - WPN_GoldenFryingPan = 1071, - WPN_FestiveEyelander = 1082, -}; -enum heavyweapons -{ - //Primary - WPN_Minigun = 15, - WPN_NewMinigun = 202, - WPN_Natascha = 41, - WPN_IronCurtain = 298, - WPN_BrassBeast = 312, - WPN_Tomislav = 424, - WPN_FestiveMinigun = 654, - WPN_HuoLongHeatmaker1 = 811, - WPN_HuoLongHeatmaker2 = 832, - WPN_BotMinigunS = 793, - WPN_BotMinigunG = 802, - WPN_BotMinigunR = 882, - WPN_BotMinigunB = 891, - WPN_BotMinigunC = 900, - WPN_BotMinigunD = 909, - WPN_Deflector = 850, - WPN_BotMinigunES = 958, - WPN_BotMinigunEG = 967, - //Secondary - WPN_HeavyShotgun = 11, - WPN_Sandvich = 42, - WPN_CandyBar = 159, - WPN_Steak = 311, - WPN_Fishcake = 433, - WPN_FamilyBuisness = 425, - WPN_RobotSandvich = 863, - WPN_FestiveSandvich = 1002, - //Melee - WPN_Fists = 5, - WPN_NewFists = 195, - WPN_KGB = 43, - WPN_GRU = 239, - WPN_WarriorSpirit = 310, - WPN_FistsOfSteel = 331, - WPN_EvictionNotice = 426, - WPN_ApocoFists = 587, - WPN_HolidayPunch = 656, - WPN_FestiveGRU = 1084, - WPN_BreadBite = 1100, -}; -enum engineerweapons -{ - //Primary - WPN_EngineerShotgun = 9, - WPN_FrontierJustice = 141, - WPN_Widowmaker = 527, - WPN_Pomson = 588, - WPN_RescueRanger = 997, - WPN_FestiveFrontierJustice = 1004, - //Secondary - WPN_EngineerPistol = 22, - WPN_Wrangler = 140, - WPN_ShortCircut = 528, - WPN_FestiveWrangler = 1086, - WPN_GeigerCounter = 30668, - //Melee - WPN_Wrench = 7, - WPN_NewWrench = 197, - WPN_Goldenwrench = 169, - WPN_SouthernHospitality = 155, - WPN_Gunslinger = 142, - WPN_Jag = 329, - WPN_FestiveWrench = 662, - WPN_EurekaEffect = 589, - WPN_BotWrenchS = 795, - WPN_BotWrenchG = 804, - WPN_BotWrenchR = 884, - WPN_BotWrenchB = 893, - WPN_BotWrenchC = 902, - WPN_BotWrenchD = 911, - WPN_BotWrenchES = 960, - WPN_BotWrenchEG = 969, - //Misc - WPN_Builder = 25, - WPN_Builder2 = 737, - WPN_Destructor = 26, - WPN_Toolbox = 28, -}; -enum medicweapons -{ - //Primary - WPN_SyringeGun = 17, - WPN_NewSyringeGun = 204, - WPN_Blutsauger = 36, - WPN_Crossbow = 305, - WPN_Overdose = 412, - WPN_FestiveCrossbow = 1079, - //Secondary - WPN_Medigun = 29, - WPN_NewMedigun = 211, - WPN_Kritzkrieg = 35, - WPN_QuickFix = 411, - WPN_FestiveMedigun = 663, - WPN_MedigunS = 796, - WPN_MedigunG = 805, - WPN_MedigunR = 885, - WPN_MedigunB = 894, - WPN_MedigunC = 903, - WPN_MedigunD = 912, - WPN_Vaccinator = 998, - WPN_MedigunES = 961, - WPN_MedigunEG = 970, - //Melee - WPN_Bonesaw = 8, - WPN_NewBonesaw = 198, - WPN_Ubersaw = 37, - WPN_Vitasaw = 173, - WPN_Amputator = 304, - WPN_Solemnvow = 413, - WPN_FestiveUbersaw = 1003, -}; -enum sniperweapons -{ - //Primary - WPN_SniperRifle = 14, - WPN_NewSniperRifle = 201, - WPN_Huntsman = 56, - WPN_SydneySleeper = 230, - WPN_Bazaarbargain = 402, - WPN_Machina = 526, - WPN_FestiveSniperRifle = 664, - WPN_HitmanHeatmaker = 752, - WPN_BotSniperRifleS = 792, - WPN_BotSniperRifleG = 801, - WPN_BotSniperRifleR = 881, - WPN_BotSniperRifleB = 890, - WPN_BotSniperRifleC = 899, - WPN_BotSniperRifleD = 908, - WPN_AWP = 851, - WPN_BotSniperRifleES = 957, - WPN_BotSniperRifleEG = 966, - WPN_FestiveHuntsman = 1005, - WPN_CompoundBow = 1092, - WPN_ClassicSniperRifle = 1098, - WPN_ShootingStar = 30665, - //Secondary - WPN_SMG = 16, - WPN_NewSMG = 203, - WPN_Jarate = 58, - WPN_DarwinDangerShield = 231, - WPN_CleanersCarbine = 751, - WPN_FestiveJarate = 1083, - WPN_SelfAwareBeautyMark = 1105, - WPN_RAZORBACK = 57, - WPN_COZYCAMPER = 642, - //Melee - WPN_Kukri = 3, - WPN_NewKukri = 193, - WPN_TribalmansShiv = 171, - WPN_Bushwacka = 232, - WPN_Shahanshah = 401, -}; -enum spyweapons -{ - //Primary - WPN_Revolver = 24, - WPN_NewRevolver = 210, - WPN_Ambassador = 61, - WPN_BigKill = 161, - WPN_Letranger = 224, - WPN_Enforcer = 460, - WPN_Diamondback = 525, - WPN_FestiveAmbassador = 1006, - //Melee - WPN_Knife = 4, - WPN_NewKnife = 194, - WPN_EternalReward = 225, - WPN_DisguiseKit = 27, - WPN_Kunai = 356, - WPN_BigEarner = 461, - WPN_WangaPrick = 574, - WPN_SharpDresser = 638, - WPN_Spycicle = 649, - WPN_FestiveKnife = 665, - WPN_BlackRose = 727, - WPN_BotKnifeS = 794, - WPN_BotKnifeG = 803, - WPN_BotKnifeR = 883, - WPN_BotKnifeB = 892, - WPN_BotKnifeC = 901, - WPN_BotKnifeD = 910, - WPN_BotKnifeES = 959, - WPN_BotKnifeEG = 968, - //Watches - WPN_InivisWatch = 30, - WPN_DeadRinger = 59, - WPN_CloakAndDagger = 60, - WPN_TimePiece = 297, - //Sapper - WPN_Sapper = 735, - WPN_Sapper2 = 736, - WPN_RedTape1 = 810, - WPN_RedTape2 = 831, - WPN_ApSap = 933, - WPN_FestiveSapper = 1080, - WPN_SnackAttack = 1102, -}; - - -class c_base_weapon : public IClientEntity -{ -public: - - NETVAR( m_iItemDefinitionIndex, "m_iItemDefinitionIndex", "DT_BaseAttributableItem", 0, int ); - NETVAR( m_flNextPrimaryAttack, "m_flNextPrimaryAttack", "DT_TFWeaponBase", 0, float ); - NETVAR( m_nInspectStage, "m_nInspectStage", "DT_TFWeaponBase", 0, int ); - NETVAR( m_flInspectAnimTime, "m_flInspectAnimTime", "DT_TFWeaponBase", 0, float ); - NETVAR( m_AttributeList, "m_AttributeList", "DT_BaseAttributableItem", 0, c_attribute_list* ) - NETVAR( m_hOwnerEntity, "m_hOwnerEntity", "DT_BaseEntity", 0, uint32_t ); - NETVAR( m_iClip1, "m_iClip1", "DT_BaseCombatWeapon", 0, int ); - NETVAR( m_hBuilder, "m_hBuilder", "DT_BaseObject", 0, uint32_t ); - void get_weapon_class( ); - - bool is_sniper( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_SniperRifle: - case WPN_NewSniperRifle: - case WPN_Huntsman: - case WPN_SydneySleeper: - case WPN_Bazaarbargain: - case WPN_Machina: - case WPN_FestiveSniperRifle: - case WPN_HitmanHeatmaker: - case WPN_BotSniperRifleS: - case WPN_BotSniperRifleG: - case WPN_BotSniperRifleR: - case WPN_BotSniperRifleB: - case WPN_BotSniperRifleC: - case WPN_BotSniperRifleD: - case WPN_AWP: - case WPN_BotSniperRifleES: - case WPN_BotSniperRifleEG: - case WPN_FestiveHuntsman: - case WPN_CompoundBow: - case WPN_ClassicSniperRifle: - case WPN_ShootingStar: - return true; - break; - default: - return false; - } - } - - - bool has_trajectory( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_Sandman: - case WPN_WrapAssassin: - case WPN_FlyingGuillotine1: - case WPN_FlyingGuillotine2: - case WPN_Flaregun: - case WPN_Detonator: - case WPN_ScorchShot: - case WPN_FestiveFlaregun: - case WPN_GrenadeLauncher: - case WPN_NewGrenadeLauncher: - case WPN_LochNLoad: - case WPN_LoooseCannon: - case WPN_FestiveGrenadeLauncher: - case WPN_IronBomber: - case WPN_Ullapool: - case WPN_QuickieBombLauncher: - case WPN_StickyJumper: - case WPN_NewStickyLauncher: - case WPN_StickyLauncher: - case WPN_ScottishResistance: - case WPN_FestiveHuntsman: - case WPN_Huntsman: - case WPN_FestiveJarate: - case WPN_Jarate: - case WPN_SelfAwareBeautyMark: - case WPN_GasPasser: - case WPN_CompoundBow: - return true; - break; - default: - return false; - } - } - - bool is_primary( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_Scattergun:
- case WPN_NewScattergun:
- case WPN_FAN:
- case WPN_Shortstop:
- case WPN_SodaPopper:
- case WPN_BabyFaceBlaster:
- case WPN_BotScattergunS:
- case WPN_BotScattergunG:
- case WPN_BotScattergunR:
- case WPN_BotScattergunB:
- case WPN_BotScattergunC:
- case WPN_BotScattergunD:
- case WPN_BotScattergunES:
- case WPN_BotScattergunEG:
- case WPN_FestiveFaN:
- case WPN_BackScatter:
- case WPN_RocketLauncher:
- case WPN_NewRocketLauncher:
- case WPN_DirectHit:
- case WPN_BlackBox:
- case WPN_RocketJumper:
- case WPN_LibertyLauncher:
- case WPN_CowMangler:
- case WPN_Original:
- case WPN_FestiveRocketLauncher:
- case WPN_BeggersBazooka:
- case WPN_BotRocketlauncherS:
- case WPN_BotRocketlauncherG:
- case WPN_BotRocketlauncherR:
- case WPN_BotRocketlauncherB:
- case WPN_BotRocketlauncherC:
- case WPN_BotRocketlauncherD:
- case WPN_BotRocketlauncherES:
- case WPN_BotRocketlauncherEG:
- case WPN_FestiveBlackbox:
- case WPN_Airstrike:
- case WPN_Flamethrower:
- case WPN_NewFlamethrower:
- case WPN_Backburner:
- case WPN_Degreaser:
- case WPN_FestiveFlamethrower:
- case WPN_Phlogistinator:
- case WPN_Rainblower:
- case WPN_BotFlamethrowerS:
- case WPN_BotFlamethrowerG:
- case WPN_BotFlamethrowerR:
- case WPN_BotFlamethrowerB:
- case WPN_BotFlamethrowerC:
- case WPN_BotFlamethrowerD:
- case WPN_BotFlamethrowerES:
- case WPN_BotFlamethrowerEG:
- case WPN_FestiveBackburner:
- case WPN_GrenadeLauncher:
- case WPN_NewGrenadeLauncher:
- case WPN_LochNLoad:
- case WPN_LoooseCannon:
- case WPN_FestiveGrenadeLauncher:
- case WPN_IronBomber:
- case WPN_Minigun:
- case WPN_NewMinigun:
- case WPN_Natascha:
- case WPN_IronCurtain:
- case WPN_BrassBeast:
- case WPN_Tomislav:
- case WPN_FestiveMinigun:
- case WPN_HuoLongHeatmaker1:
- case WPN_HuoLongHeatmaker2:
- case WPN_BotMinigunS:
- case WPN_BotMinigunG:
- case WPN_BotMinigunR:
- case WPN_BotMinigunB:
- case WPN_BotMinigunC:
- case WPN_BotMinigunD:
- case WPN_Deflector:
- case WPN_BotMinigunES:
- case WPN_BotMinigunEG:
- case WPN_EngineerShotgun:
- case WPN_FrontierJustice:
- case WPN_Widowmaker:
- case WPN_Pomson:
- case WPN_RescueRanger:
- case WPN_FestiveFrontierJustice:
- case WPN_SyringeGun:
- case WPN_NewSyringeGun:
- case WPN_Blutsauger:
- case WPN_Crossbow:
- case WPN_Overdose:
- case WPN_FestiveCrossbow:
- case WPN_SniperRifle:
- case WPN_NewSniperRifle:
- case WPN_Huntsman:
- case WPN_SydneySleeper:
- case WPN_Bazaarbargain:
- case WPN_Machina:
- case WPN_FestiveSniperRifle:
- case WPN_HitmanHeatmaker:
- case WPN_BotSniperRifleS:
- case WPN_BotSniperRifleG:
- case WPN_BotSniperRifleR:
- case WPN_BotSniperRifleB:
- case WPN_BotSniperRifleC:
- case WPN_BotSniperRifleD:
- case WPN_AWP:
- case WPN_BotSniperRifleES:
- case WPN_BotSniperRifleEG:
- case WPN_FestiveHuntsman:
- case WPN_CompoundBow:
- case WPN_ClassicSniperRifle:
- case WPN_ShootingStar:
- case WPN_Revolver:
- case WPN_NewRevolver:
- case WPN_Ambassador:
- case WPN_BigKill:
- case WPN_Letranger:
- case WPN_Enforcer:
- case WPN_Diamondback:
- case WPN_FestiveAmbassador: - return true; - break; - default: - return false; - } - } - - bool is_secondary( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_ScoutPistol:
- case WPN_NewPistol:
- case WPN_Bonk:
- case WPN_CritCola:
- case WPN_Lugermorph:
- case WPN_Milk:
- case WPN_Lugermorph2:
- case WPN_Winger:
- case WPN_PocketPistol:
- case WPN_MutatedMilk:
- case WPN_CAPPER:
- case WPN_SoldierShotgun:
- case WPN_NewShotgun:
- case WPN_BuffBanner:
- case WPN_BattalionBackup:
- case WPN_Concheror:
- case WPN_ReserveShooter:
- case WPN_RighteousBison:
- case WPN_FestiveBuffBanner:
- case WPN_PanicAttack:
- case WPN_ManTreads:
- case WPN_GunBoats:
- case WPN_BASEJumper:
- case WPN_PyroShotgun:
- case WPN_Flaregun:
- case WPN_Detonator:
- case WPN_ManMelter:
- case WPN_ScorchShot:
- case WPN_FestiveFlaregun:
- case WPN_ThermalThruster:
- case WPN_GasPasser:
- case WPN_StickyLauncher:
- case WPN_NewStickyLauncher:
- case WPN_ScottishResistance:
- case WPN_StickyJumper:
- case WPN_FestiveStickyLauncher:
- case WPN_BotStickyS:
- case WPN_BotStickyG:
- case WPN_BotStickyR:
- case WPN_BotStickyB:
- case WPN_BotStickyC:
- case WPN_BotStickyD:
- case WPN_BotStickyES:
- case WPN_BotStickyEG:
- case WPN_QuickieBombLauncher:
- case WPN_SplendidScreen:
- case WPN_CharginTarge:
- case WPN_FestiveCharginTarge:
- case WPN_TideTurner:
- case WPN_HeavyShotgun:
- case WPN_Sandvich:
- case WPN_CandyBar:
- case WPN_Steak:
- case WPN_Fishcake:
- case WPN_FamilyBuisness:
- case WPN_RobotSandvich:
- case WPN_FestiveSandvich:
- case WPN_EngineerPistol:
- case WPN_Wrangler:
- case WPN_ShortCircut:
- case WPN_FestiveWrangler:
- case WPN_GeigerCounter:
- case WPN_Medigun:
- case WPN_NewMedigun:
- case WPN_Kritzkrieg:
- case WPN_QuickFix:
- case WPN_FestiveMedigun:
- case WPN_MedigunS:
- case WPN_MedigunG:
- case WPN_MedigunR:
- case WPN_MedigunB:
- case WPN_MedigunC:
- case WPN_MedigunD:
- case WPN_Vaccinator:
- case WPN_MedigunES:
- case WPN_MedigunEG:
- case WPN_SMG:
- case WPN_NewSMG:
- case WPN_Jarate:
- case WPN_DarwinDangerShield:
- case WPN_CleanersCarbine:
- case WPN_FestiveJarate:
- case WPN_SelfAwareBeautyMark:
- case WPN_RAZORBACK:
- case WPN_COZYCAMPER: - return true; - break; - default: - return false; - } - } - - bool is_third( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_Bat:
- case WPN_NewBat:
- case WPN_Sandman:
- case WPN_Fish:
- case WPN_Cane:
- case WPN_BostonBasher:
- case WPN_SunStick:
- case WPN_FanOWar:
- case WPN_RuneBlade:
- case WPN_Saxxy:
- case WPN_Atomizer:
- case WPN_ConscientiousObjector:
- case WPN_UnarmedCombat:
- case WPN_WrapAssassin:
- case WPN_FestiveBat:
- case WPN_FestiveScattergun:
- case WPN_FlyingGuillotine1:
- case WPN_FlyingGuillotine2:
- case WPN_FreedomStaff:
- case WPN_BatOuttaHell:
- case WPN_MemoryMaker:
- case WPN_FestiveFish:
- case WPN_TheHamShank:
- case WPN_CrossingGuard:
- case WPN_NecroSmasher:
- case WPN_Batsaber:
- case WPN_Shovel:
- case WPN_NewShovel:
- case WPN_Equalizer:
- case WPN_PainTrain:
- case WPN_Katana:
- case WPN_MarketGardener:
- case WPN_DisciplinaryAction:
- case WPN_EscapePlan:
- case WPN_Fireaxe:
- case WPN_NewAxe:
- case WPN_Axtingusher:
- case WPN_HomeWrecker:
- case WPN_PowerJack:
- case WPN_Backscratcher:
- case WPN_VolcanoFragment:
- case WPN_Maul:
- case WPN_Mailbox:
- case WPN_ThirdDegree:
- case WPN_Lollychop:
- case WPN_NeonAnnihilator1:
- case WPN_NeonAnnihilator2:
- case WPN_FestiveAxtingisher:
- case WPN_Bottle:
- case WPN_NewBottle:
- case WPN_Sword:
- case WPN_ScottsSkullctter:
- case WPN_Fryingpan:
- case WPN_Headless:
- case WPN_Ullapool:
- case WPN_Claidheamhmor:
- case WPN_PersainPersuader:
- case WPN_Golfclub:
- case WPN_ScottishHandshake:
- case WPN_GoldenFryingPan:
- case WPN_FestiveEyelander:
- case WPN_Fists:
- case WPN_NewFists:
- case WPN_KGB:
- case WPN_GRU:
- case WPN_WarriorSpirit:
- case WPN_FistsOfSteel:
- case WPN_EvictionNotice:
- case WPN_ApocoFists:
- case WPN_HolidayPunch:
- case WPN_FestiveGRU:
- case WPN_BreadBite:
- case WPN_Wrench:
- case WPN_NewWrench:
- case WPN_Goldenwrench:
- case WPN_SouthernHospitality:
- case WPN_Gunslinger:
- case WPN_Jag:
- case WPN_FestiveWrench:
- case WPN_EurekaEffect:
- case WPN_BotWrenchS:
- case WPN_BotWrenchG:
- case WPN_BotWrenchR:
- case WPN_BotWrenchB:
- case WPN_BotWrenchC:
- case WPN_BotWrenchD:
- case WPN_BotWrenchES:
- case WPN_BotWrenchEG:
- case WPN_Bonesaw:
- case WPN_NewBonesaw:
- case WPN_Ubersaw:
- case WPN_Vitasaw:
- case WPN_Amputator:
- case WPN_Solemnvow:
- case WPN_FestiveUbersaw:
- case WPN_Kukri:
- case WPN_NewKukri:
- case WPN_TribalmansShiv:
- case WPN_Bushwacka:
- case WPN_Shahanshah: - return true; - break; - default: - return false; - } - } - - bool is_shield( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_CharginTarge: - case WPN_SplendidScreen: - case WPN_TideTurner: - case WPN_FestiveCharginTarge: - return true; - break; - default: - return false; - } - } - - - bool is_shotgun( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_Scattergun: - case WPN_NewScattergun: - case WPN_FAN: - case WPN_SodaPopper: - case WPN_FestiveFaN: - case WPN_BackScatter: - case WPN_SoldierShotgun: - case WPN_NewShotgun: - case WPN_ReserveShooter: - case WPN_PanicAttack: - case WPN_PyroShotgun: - case WPN_HeavyShotgun: - case WPN_FamilyBuisness: - case WPN_EngineerShotgun: - case WPN_FrontierJustice: - case WPN_Widowmaker: - case WPN_Pomson: - case WPN_RescueRanger: - case WPN_FestiveFrontierJustice: - return true; - break; - default: - return false; - } - } - - bool is_melee( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_Bat: - case WPN_NewBat: - case WPN_Sandman: - case WPN_Fish: - case WPN_Cane: - case WPN_BostonBasher: - case WPN_SunStick: - case WPN_FanOWar: - case WPN_RuneBlade: - case WPN_Saxxy: - case WPN_Atomizer: - case WPN_ConscientiousObjector: - case WPN_UnarmedCombat: - case WPN_WrapAssassin: - case WPN_FestiveBat: - case WPN_FreedomStaff: - case WPN_BatOuttaHell: - case WPN_MemoryMaker: - case WPN_FestiveFish: - case WPN_TheHamShank: - case WPN_CrossingGuard: - case WPN_NecroSmasher: - case WPN_Batsaber: - case WPN_Shovel: - case WPN_NewShovel: - case WPN_Equalizer: - case WPN_PainTrain: - case WPN_Katana: - case WPN_MarketGardener: - case WPN_DisciplinaryAction: - case WPN_EscapePlan: - case WPN_Fireaxe: - case WPN_NewAxe: - case WPN_Axtingusher: - case WPN_HomeWrecker: - case WPN_PowerJack: - case WPN_Backscratcher: - case WPN_VolcanoFragment: - case WPN_Maul: - case WPN_Mailbox: - case WPN_ThirdDegree: - case WPN_Lollychop: - case WPN_NeonAnnihilator1: - case WPN_NeonAnnihilator2: - case WPN_FestiveAxtingisher: - case WPN_Bottle: - case WPN_NewBottle: - case WPN_Sword: - case WPN_ScottsSkullctter: - case WPN_Fryingpan: - case WPN_Headless: - case WPN_Ullapool: - case WPN_Claidheamhmor: - case WPN_PersainPersuader: - case WPN_Golfclub: - case WPN_ScottishHandshake: - case WPN_GoldenFryingPan: - case WPN_FestiveEyelander: - case WPN_Fists: - case WPN_NewFists: - case WPN_KGB: - case WPN_GRU: - case WPN_WarriorSpirit: - case WPN_FistsOfSteel: - case WPN_EvictionNotice: - case WPN_ApocoFists: - case WPN_HolidayPunch: - case WPN_FestiveGRU: - case WPN_BreadBite: - case WPN_Wrench: - case WPN_NewWrench: - case WPN_Goldenwrench: - case WPN_SouthernHospitality: - case WPN_Gunslinger: - case WPN_Jag: - case WPN_Bonesaw: - case WPN_NewBonesaw: - case WPN_Ubersaw: - case WPN_Vitasaw: - case WPN_Amputator: - case WPN_Solemnvow: - case WPN_FestiveUbersaw: - case WPN_Kukri: - case WPN_NewKukri: - case WPN_TribalmansShiv: - case WPN_Bushwacka: - case WPN_Shahanshah: - return true; - break; - default: - return false; - } - } - - bool is_pistol( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_EngineerPistol: - case WPN_ScoutPistol: - case WPN_NewPistol: - case WPN_Lugermorph: - case WPN_Lugermorph2: - case WPN_Winger: - case WPN_PocketPistol: - case WPN_CAPPER: - case WPN_ShortCircut: - case WPN_Flaregun: - case WPN_FestiveFlaregun: - case WPN_Detonator: - case WPN_ManMelter: - case WPN_ScorchShot: - case WPN_Shortstop: - return true; - break; - default: - return false; - } - } - - bool is_grenade( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_Milk: - case WPN_MutatedMilk: - case WPN_Jarate: - case WPN_FestiveJarate: - case WPN_SelfAwareBeautyMark: - case WPN_GasPasser: - case WPN_FlyingGuillotine1: - case WPN_FlyingGuillotine2: - return true; - break; - default: - return false; - - } - } - - - bool is_util( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_Milk: - case WPN_MutatedMilk: - case WPN_Jarate: - case WPN_FestiveJarate: - case WPN_DarwinDangerShield: - case WPN_RAZORBACK: - case WPN_COZYCAMPER: - case WPN_BuffBanner: - case WPN_BattalionBackup: - case WPN_Concheror: - case WPN_BASEJumper: - case WPN_ManTreads: - case WPN_GunBoats: - case WPN_ThermalThruster: - case WPN_DisguiseKit: - case WPN_Builder: - case WPN_Builder2: - case WPN_Destructor: - case WPN_Toolbox: - return true; - break; - default: - return false; - - } - } - - bool is_flame_thrower( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_Flamethrower: - case WPN_NewFlamethrower: - case WPN_Backburner: - case WPN_Degreaser: - case WPN_FestiveFlamethrower: - case WPN_Phlogistinator: - case WPN_Rainblower: - case WPN_BotFlamethrowerS: - case WPN_BotFlamethrowerG: - case WPN_BotFlamethrowerR: - case WPN_BotFlamethrowerB: - case WPN_BotFlamethrowerC: - case WPN_BotFlamethrowerD: - case WPN_BotFlamethrowerES: - case WPN_BotFlamethrowerEG: - case WPN_FestiveBackburner: - return true; - break; - default: - return false; - } - } - - bool is_sticky( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_StickyLauncher: - case WPN_NewStickyLauncher: - case WPN_ScottishResistance: - case WPN_StickyJumper: - case WPN_FestiveStickyLauncher: - case WPN_BotStickyS: - case WPN_BotStickyG: - case WPN_BotStickyR: - case WPN_BotStickyB: - case WPN_BotStickyC: - case WPN_BotStickyD: - case WPN_BotStickyES: - case WPN_BotStickyEG: - case WPN_QuickieBombLauncher: - return true; - break; - default: - return false; - } - } - - bool is_grenade_launcher( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_GrenadeLauncher: - case WPN_NewGrenadeLauncher: - case WPN_LochNLoad: - case WPN_LoooseCannon: - case WPN_FestiveGrenadeLauncher: - case WPN_IronBomber: - return true; - break; - default: - return false; - } - } - - bool is_rocket_launcher( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_RocketLauncher: - case WPN_NewRocketLauncher: - case WPN_DirectHit: - case WPN_BlackBox: - case WPN_RocketJumper: - case WPN_LibertyLauncher: - case WPN_CowMangler: - case WPN_Original: - case WPN_FestiveRocketLauncher: - case WPN_BeggersBazooka: - case WPN_BotRocketlauncherS: - case WPN_BotRocketlauncherG: - case WPN_BotRocketlauncherR: - case WPN_BotRocketlauncherB: - case WPN_BotRocketlauncherC: - case WPN_BotRocketlauncherD: - case WPN_BotRocketlauncherES: - case WPN_BotRocketlauncherEG: - case WPN_FestiveBlackbox: - case WPN_Airstrike: - return true; - break; - default: - return false; - } - } - - bool is_minigun( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_Minigun: - case WPN_NewMinigun: - case WPN_Natascha: - case WPN_IronCurtain: - case WPN_BrassBeast: - case WPN_Tomislav: - case WPN_FestiveMinigun: - case WPN_HuoLongHeatmaker1: - case WPN_HuoLongHeatmaker2: - case WPN_BotMinigunS: - case WPN_BotMinigunG: - case WPN_BotMinigunR: - case WPN_BotMinigunB: - case WPN_BotMinigunC: - case WPN_BotMinigunD: - case WPN_Deflector: - case WPN_BotMinigunES: - case WPN_BotMinigunEG: - return true; - break; - default: - return false; - } - } - - bool is_edible( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_Bonk: - case WPN_CritCola: - case WPN_CandyBar: - case WPN_Steak: - case WPN_Fishcake: - case WPN_Sandvich: - case WPN_RobotSandvich: - case WPN_FestiveSandvich: - return true; - break; - default: - return false; - } - } - - bool is_wrench( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_Wrench: - case WPN_NewWrench: - case WPN_Goldenwrench: - case WPN_SouthernHospitality: - case WPN_Gunslinger: - case WPN_Jag: - case WPN_FestiveWrench: - case WPN_EurekaEffect: - case WPN_BotWrenchS: - case WPN_BotWrenchG: - case WPN_BotWrenchR: - case WPN_BotWrenchB: - case WPN_BotWrenchC: - case WPN_BotWrenchD: - case WPN_BotWrenchES: - case WPN_BotWrenchEG: - return true; - break; - default: - return false; - } - } - - bool is_engineer( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_Builder: - case WPN_Builder2: - case WPN_Destructor: - case WPN_Toolbox: - return true; - break; - default: - return false; - } - } - - bool is_needle_gun( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_SyringeGun: - case WPN_NewSyringeGun: - case WPN_Blutsauger: - case WPN_Crossbow: - case WPN_Overdose: - case WPN_FestiveCrossbow: - return true; - break; - default: - return false; - } - } - - bool is_healing( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_Medigun: - case WPN_NewMedigun: - case WPN_Kritzkrieg: - case WPN_QuickFix: - case WPN_FestiveMedigun: - case WPN_MedigunS: - case WPN_MedigunG: - case WPN_MedigunR: - case WPN_MedigunB: - case WPN_MedigunC: - case WPN_MedigunD: - case WPN_Vaccinator: - case WPN_MedigunES: - case WPN_MedigunEG: - return true; - break; - default: - return false; - } - } - - bool is_revolver( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_Revolver: - case WPN_NewRevolver: - case WPN_Ambassador: - case WPN_BigKill: - case WPN_Letranger: - case WPN_Enforcer: - case WPN_Diamondback: - case WPN_FestiveAmbassador: - return true; - break; - default: - return false; - } - } - - bool is_spy_knife( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_Knife: - case WPN_NewKnife: - case WPN_EternalReward: - case WPN_DisguiseKit: - case WPN_Kunai: - case WPN_BigEarner: - case WPN_WangaPrick: - case WPN_SharpDresser: - case WPN_Spycicle: - case WPN_FestiveKnife: - case WPN_BlackRose: - case WPN_BotKnifeS: - case WPN_BotKnifeG: - case WPN_BotKnifeR: - case WPN_BotKnifeB: - case WPN_BotKnifeC: - case WPN_BotKnifeD: - case WPN_BotKnifeES: - case WPN_BotKnifeEG: - return true; - break; - default: - return false; - } - } - - bool is_watch( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_InivisWatch: - case WPN_DeadRinger: - case WPN_CloakAndDagger: - case WPN_TimePiece: - return true; - break; - default: - return false; - } - } - - bool is_sapper( ) { - switch( m_iItemDefinitionIndex( ) ) { - case WPN_Sapper: - case WPN_Sapper2: - case WPN_RedTape1: - case WPN_RedTape2: - case WPN_ApSap: - case WPN_FestiveSapper: - case WPN_SnackAttack: - return true; - break; - default: - return false; - } - } - - /*bool get_projectile_speed( float& speed ) { - speed = 0; - switch( m_iItemDefinitionIndex( ) ) { - case WPN_Milk: - case WPN_MutatedMilk: - speed = 1019.9; - break; - case WPN_FlyingGuillotine1: - case WPN_FlyingGuillotine2: - case WPN_Sandman: - case WPN_WrapAssassin: - case WPN_ManMelter: - speed = 3000; - break; - case WPN_RocketJumper: - case WPN_BlackBox: - case WPN_Original: - case WPN_BeggersBazooka: - case WPN_CowMangler: - speed = 1100; - break; - - case WPN_DirectHit: - speed = 1980; - break; - - case WPN_LibertyLauncher: - speed = 1540; - break; - - case WPN_RighteousBison: - case WPN_Pomson: - speed = 1200; - break; - - case WPN_Flaregun: - case WPN_FestiveFlaregun: - case WPN_ScorchShot: - case WPN_Detonator: - speed = 2000; - break; - - case WPN_GrenadeLauncher: - case WPN_NewGrenadeLauncher: - case WPN_FestiveGrenadeLauncher: - case WPN_IronBomber: - speed = 1216.6; - break; - - - - /* - get dynamically - - stickybomb launcher - scottish resistance - sticky jumper - quickiebomb launcher - huntman fortified compound - - - - } - return ( speed ); - }*/ - - int get_max_clip_1( ); - int get_max_clip_2( ); - int get_slot( ); - char* get_name( ); - char* get_print_name( ); - vec3_t& get_bullet_spread( ); - float get_spread( ); - int get_weaponid( ); - bool can_fire( ); - bool is_non_aim( ); - int& get_inspect_stage( ); - float& get_inspect_time( ); - c_attribute_list* get_attribute_list( ); - float get_distance( ); -};
\ No newline at end of file diff --git a/tf2/CGlobalVarsBase.h b/tf2/CGlobalVarsBase.h deleted file mode 100644 index 9b0d79f..0000000 --- a/tf2/CGlobalVarsBase.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once
-
-class CGlobalVarsBase {
-public:
- float realtime;
- int framecount;
- float absoluteframetime;
- float curtime;
- float frametime;
- int maxclients;
- int tickcount;
- float interval_per_tick;
- float interpolation_amount;
-};
\ No newline at end of file diff --git a/tf2/CHLClient.h b/tf2/CHLClient.h deleted file mode 100644 index 7eadb50..0000000 --- a/tf2/CHLClient.h +++ /dev/null @@ -1,32 +0,0 @@ -#pragma once
-#include "dt_common.h"
-#include "dt_recv.h"
-#include "VFunc.h"
-#include "ClientClass.h"
-
-enum frame_stages_t {
- FRAME_UNDEFINED = -1, // (haven't run any frames yet)
- FRAME_START,
- FRAME_NET_UPDATE_START,
- FRAME_NET_UPDATE_POSTDATAUPDATE_START,
- FRAME_NET_UPDATE_POSTDATAUPDATE_END,
- FRAME_NET_UPDATE_END,
-
- FRAME_RENDER_START,
- FRAME_RENDER_END
-};
-
-class chl_client {
-public:
- client_class_t* GetAllClasses( ) {
- return call_vfunc< client_class_t*( __thiscall* )( void* ) >( this, 8 )( this );
- }
-
- void in_activatemouse( ) {
- call_vfunc< void( __thiscall* )( void* ) >( this, 15 )( this );
- }
-
- void in_deactivatemouse( ) {
- call_vfunc< void( __thiscall* )( void* ) >( this, 16 )( this );
- }
-};
\ No newline at end of file diff --git a/tf2/CInput.hpp b/tf2/CInput.hpp deleted file mode 100644 index 3fb8bff..0000000 --- a/tf2/CInput.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#pragma once
-
-#include "vector.hpp"
-#include "IClientMode.h"
-
-#define MULTIPLAYER_BACKUP 150
-
-struct verified_cmd_t {
- user_cmd_t m_cmd;
- CRC32_t m_crc;
-};
-
-class CInput {
- void* pvftable; //0x00
-public:
- bool m_fTrackIRAvailable; //0x04
- bool m_fMouseInitialized; //0x05
- bool m_fMouseActive; //0x06
- bool m_fJoystickAdvancedInit; //0x07
-private:
- char pad_0x08[ 0x2C ]; //0x08
-public:
- void* m_pKeys; //0x34
-private:
- char pad_0x38[ 0x64 ]; //0x38
- int pad_0x41;
- int pad_0x42;
-public:
- bool m_fCameraInterceptingMouse; //0x9C
- bool m_fCameraInThirdPerson; //0x9D
- bool m_fCameraMovingWithMouse; //0x9E
- vec3_t m_vecCameraOffset; //0xA0
- bool m_fCameraDistanceMove; //0xAC
- int m_nCameraOldX; //0xB0
- int m_nCameraOldY; //0xB4
- int m_nCameraX; //0xB8
- int m_nCameraY; //0xBC
- bool m_CameraIsOrthographic; //0xC0
- vec3_t m_angPreviousViewAngles; //0xC4
- vec3_t m_angPreviousViewAnglesTilt; //0xD0
- float m_flLastForwardMove; //0xDC
- int m_nClearInputState; //0xE0
-public:
- user_cmd_t * m_pCommands; //0xEC
- verified_cmd_t* m_pVerifiedCommands; //0xF0
- int m_hSelectedWeapon;
-
- user_cmd_t* GetUserCmd( int slot, int seq_num ) {
- return util::get_vfunc< 8, user_cmd_t* >( this, slot, seq_num );
- }
-
- void CreateMove( int sequence_number, float input_sample_time, bool active ) {
- return util::get_vfunc< 3, void >( this, sequence_number, input_sample_time, active );
- }
-};
diff --git a/tf2/CUserCmd.h b/tf2/CUserCmd.h deleted file mode 100644 index f9dd746..0000000 --- a/tf2/CUserCmd.h +++ /dev/null @@ -1,51 +0,0 @@ -#pragma once
-#include "vector.hpp"
-
-enum PlayerControls_t {
- IN_ATTACK = 1 << 0,
- IN_JUMP = 1 << 1,
- IN_DUCK = 1 << 2,
- IN_FORWARD = 1 << 3,
- IN_BACK = 1 << 4,
- IN_USE = 1 << 5,
- IN_CANCEL = 1 << 6,
- IN_LEFT = 1 << 7,
- IN_RIGHT = 1 << 8,
- IN_MOVELEFT = 1 << 9,
- IN_MOVERIGHT = 1 << 10,
- IN_ATTACK2 = 1 << 11,
- IN_RUN = 1 << 12,
- IN_RELOAD = 1 << 13,
- IN_ALT1 = 1 << 14,
- IN_ALT2 = 1 << 15,
- IN_SCORE = 1 << 16,
- IN_SPEED = 1 << 17,
- IN_WALK = 1 << 18,
- IN_ZOOM = 1 << 19,
- IN_WEAPON1 = 1 << 20,
- IN_WEAPON2 = 1 << 21,
- IN_BULLRUSH = 1 << 22,
- IN_GRENADE1 = 1 << 23,
- IN_GRENADE2 = 1 << 24,
- IN_ATTACK3 = 1 << 25,
-};
-
-class user_cmd_t {
-public:
- virtual ~user_cmd_t( ) {};
- int command_number; //0
- int tick_count; //4
- vec3_t viewangles; //16
- float forwardmove; //20
- float sidemove; //24
- float upmove; //28
- int buttons; //32
- byte impulse; //33
- int weaponselect; //
- int weaponsubtype;
- int random_seed;
- short mousedx;
- short mousedy;
- bool hasbeenpredicted;
- int SetValue;
-};
\ No newline at end of file diff --git a/tf2/ClientClass.h b/tf2/ClientClass.h deleted file mode 100644 index 56a1103..0000000 --- a/tf2/ClientClass.h +++ /dev/null @@ -1,382 +0,0 @@ -#pragma once
-#include <inttypes.h>
-#include "dt_recv.h"
-typedef unsigned char byte;
-
-enum ClientClassIDs {
- SporeExplosion = 359,
- RocketTrail = 357,
- SmokeTrail = 358,
- CPropVehicleDriveable = 107,
- ParticleSmokeGrenade = 356,
- CParticleFire = 90,
- MovieExplosion = 354,
- CTEGaussExplosion = 154,
- CEnvQuadraticBeam = 43,
- CEmbers = 36,
- CEnvWind = 47,
- CPrecipitation = 106,
- CBaseTempEntity = 17,
- CWeaponIFMSteadyCam = 349,
- CWeaponIFMBaseCamera = 348,
- CWeaponIFMBase = 347,
- CTFWearableVM = 341,
- CTFWearable = 334,
- CTFWearableItem = 337,
- CEconWearable = 35,
- CBaseAttributableItem = 3,
- CEconEntity = 34,
- CHandleTest = 72,
- CTeamplayRoundBasedRulesProxy = 125,
- CTeamRoundTimer = 126,
- CSpriteTrail = 121,
- CSpriteOriented = 120,
- CSprite = 119,
- CRagdollPropAttached = 110,
- CRagdollProp = 109,
- CPoseController = 105,
- CGameRulesProxy = 68,
- CInfoLadderDismount = 75,
- CFuncLadder = 58,
- CEnvDetailController = 40,
- CWorld = 351,
- CWaterLODControl = 346,
- CWaterBullet = 345,
- CVoteController = 344,
- CVGuiScreen = 343,
- CPropJeep = 0,
- CPropVehicleChoreoGeneric = 0,
- CTest_ProxyToggle_Networkable = 174,
- CTesla = 169,
- CTeamTrainWatcher = 127,
- CBaseTeamObjectiveResource = 16,
- CTeam = 124,
- CSun = 123,
- CParticlePerformanceMonitor = 91,
- CSpotlightEnd = 118,
- CSlideshowDisplay = 115,
- CShadowControl = 114,
- CSceneEntity = 113,
- CRopeKeyframe = 112,
- CRagdollManager = 108,
- CPhysicsPropMultiplayer = 98,
- CPhysBoxMultiplayer = 96,
- CBasePropDoor = 15,
- CDynamicProp = 33,
- CPointCommentaryNode = 104,
- CPointCamera = 103,
- CPlayerResource = 102,
- CPlasma = 100,
- CPhysMagnet = 99,
- CPhysicsProp = 97,
- CPhysBox = 95,
- CParticleSystem = 92,
- CMaterialModifyControl = 81,
- CLightGlow = 79,
- CInfoOverlayAccessor = 77,
- CFuncTrackTrain = 67,
- CFuncSmokeVolume = 66,
- CFuncRotating = 65,
- CFuncReflectiveGlass = 62,
- CFuncOccluder = 60,
- CFuncMonitor = 59,
- CFunc_LOD = 54,
- CTEDust = 146,
- CFunc_Dust = 53,
- CFuncConveyor = 56,
- CBreakableSurface = 25,
- CFuncAreaPortalWindow = 55,
- CFish = 51,
- CEntityFlame = 38,
- CFireSmoke = 49,
- CEnvTonemapController = 46,
- CEnvScreenEffect = 44,
- CEnvScreenOverlay = 45,
- CEnvProjectedTexture = 42,
- CEnvParticleScript = 41,
- CFogController = 52,
- CEntityParticleTrail = 39,
- CEntityDissolve = 37,
- CDynamicLight = 32,
- CColorCorrectionVolume = 30,
- CColorCorrection = 29,
- CBreakableProp = 24,
- CBasePlayer = 13,
- CBaseFlex = 8,
- CBaseEntity_ = 7,
- CBaseDoor = 6,
- CBaseCombatCharacter = 4,
- CBaseAnimatingOverlay = 2,
- CBoneFollower = 20,
- CBaseAnimating = 1,
- CInfoLightingRelative = 76,
- CAI_BaseNPC = 0,
- CBeam = 19,
- CBaseViewModel = 18,
- CBaseProjectile = 14,
- CBaseParticleEntity = 12,
- CBaseGrenade = 9,
- CBaseCombatWeapon = 5,
- CTFWearableRazorback = 339,
- CTFWearableDemoShield = 336,
- CTFWearableLevelableItem = 338,
- CTFWearableCampaignItem = 335,
- CTFBaseRocket = 184,
- CTFWeaponBaseMerasmusGrenade = 323,
- CTFWeaponBaseMelee = 322,
- CTFWeaponBaseGun = 321,
- CTFWeaponBaseGrenadeProj = 320,
- CTFWeaponBase = 319,
- CTFWearableRobotArm = 340,
- CTFRobotArm = 285,
- CTFWrench = 342,
- CTFProjectile_ThrowableBreadMonster = 277,
- CTFProjectile_ThrowableBrick = 278,
- CTFProjectile_ThrowableRepel = 279,
- CTFProjectile_Throwable = 276,
- CTFThrowable = 317,
- CTFSyringeGun = 313,
- CTFKatana = 224,
- CTFSword = 312,
- CSniperDot = 117,
- CTFSniperRifleClassic = 306,
- CTFSniperRifleDecap = 307,
- CTFSniperRifle = 305,
- CTFChargedSMG = 196,
- CTFSMG = 304,
- CTFSlap = 303,
- CTFShovel = 302,
- CTFShotgunBuildingRescue = 301,
- CTFPEPBrawlerBlaster = 240,
- CTFSodaPopper = 308,
- CTFShotgun_Revenge = 299,
- CTFScatterGun = 295,
- CTFShotgun_Pyro = 298,
- CTFShotgun_HWG = 297,
- CTFShotgun_Soldier = 300,
- CTFShotgun = 296,
- CTFRocketPack = 294,
- CTFCrossbow = 200,
- CTFRocketLauncher_Mortar = 293,
- CTFRocketLauncher_AirStrike = 291,
- CTFRocketLauncher_DirectHit = 292,
- CTFRocketLauncher = 290,
- CTFRevolver = 284,
- CTFDRGPomson = 201,
- CTFRaygun = 282,
- CTFPistol_ScoutSecondary = 245,
- CTFPistol_ScoutPrimary = 244,
- CTFPistol_Scout = 243,
- CTFPistol = 242,
- CTFPipebombLauncher = 241,
- CTFWeaponPDA_Spy = 330,
- CTFWeaponPDA_Engineer_Destroy = 329,
- CTFWeaponPDA_Engineer_Build = 328,
- CTFWeaponPDAExpansion_Teleporter = 332,
- CTFWeaponPDAExpansion_Dispenser = 331,
- CTFWeaponPDA = 327,
- CTFParticleCannon = 238,
- CTFParachute_Secondary = 237,
- CTFParachute_Primary = 236,
- CTFParachute = 235,
- CTFMinigun = 233,
- CTFMedigunShield = 230,
- CWeaponMedigun = 350,
- CTFMechanicalArm = 229,
- CTFLunchBox_Drink = 228,
- CTFLunchBox = 227,
- CLaserDot = 78,
- CTFLaserPointer = 226,
- CTFKnife = 225,
- CTFGasManager = 211,
- CTFProjectile_JarGas = 260,
- CTFJarGas = 222,
- CTFProjectile_Cleaver = 253,
- CTFProjectile_JarMilk = 261,
- CTFProjectile_Jar = 259,
- CTFCleaver = 197,
- CTFJarMilk = 223,
- CTFJar = 221,
- CTFWeaponInvis = 326,
- CTFCannon = 195,
- CTFGrenadeLauncher = 215,
- CTFGrenadePipebombProjectile = 216,
- CTFGrapplingHook = 214,
- CTFFlareGun_Revenge = 209,
- CTFFlareGun = 208,
- CTFFlameRocket = 206,
- CTFFlameThrower = 207,
- CTFFists = 204,
- CTFFireAxe = 203,
- CTFWeaponFlameBall = 325,
- CTFCompoundBow = 199,
- CTFClub = 198,
- CTFBuffItem = 194,
- CTFStickBomb = 310,
- CTFBreakableSign = 193,
- CTFBottle = 191,
- CTFBreakableMelee = 192,
- CTFBonesaw = 189,
- CTFBall_Ornament = 181,
- CTFStunBall = 311,
- CTFBat_Giftwrap = 187,
- CTFBat_Wood = 188,
- CTFBat_Fish = 186,
- CTFBat = 185,
- CTFProjectile_EnergyRing = 255,
- CTFDroppedWeapon = 202,
- CTFWeaponSapper = 333,
- CTFWeaponBuilder = 324,
- C_TFWeaponBuilder = 0,
- CTFProjectile_Rocket = 262,
- CTFProjectile_Flare = 256,
- CTFProjectile_EnergyBall = 254,
- CTFProjectile_GrapplingHook = 257,
- CTFProjectile_HealingBolt = 258,
- CTFProjectile_Arrow = 251,
- CTFTankBoss = 314,
- CTFBaseBoss = 182,
- CBossAlpha = 0,
- NextBotCombatCharacter = 355,
- CTFProjectile_SpellKartBats = 266,
- CTFProjectile_SpellKartOrb = 267,
- CTFHellZap = 219,
- CTFProjectile_SpellLightningOrb = 268,
- CTFProjectile_SpellTransposeTeleport = 275,
- CTFProjectile_SpellMeteorShower = 269,
- CTFProjectile_SpellSpawnBoss = 272,
- CTFProjectile_SpellMirv = 270,
- CTFProjectile_SpellPumpkin = 271,
- CTFProjectile_SpellSpawnHorde = 273,
- CTFProjectile_SpellSpawnZombie = 274,
- CTFProjectile_SpellBats = 264,
- CTFProjectile_SpellFireball = 265,
- CTFSpellBook = 309,
- CHightower_TeleportVortex = 74,
- CTeleportVortex = 159,
- CZombie = 352,
- CMerasmusDancer = 83,
- CMerasmus = 82,
- CHeadlessHatman = 73,
- CEyeballBoss = 48,
- CTFBotHintEngineerNest = 190,
- CBotNPCMinion = 0,
- CBotNPC = 0,
- CPasstimeGun = 94,
- CTFViewModel = 318,
- CRobotDispenser = 111,
- CTFRobotDestruction_Robot = 286,
- CTFReviveMarker = 283,
- CTFPumpkinBomb = 280,
- CTFProjectile_BallOfFire = 252,
- CTFBaseProjectile = 183,
- CTFPointManager = 249,
- CBaseObjectUpgrade = 11,
- CTFRobotDestructionLogic = 289,
- CTFRobotDestruction_RobotGroup = 287,
- CTFRobotDestruction_RobotSpawn = 288,
- CTFPlayerDestructionLogic = 247,
- CPlayerDestructionDispenser = 101,
- CTFMinigameLogic = 232,
- CTFHalloweenMinigame_FallingPlatforms = 218,
- CTFHalloweenMinigame = 217,
- CTFMiniGame = 231,
- CTFPowerupBottle = 250,
- CTFItem = 220,
- CHalloweenSoulPack = 71,
- CTFGenericBomb = 212,
- CBonusRoundLogic = 23,
- CTFGameRulesProxy = 210,
- CTETFParticleEffect = 178,
- CTETFExplosion = 177,
- CTETFBlood = 176,
- CTFFlameManager = 205,
- CHalloweenGiftPickup = 69,
- CBonusDuckPickup = 21,
- CHalloweenPickup = 70,
- CCaptureFlagReturnIcon = 27,
- CCaptureFlag = 26,
- CBonusPack = 22,
- CTFTeam = 316,
- CTFTauntProp = 315,
- CTFPlayerResource = 248,
- CTFPlayer = 246,
- CTFRagdoll = 281,
- CTEPlayerAnimEvent = 164,
- CTFPasstimeLogic = 239,
- CPasstimeBall = 93,
- CTFObjectiveResource = 234,
- CTFGlow = 213,
- CTEFireBullets = 151,
- CTFBuffBanner = 0,
- CTFAmmoPack = 180,
- CObjectTeleporter = 89,
- CObjectSentrygun = 88,
- CTFProjectile_SentryRocket = 263,
- CObjectSapper = 87,
- CObjectCartDispenser = 85,
- CObjectDispenser = 86,
- CMonsterResource = 84,
- CFuncRespawnRoomVisualizer = 64,
- CFuncRespawnRoom = 63,
- CFuncPasstimeGoal = 61,
- CFuncForceField = 57,
- CCaptureZone = 28,
- CCurrencyPack = 31,
- CBaseObject = 10,
- CTestTraceline = 175,
- CTEWorldDecal = 179,
- CTESpriteSpray = 173,
- CTESprite = 172,
- CTESparks = 171,
- CTESmoke = 170,
- CTEShowLine = 168,
- CTEProjectedDecal = 166,
- CTEPlayerDecal = 165,
- CTEPhysicsProp = 163,
- CTEParticleSystem = 162,
- CTEMuzzleFlash = 161,
- CTELargeFunnel = 158,
- CTEKillPlayerAttachments = 157,
- CTEImpact = 156,
- CTEGlowSprite = 155,
- CTEShatterSurface = 167,
- CTEFootprintDecal = 153,
- CTEFizz = 152,
- CTEExplosion = 150,
- CTEEnergySplash = 149,
- CTEEffectDispatch = 148,
- CTEDynamicLight = 147,
- CTEDecal = 145,
- CTEClientProjectile = 144,
- CTEBubbleTrail = 143,
- CTEBubbles = 142,
- CTEBSPDecal = 141,
- CTEBreakModel = 140,
- CTEBloodStream = 139,
- CTEBloodSprite = 138,
- CTEBeamSpline = 137,
- CTEBeamRingPoint = 136,
- CTEBeamRing = 135,
- CTEBeamPoints = 134,
- CTEBeamLaser = 133,
- CTEBeamFollow = 132,
- CTEBeamEnts = 131,
- CTEBeamEntPoint = 130,
- CTEBaseBeam = 129,
- CTEArmorRicochet = 128,
- CTEMetalSparks = 160,
- CSteamJet = 122,
- CSmokeStack = 116,
- DustTrail = 353,
- CFireTrail = 50,
-};
-
-class client_class_t {
- byte _chpadding[ 8 ];
-public:
- char* m_name;
- RecvTable* m_rt_table;
- client_class_t* m_next;
- int m_class_id;
-};
\ No newline at end of file diff --git a/tf2/GlowObject.h b/tf2/GlowObject.h deleted file mode 100644 index 00dce81..0000000 --- a/tf2/GlowObject.h +++ /dev/null @@ -1,43 +0,0 @@ -#pragma once
-#include "UtlMem.h"
-#include <inttypes.h>
-#include "color.hpp"
-
-static const int END_OF_FREE_LIST = -1;
-static const int ENTRY_IN_USE = -2;
-
-struct GlowObject_t {
- uintptr_t ent_ptr;
- fclr_t glow_color;
-
- bool render_when_occluded;
- bool render_when_unoccluded;
- int pad;
-
- int next_free_slot;
-};
-
-struct GlowObjectManager_t {
- CUtlVector< GlowObject_t > data;
- int first_slot;
-
- int RegisterGlowObject( IClientEntity* ent ) {
- for( int i{ }; i < data.Count( ); i++ ) {
- if( data[ i ].ent_ptr == ent->get_ehandle( ) ) return 0;
- }
- int index{ };
- if( first_slot == -1 ) index = data.AddToTail( );
- else {
- index = first_slot;
- first_slot = data[ index ].next_free_slot;
- }
- data[ index ].ent_ptr = ent->get_ehandle( );
- data[ index ].glow_color = clr_t( 255, 255, 255, 255 ).to_fclr( );
- data[ index ].render_when_occluded = true;
- data[ index ].render_when_unoccluded = true;
- data[ index ].pad = -1;
- data[ index ].next_free_slot = -2;
-
- return index;
- }
-};
\ No newline at end of file diff --git a/tf2/IAppSystem.h b/tf2/IAppSystem.h deleted file mode 100644 index 84af8c2..0000000 --- a/tf2/IAppSystem.h +++ /dev/null @@ -1,31 +0,0 @@ -#pragma once
-
-class AppSystemInfo_t;
-
-enum InitReturnVal_t;
-
-enum AppSystemTier_t {
- APP_SYSTEM_TIER0 = 0,
- APP_SYSTEM_TIER1,
- APP_SYSTEM_TIER2,
- APP_SYSTEM_TIER3,
-
- APP_SYSTEM_TIER_OTHER,
-};
-
-using CreateInterfaceFn = void*( *)( const char*, int* );
-
-class IAppSystem {
-public:
- // Here's where the app systems get to learn about each other
- virtual bool Connect( CreateInterfaceFn factory ) = 0;
- virtual void Disconnect( ) = 0;
-
- // Here's where systems can access other interfaces implemented by this object
- // Returns NULL if it doesn't implement the requested interface
- virtual void *QueryInterface( const char *pInterfaceName ) = 0;
-
- // Init, shutdown
- virtual InitReturnVal_t Init( ) = 0;
- virtual void Shutdown( ) = 0;
-};
\ No newline at end of file diff --git a/tf2/IClientEntity.h b/tf2/IClientEntity.h deleted file mode 100644 index 0ba0807..0000000 --- a/tf2/IClientEntity.h +++ /dev/null @@ -1,154 +0,0 @@ -#pragma once
-#include "vector.hpp"
-#include "VFunc.h"
-#include "dt_common.h"
-#include "dt_recv.h"
-#include "search.h"
-#include "util.hpp"
-#include "ClientClass.h"
-
-using matrix3x4 = float[ 3 ][ 4 ];
-class bf_read;
-
-class ICollideable;
-class IClientNetworkable;
-class IClientRenderable;
-class IClientThinkable;
-class IClientEntity;
-class IClientAlphaProperty;
-
-class IClientUnknown {
-public:
- virtual ICollideable* GetCollideable( ) = 0;
- virtual IClientNetworkable* GetClientNetworkable( ) = 0;
- virtual IClientRenderable* GetClientRenderable( ) = 0;
- virtual IClientEntity* GetIClientEntity( ) = 0;
- virtual IClientEntity* GetBaseEntity( ) = 0;
- virtual IClientThinkable* GetClientThinkable( ) = 0;
- //virtual IClientModelRenderable* GetClientModelRenderable() = 0;
- virtual IClientAlphaProperty* GetClientAlphaProperty( ) = 0;
-};
-
-class IClientNetworkable {
-public:
- virtual IClientUnknown* GetIClientUnknown( ) = 0;
- virtual void Release( ) = 0;
- virtual client_class_t* GetClientClass( ) = 0;
- virtual void NotifyShouldTransmit( int state ) = 0;
- virtual void OnPreDataChanged( int updateType ) = 0;
- virtual void OnDataChanged( int updateType ) = 0;
- virtual void PreDataUpdate( int updateType ) = 0;
- virtual void PostDataUpdate( int updateType ) = 0;
- virtual void OnDataUnchangedInPVS( void ) = 0;
- virtual bool IsDormant( void ) = 0;
- virtual int EntIndex( void ) const = 0;
- virtual void ReceiveMessage( int classID, bf_read& msg ) = 0;
- virtual void* GetDataTableBasePtr( ) = 0;
- virtual void SetDestroyedOnRecreateEntities( void ) = 0;
-};
-
-class IClientEntity {
-public:
- void* get_client_renderable( ) {
- return reinterpret_cast< void* >( this + 0x4 );
- }
-
- IClientNetworkable* get_client_networkable( ) {
- return reinterpret_cast< IClientNetworkable* >( this + 0x8 );
- }
-
-public:
- uintptr_t get_ehandle( ) {
- return call_vfunc< uintptr_t( __thiscall* )( void* ) >( this, 1 )( this );
- }
-
- bool setup_bones( matrix3x4* bonetoworld, int maxbones, long bonemask, float curtime ) {
- return call_vfunc< bool( __thiscall* )( void*, matrix3x4*, int, long, float ) >( get_client_renderable( ), 16 )( get_client_renderable( ), bonetoworld, maxbones, bonemask, curtime );
- }
-
- int DrawModel( int flags, uint8_t alpha ) {
- using fn = int( __thiscall* )( void*, int, uint8_t );
- return util::get_vfunc< fn >( this->get_client_renderable( ), 9 )( this->get_client_renderable( ), flags, alpha );
- }
-
- vec3_t& get_render_origin( ) {
- using fn = vec3_t & ( __thiscall* )( void* );
- return util::get_vfunc< fn >( this, 10 )( this );
- }
-
- vec3_t& get_abs_origin( ) {
- return call_vfunc< vec3_t&( __thiscall* )( void* ) >( this, 9 )( this );
- }
-
- vec3_t& get_abs_angles( ) {
- return call_vfunc< vec3_t&( __thiscall* )( void* ) >( this, 10 )( this );
- }
-
- void* get_model( ) {
- return call_vfunc< void*( __thiscall* )( void* ) >( get_client_renderable( ), 9 )( get_client_renderable( ) );
- }
-
- client_class_t* get_client_class( ) {
- return call_vfunc< client_class_t*( __thiscall* )( void* ) >( get_client_networkable( ), 2 )( get_client_networkable( ) );
- }
-
- bool is_dormant( ) {
- return call_vfunc< bool( __thiscall * )( void * ) >( get_client_networkable( ), 8 )( get_client_networkable( ) );
- }
-
- int index( ) {
- return call_vfunc< int( __thiscall* )( void* ) >( get_client_networkable( ), 9 )( get_client_networkable( ) );
- }
-
- void update_glow_effect( ) {
- //static auto fn = pattern::first_code_match< void( __thiscall* )( void* ) >( GetModuleHandleA( "client.dll" ), "8B 06 8D 4D F4 57 51 8D 4D F8", -0x2c );
- //if ( fn ) fn( this );
- return call_vfunc< void( __thiscall* )( void* ) >( this, 226 )( this );
- }
-
- void destroy_glow_effect( ) {
- //static auto fn_offset = pattern::first_code_match< intptr_t >( GetModuleHandleA( "client.dll" ), "E8 ? ? ? ? 8B 9F ? ? ? ? 85 DB 74 3D 8B 33" );
- //static auto fn = reinterpret_cast< void( __thiscall* )( void* ) >( fn_offset + 5 + *( intptr_t* )( fn_offset + 1 ) );
- //if ( fn ) fn( this );
- return call_vfunc< void( __thiscall* )( void* ) >( this, 227 )( this );
- }
-
- client_class_t* GetClientClass( ) {
- using fn = client_class_t* ( __thiscall* )( void* );
- return util::get_vfunc< fn >( get_client_networkable( ), 2 )( this );
- /*
- try {
- return get_client_networkable( )->GetClientClass( );
- }
- catch( ... ) {
- return 0;
- }*/
- }
-
-public:
- template< typename T = uintptr_t >
- __forceinline T& get( std::ptrdiff_t offset = 0 ) {
- return( *reinterpret_cast< T* >( ( uintptr_t )this + offset ) );
- }
-
- template< std::ptrdiff_t offset, typename T = uintptr_t >
- __forceinline T& get( ) {
- return( *reinterpret_cast< T* >( ( uintptr_t )this + offset ) );
- }
-
- template< typename T = uintptr_t >
- __forceinline T at( std::ptrdiff_t offset = 0 ) {
- return( reinterpret_cast< T >( uintptr_t( this ) + offset ) );
- }
-
- template< std::ptrdiff_t offset, typename T = uintptr_t >
- __forceinline T at( ) {
- return( reinterpret_cast< T >( uintptr_t( this ) + offset ) );
- }
-
- template < typename t >
- t* as( ) {
- return reinterpret_cast< t* >( this );
- }
-
-};
\ No newline at end of file diff --git a/tf2/IClientEntityList.h b/tf2/IClientEntityList.h deleted file mode 100644 index 18b4371..0000000 --- a/tf2/IClientEntityList.h +++ /dev/null @@ -1,24 +0,0 @@ -#pragma once
-#include "VFunc.h"
-
-class IClientEntity;
-class c_base_player;
-using model_t = uintptr_t;
-class client_ent_list {
-public:
- template< typename T = IClientEntity > T* get_client_entity( int index ) {
- return call_vfunc< T* ( __thiscall* )( void*, int ) >( this, 3 )( this, index );
- }
-
- template< typename T = IClientEntity > T* get_entity_from_handle( uintptr_t handle ) {
- return call_vfunc< T*( __thiscall* )( void*, uintptr_t ) >( this, 4 )( this, handle );
- }
-
- int get_highest_entity_index( ) {
- return call_vfunc< int( __thiscall* )( void* ) >( this, 6 )( this );
- }
-
- template< typename T = c_base_player > __forceinline T* get_local_player( ) {
- return get_client_entity< T >( cl.m_engine( )->GetLocalPlayer( ) );
- }
-};
\ No newline at end of file diff --git a/tf2/IClientMode.h b/tf2/IClientMode.h deleted file mode 100644 index f528f3d..0000000 --- a/tf2/IClientMode.h +++ /dev/null @@ -1,174 +0,0 @@ -#pragma once
-
-#include "checksum_crc.h"
-
-#include "util.hpp"
-#include "vector.hpp"
-
-enum player_controls_t {
- IN_ATTACK = 1 << 0,
- IN_JUMP = 1 << 1,
- IN_DUCK = 1 << 2,
- IN_FORWARD = 1 << 3,
- IN_BACK = 1 << 4,
- IN_USE = 1 << 5,
- IN_CANCEL = 1 << 6,
- IN_LEFT = 1 << 7,
- IN_RIGHT = 1 << 8,
- IN_MOVELEFT = 1 << 9,
- IN_MOVERIGHT = 1 << 10,
- IN_ATTACK2 = 1 << 11,
- IN_RUN = 1 << 12,
- IN_RELOAD = 1 << 13,
- IN_ALT1 = 1 << 14,
- IN_ALT2 = 1 << 15,
- IN_SCORE = 1 << 16,
- IN_SPEED = 1 << 17,
- IN_WALK = 1 << 18,
- IN_ZOOM = 1 << 19,
- IN_WEAPON1 = 1 << 20,
- IN_WEAPON2 = 1 << 21,
- IN_BULLRUSH = 1 << 22,
- IN_GRENADE1 = 1 << 23,
- IN_GRENADE2 = 1 << 24,
- IN_ATTACK3 = 1 << 25,
-};
-
-class user_cmd_t {
-public:
- virtual ~user_cmd_t( ) { };
-
- int m_cmd_nr; // 0x04 For matching server and client commands for debugging
- int m_tick_count; // 0x08 the tick the client created this command
- vec3_t m_viewangles; // 0x0C Player instantaneous view angles.
- float m_forwardmove; // 0x24
- float m_sidemove; // 0x28
- float m_upmove; // 0x2C
- int m_buttons; // 0x30 Attack button states
- uint8_t m_impulse; // 0x34
- int m_weaponselect; // 0x38 Current weapon id
- int m_weaponsubtype; // 0x3C
- int m_random_seed; // 0x40 For shared random functions
- short m_mousedx; // 0x44 mouse accum in x from create move
- short m_mousedy; // 0x46 mouse accum in y from create move
- bool m_predicted; // 0x48 Client only, tracks whether we've predicted this command at least once
- vec3_t headangles; // 0x49
- vec3_t headoffset; // 0x55
-
- __forceinline user_cmd_t clamp( bool angles = true ) {
- if( angles )
- m_viewangles.clamp( );
-
- m_forwardmove = std::clamp( m_forwardmove, -450.f, 450.f );
- m_sidemove = std::clamp( m_sidemove, -450.f, 450.f );
- m_upmove = std::clamp( m_upmove, -450.f, 450.f );
-
- return *this;
- }
-
- CRC32_t get_check_sum( ) {
- CRC32_t crc;
- CRC32_Init( &crc );
-
- CRC32_ProcessBuffer( &crc, &m_cmd_nr, sizeof( m_cmd_nr ) );
- CRC32_ProcessBuffer( &crc, &m_tick_count, sizeof( m_tick_count ) );
- CRC32_ProcessBuffer( &crc, &m_viewangles, sizeof( m_viewangles ) );
- CRC32_ProcessBuffer( &crc, &m_forwardmove, sizeof( m_forwardmove ) );
- CRC32_ProcessBuffer( &crc, &m_sidemove, sizeof( m_sidemove ) );
- CRC32_ProcessBuffer( &crc, &m_upmove, sizeof( m_upmove ) );
- CRC32_ProcessBuffer( &crc, &m_buttons, sizeof( m_buttons ) );
- CRC32_ProcessBuffer( &crc, &m_impulse, sizeof( m_impulse ) );
- CRC32_ProcessBuffer( &crc, &m_weaponselect, sizeof( m_weaponselect ) );
- CRC32_ProcessBuffer( &crc, &m_weaponsubtype, sizeof( m_weaponsubtype ) );
- CRC32_ProcessBuffer( &crc, &m_random_seed, sizeof( m_random_seed ) );
- CRC32_ProcessBuffer( &crc, &m_mousedx, sizeof( m_mousedx ) );
- CRC32_ProcessBuffer( &crc, &m_mousedy, sizeof( m_mousedy ) );
-
- CRC32_Final( &crc );
- return crc;
- }
-
-private:
-
- //char pad_0x4C[ 0x18 ]; // 0x4C Current sizeof( usercmd ) = 100 = 0x64
-};
-
-class CHudChat {
-public:
- void ChatPrintf( int iPlayerIndex, int iFilter, const char* fmt ) {
- using fn = void( __cdecl* )( void*, int, int, const char* );
- util::get_vfunc< fn >( this, 26 )( this, iPlayerIndex, iFilter, fmt );
- }
-};
-
-class CViewSetup {
-public:
- int m_x;
- int m_oldX;
- int m_y;
- int m_oldY;
- int m_width;
- int m_oldWidth;
- int m_height;
- int m_oldHeight;
-
- bool m_bOrtho;
- float m_OrthoLeft;
- float m_OrthoTop;
- float m_OrthoRight;
- float m_OrthoBottom;
-
-private:
- char pad1[ 0x7C ];
-
-public:
- float m_flFov;
- float m_flFovViewmodel;
- vec3_t m_vecOrigin;
- vec3_t m_vecAngles;
-
- float zNear;
- float zFar;
- float zNearViewmodel;
- float zFarViewmodel;
-
- float m_flAspectRatio;
- float m_flNearBlurDepth;
- float m_flNearFocusDepth;
- float m_flFarFocusDepth;
- float m_flFarBlurDepth;
- float m_flNearBlurRadius;
- float m_flFarBlurRadius;
- int m_nDoFQuality;
- int m_nMotionBlurMode;
-
- float m_flShutterTime;
- vec3_t m_vShutterOpenPosition;
- vec3_t m_shutterOpenAngles;
- vec3_t m_vShutterClosePosition;
- vec3_t m_shutterCloseAngles;
-
- float m_flOffCenterTop;
- float m_flOffCenterBottom;
- float m_flOffCenterLeft;
- float m_flOffCenterRight;
-
- bool m_bOffCenter : 1;
- bool m_bRenderToSubrectOfLargerScreen : 1;
- bool m_bDoBloomAndToneMapping : 1;
- bool m_bDoDepthOfField : 1;
- bool m_bHDRTarget : 1;
- bool m_bDrawWorldNormal : 1;
- bool m_bCullFrontFaces : 1;
- bool m_bCacheFullSceneState : 1;
- bool m_bRenderFlashlightDepthTranslucents : 1;
-private:
- char pad2[ 0x40 ];
-};
-
-class IClientMode {
-public:
- char _pad[ 28 ];
-
- CHudChat* m_pChatElement; //0x2A
-};
\ No newline at end of file diff --git a/tf2/ICvar.h b/tf2/ICvar.h deleted file mode 100644 index 19cb55f..0000000 --- a/tf2/ICvar.h +++ /dev/null @@ -1,201 +0,0 @@ -#pragma once
-#include "IAppSystem.h"
-#include "util.hpp"
-#include "color.hpp"
-
-using CVarDLLIdentifier_t = int;
-class IConVar;
-using FnChangeCallback_t = void( *)( IConVar *var, const char *pOldValue, float flOldValue );
-class ConCommandBase;
-class ConCommand;
-class ICvarQuery;
-
-class IConsoleDisplayFunc {
-public:
- virtual void ColorPrint( const uint8_t* clr, const char *pMessage ) = 0;
- virtual void Print( const char *pMessage ) = 0;
- virtual void DPrint( const char *pMessage ) = 0;
-};
-
-#define FCVAR_NONE 0
-
-// Command to ConVars and ConCommands
-// ConVar Systems
-#define FCVAR_UNREGISTERED (1<<0) // If this is set, don't add to linked list, etc.
-#define FCVAR_DEVELOPMENTONLY (1<<1) // Hidden in released products. Flag is removed automatically if ALLOW_DEVELOPMENT_CVARS is defined.
-#define FCVAR_GAMEDLL (1<<2) // defined by the game DLL
-#define FCVAR_CLIENTDLL (1<<3) // defined by the client DLL
-#define FCVAR_HIDDEN (1<<4) // Hidden. Doesn't appear in find or autocomplete. Like DEVELOPMENTONLY, but can't be compiled out.
-
-// ConVar only
-#define FCVAR_PROTECTED (1<<5) // It's a server cvar, but we don't send the data since it's a password, etc. Sends 1 if it's not bland/zero, 0 otherwise as value
-#define FCVAR_SPONLY (1<<6) // This cvar cannot be changed by clients connected to a multiplayer server.
-#define FCVAR_ARCHIVE (1<<7) // set to cause it to be saved to vars.rc
-#define FCVAR_NOTIFY (1<<8) // notifies players when changed
-#define FCVAR_USERINFO (1<<9) // changes the client's info string
-#define FCVAR_CHEAT (1<<14) // Only useable in singleplayer / debug / multiplayer & sv_cheats
-
-#define FCVAR_PRINTABLEONLY (1<<10) // This cvar's string cannot contain unprintable characters ( e.g., used for player name etc ).
-#define FCVAR_UNLOGGED (1<<11) // If this is a FCVAR_SERVER, don't log changes to the log file / console if we are creating a log
-#define FCVAR_NEVER_AS_STRING (1<<12) // never try to print that cvar
-
-// It's a ConVar that's shared between the client and the server.
-// At signon, the values of all such ConVars are sent from the server to the client (skipped for local
-// client, of course )
-// If a change is requested it must come from the console (i.e., no remote client changes)
-// If a value is changed while a server is active, it's replicated to all connected clients
-#define FCVAR_REPLICATED (1<<13) // server setting enforced on clients, TODO rename to FCAR_SERVER at some time
-#define FCVAR_DEMO (1<<16) // record this cvar when starting a demo file
-#define FCVAR_DONTRECORD (1<<17) // don't record these command in demofiles
-#define FCVAR_RELOAD_MATERIALS (1<<20) // If this cvar changes, it forces a material reload
-#define FCVAR_RELOAD_TEXTURES (1<<21) // If this cvar changes, if forces a texture reload
-
-#define FCVAR_NOT_CONNECTED (1<<22) // cvar cannot be changed by a client that is connected to a server
-#define FCVAR_MATERIAL_SYSTEM_THREAD (1<<23) // Indicates this cvar is read from the material system thread
-#define FCVAR_ARCHIVE_XBOX (1<<24) // cvar written to config.cfg on the Xbox
-
-#define FCVAR_ACCESSIBLE_FROM_THREADS (1<<25) // used as a debugging tool necessary to check material system thread convars
-
-#define FCVAR_SERVER_CAN_EXECUTE (1<<28)// the server is allowed to execute this command on clients via ClientCommand/NET_StringCmd/CBaseClientState::ProcessStringCmd.
-#define FCVAR_SERVER_CANNOT_QUERY (1<<29)// If this is set, then the server is not allowed to query this cvar's value (via IServerPluginHelpers::StartQueryCvarValue).
-#define FCVAR_CLIENTCMD_CAN_EXECUTE (1<<30) // IVEngineClient::ClientCmd is allowed to execute this command.
-
-
-class cvar_t {
-public:
- void set_value( const char* value ) {
- using fn = void( __thiscall* )( void*, const char* );
- return util::get_vfunc< fn >( this, 14 )( this, value );
- }
-
- void set_value( float value ) {
- using fn = void( __thiscall* )( void*, float );
- return util::get_vfunc< fn >( this, 15 )( this, value );
- }
-
- void set_value( int value ) {
- using fn = void( __thiscall* )( void*, int );
- return util::get_vfunc< fn >( this, 16 )( this, value );
- }
-
- char* get_name( ) {
- using fn = char*( __thiscall* )( void* );
- return util::get_vfunc< fn >( this, 5 )( this );
- }
-
- char* get_default( ) {
- return m_default;
- }
-
- const char* get_string( ) {
- return m_string;
- }
-
- float get_float( ) {
- //return call_vfunc< float( __thiscall* )( void* ) >( this, 12 )( this );
- return m_parent->m_flvalue;
- } //crash no idea why
-
- int get_int( ) {
- using fn = int( __thiscall* )( void* );
- return util::get_vfunc< fn >( this, 13 )( this );
- }
-
-private:
- char pad_0x0000[ 0x4 ]; //0x0000
-public:
- cvar_t * m_next; //0x0004
- __int32 m_registered; //0x0008
- char* m_name; //0x000C
- char* m_help_str; //0x0010
- __int32 m_flags; //0x0014
-private:
- char pad_0x0018[ 0x4 ]; //0x0018
-public:
- cvar_t * m_parent; //0x001C
- char* m_default; //0x0020
- char* m_string; //0x0024
- __int32 m_str_len; //0x0028
- float m_flvalue; //0x002C
- __int32 m_nvalue; //0x0030
- __int32 m_has_min; //0x0034
- float m_min; //0x0038
- __int32 m_hax_max; //0x003C
- float m_max; //0x0040
- void* m_change_callback; //0x0044
-};//Size=0x0048
-
-class ICVar : public IAppSystem
-{
-public:
- // Allocate a unique DLL identifier
- virtual CVarDLLIdentifier_t AllocateDLLIdentifier( ) = 0;
-
- // Register, unregister commands
- virtual void RegisterConCommand( ConCommandBase *pCommandBase ) = 0;
- virtual void UnregisterConCommand( ConCommandBase *pCommandBase ) = 0;
- virtual void UnregisterConCommands( CVarDLLIdentifier_t id ) = 0;
-
- // If there is a +<varname> <value> on the command line, this returns the value.
- // Otherwise, it returns NULL.
- virtual const char* GetCommandLineValue( const char *pVariableName ) = 0;
-
- // Try to find the cvar pointer by name
- virtual ConCommandBase* FindCommandBase( const char *name ) = 0;
- virtual const ConCommandBase* FindCommandBase( const char *name ) const = 0;
- virtual cvar_t *FindVar( const char *var_name ) = 0;
- virtual const cvar_t *FindVar( const char *var_name ) const = 0;
- virtual ConCommand *FindCommand( const char *name ) = 0;
- virtual const ConCommand *FindCommand( const char *name ) const = 0;
-
-
-
- // Install a global change callback (to be called when any convar changes)
- virtual void InstallGlobalChangeCallback( FnChangeCallback_t callback ) = 0;
- virtual void RemoveGlobalChangeCallback( FnChangeCallback_t callback ) = 0;
- virtual void CallGlobalChangeCallbacks( cvar_t *var, const char *pOldString, float flOldValue ) = 0;
-
- // Install a console printer
- virtual void InstallConsoleDisplayFunc( IConsoleDisplayFunc* pDisplayFunc ) = 0;
- virtual void RemoveConsoleDisplayFunc( IConsoleDisplayFunc* pDisplayFunc ) = 0;
- virtual void ConsoleColorPrintf( const clr_t& clr, const char *pFormat, ... ) const = 0;
- virtual void ConsolePrintf( const char *pFormat, ... ) const = 0;
- virtual void ConsoleDPrintf( const char *pFormat, ... ) const = 0;
-
- // Reverts cvars which contain a specific flag
- virtual void RevertFlaggedConVars( int nFlag ) = 0;
-
- // Method allowing the engine ICvarQuery interface to take over
- // A little hacky, owing to the fact the engine is loaded
- // well after ICVar, so we can't use the standard connect pattern
- virtual void InstallCVarQuery( ICvarQuery *pQuery ) = 0;
-
-
- virtual void SetMaxSplitScreenSlots( int nSlots ) = 0;
- virtual int GetMaxSplitScreenSlots( ) const = 0;
-
- virtual void AddSplitScreenConVars( ) = 0;
- virtual void RemoveSplitScreenConVars( CVarDLLIdentifier_t id ) = 0;
-
- virtual int GetConsoleDisplayFuncCount( ) const = 0;
- virtual void GetConsoleText( int nDisplayFuncIndex, char *pchText, size_t bufSize ) const = 0;
-
- // Utilities for convars accessed by the material system thread
- virtual bool IsMaterialThreadSetAllowed( ) const = 0;
- virtual void QueueMaterialThreadSetValue( cvar_t *pConVar, const char *pValue ) = 0;
- virtual void QueueMaterialThreadSetValue( cvar_t *pConVar, int nValue ) = 0;
- virtual void QueueMaterialThreadSetValue( cvar_t *pConVar, float flValue ) = 0;
- virtual bool HasQueuedMaterialThreadConVarSets( ) const = 0;
- virtual int ProcessQueuedMaterialThreadConVarSets( ) = 0;
-
- class ICVarIteratorInternal
- {
- public:
- virtual void SetFirst( ) = 0;
- virtual void Next( ) = 0;
- virtual bool IsValid( ) = 0;
- virtual ConCommandBase *Get( ) = 0;
- };
-
- virtual ICVarIteratorInternal* FactoryInternalIterator( ) = 0;
-};
\ No newline at end of file diff --git a/tf2/IEngineTrace.h b/tf2/IEngineTrace.h deleted file mode 100644 index 7fb317d..0000000 --- a/tf2/IEngineTrace.h +++ /dev/null @@ -1,268 +0,0 @@ -#pragma once
-#include "vector.hpp"
-#include "VFunc.h"
-
-enum trace_type_t {
- TRACE_EVERYTHING = 0,
- TRACE_WORLD_ONLY,
- TRACE_ENTITIES_ONLY,
- TRACE_EVERYTHING_FILTER_PROPS,
-};
-
-enum SurfaceFlags_t {
- DISPSURF_FLAG_SURFACE = ( 1 << 0 ),
- DISPSURF_FLAG_WALKABLE = ( 1 << 1 ),
- DISPSURF_FLAG_BUILDABLE = ( 1 << 2 ),
- DISPSURF_FLAG_SURFPROP1 = ( 1 << 3 ),
- DISPSURF_FLAG_SURFPROP2 = ( 1 << 4 ),
-};
-
-struct csurface_t {
- const char *name;
- short surfaceProps;
- unsigned short flags;
-};
-
-struct cplane_t {
- vec3_t normal;
- float dist;
- byte type;
- byte signbits;
- byte pad[ 2 ];
-};
-
-class ITraceFilter {
-public:
- virtual bool ShouldHitEntity( void *pEntity, int contentsMask ) = 0;
- virtual trace_type_t GetTraceType( ) const = 0;
-};
-
-class CTraceFilter : public ITraceFilter {
-public:
- bool ShouldHitEntity( void* pEntityHandle, int contentsMask ) {
- return !( pEntityHandle == pSkip );
- }
- virtual trace_type_t GetTraceType( ) const {
- return TRACE_EVERYTHING;
- }
-
- void* pSkip;
-};
-
-class CTraceFilterWorldAndPropsOnly : public ITraceFilter {
-public:
- bool ShouldHitEntity( void* pEntityHandle, int contentsMask ) override {
- return false;
- }
-
- trace_type_t GetTraceType( ) const override {
- return TRACE_EVERYTHING;
- }
-};
-
-class CTraceFilterSkipTwoEntities : public ITraceFilter {
-public:
- CTraceFilterSkipTwoEntities( void* pPassEnt1, void* pPassEnt2 )
- {
- passentity1 = pPassEnt1;
- passentity2 = pPassEnt2;
- }
-
- virtual bool ShouldHitEntity( void* pEntityHandle, int contentsMask ) {
- return !( pEntityHandle == passentity1 || pEntityHandle == passentity2 );
- }
-
- virtual trace_type_t GetTraceType( ) const {
- return TRACE_EVERYTHING;
- }
-
- void* passentity1;
- void* passentity2;
-};
-
-class __declspec( align( 16 ) )VectorAligned : public vec3_t {
-public:
- VectorAligned& operator=( const vec3_t &vOther ) {
- x = vOther.x;
- y = vOther.y;
- z = vOther.z;
- return *this;
- }
-
- VectorAligned& operator=( const float &other ) {
- *this = { other, other, other };
- return *this;
- }
- float w;
-};
-
-struct Ray_t {
- VectorAligned m_Start;
- VectorAligned m_Delta;
- VectorAligned m_StartOffset;
- VectorAligned m_Extents;
-
- bool m_IsRay;
- bool m_IsSwept;
-
- void Init( vec3_t& start, vec3_t& end ) {
- m_Delta = end - start;
-
- m_IsSwept = ( m_Delta.lengthsqr( ) != 0 );
-
- m_Extents = 0.f;
- m_IsRay = true;
-
- m_StartOffset = 0.f;
- m_Start = start;
- }
-
- void Init( vec3_t& start, vec3_t& end, vec3_t& mins, vec3_t& maxs ) {
- m_Delta = end - start;
-
- m_IsSwept = ( m_Delta.lengthsqr( ) != 0 );
-
- m_Extents = maxs - mins;
- m_Extents *= 0.5f;
- m_IsRay = ( m_Extents.lengthsqr( ) < 1e-6 );
-
- m_StartOffset = mins + maxs;
- m_StartOffset *= 0.5f;
- m_Start = start - m_StartOffset;
- m_StartOffset *= -1.0f;
- }
-};
-
-class CBaseTrace {
-public:
- bool IsDispSurface( void ) { return ( ( dispFlags & DISPSURF_FLAG_SURFACE ) != 0 ); } //not in csgo
- bool IsDispSurfaceWalkable( void ) { return ( ( dispFlags & DISPSURF_FLAG_WALKABLE ) != 0 ); }
- bool IsDispSurfaceBuildable( void ) { return ( ( dispFlags & DISPSURF_FLAG_BUILDABLE ) != 0 ); }
- bool IsDispSurfaceProp1( void ) { return ( ( dispFlags & DISPSURF_FLAG_SURFPROP1 ) != 0 ); }
- bool IsDispSurfaceProp2( void ) { return ( ( dispFlags & DISPSURF_FLAG_SURFPROP2 ) != 0 ); }
-
-public:
- vec3_t startpos;
- vec3_t endpos;
- cplane_t plane;
-
- float fraction;
-
- int contents;
- unsigned short dispFlags;
-
- bool allsolid;
- bool startsolid;
-
- CBaseTrace( ) {}
-
-private:
- CBaseTrace( const CBaseTrace& vOther );
-};
-
-class CGameTrace : public CBaseTrace {
-public:
- bool DidHitWorld( ) const;
-
- bool DidHitNonWorldEntity( ) const;
-
- int GetEntityIndex( ) const;
-
- bool DidHit( ) const {
- return fraction < 1 || allsolid || startsolid;
- }
-
-public:
- float fractionleftsolid;
- csurface_t surface;
-
- int hitgroup;
-
- short physicsbone;
-
- IClientEntity* m_pEnt;
- int hitbox;
-
- CGameTrace( ) {}
- CGameTrace( const CGameTrace& vOther );
-};
-
-typedef CGameTrace trace_t;
-
-class IEngineTrace {
-public:
- void clip_ray_to_ent( const Ray_t& ray, unsigned int fMask, IClientEntity* pEnt, trace_t* pTrace ) {
- return call_vfunc< void( __thiscall* )( void*, const Ray_t&, unsigned int, IClientEntity*, trace_t* ) >( this, 2 )( this, ray, fMask, pEnt, pTrace );
- }
-
- void trace_ray( const Ray_t& ray, unsigned int fMask, ITraceFilter* pTraceFilter, trace_t* pTrace ) {
- return call_vfunc< void( __thiscall* )( void*, const Ray_t&, unsigned int, ITraceFilter*, trace_t* ) >( this, 4 )( this, ray, fMask, pTraceFilter, pTrace );
- }
-};
-
-
-#define CONTENTS_EMPTY 0 /**< No contents. */
-#define CONTENTS_SOLID 0x1 /**< an eye is never valid in a solid . */
-#define CONTENTS_WINDOW 0x2 /**< translucent, but not watery (glass). */
-#define CONTENTS_AUX 0x4
-#define CONTENTS_GRATE 0x8 /**< alpha-tested "grate" textures. Bullets/sight pass through, but solids don't. */
-#define CONTENTS_SLIME 0x10
-#define CONTENTS_WATER 0x20
-#define CONTENTS_MIST 0x40
-#define CONTENTS_OPAQUE 0x80 /**< things that cannot be seen through (may be non-solid though). */
-#define LAST_VISIBLE_CONTENTS 0x80
-#define ALL_VISIBLE_CONTENTS (LAST_VISIBLE_CONTENTS | (LAST_VISIBLE_CONTENTS-1))
-#define CONTENTS_TESTFOGVOLUME 0x100
-#define CONTENTS_UNUSED5 0x200
-#define CONTENTS_UNUSED6 0x4000
-#define CONTENTS_TEAM1 0x800 /**< per team contents used to differentiate collisions. */
-#define CONTENTS_TEAM2 0x1000 /**< between players and objects on different teams. */
-#define CONTENTS_IGNORE_NODRAW_OPAQUE 0x2000 /**< ignore CONTENTS_OPAQUE on surfaces that have SURF_NODRAW. */
-#define CONTENTS_MOVEABLE 0x4000 /**< hits entities which are MOVETYPE_PUSH (doors, plats, etc) */
-#define CONTENTS_AREAPORTAL 0x8000 /**< remaining contents are non-visible, and don't eat brushes. */
-#define CONTENTS_PLAYERCLIP 0x10000
-#define CONTENTS_MONSTERCLIP 0x20000
-
-/**
-* @section currents can be added to any other contents, and may be mixed
-*/
-#define CONTENTS_CURRENT_0 0x40000
-#define CONTENTS_CURRENT_90 0x80000
-#define CONTENTS_CURRENT_180 0x100000
-#define CONTENTS_CURRENT_270 0x200000
-#define CONTENTS_CURRENT_UP 0x400000
-#define CONTENTS_CURRENT_DOWN 0x800000
-
-/**
-* @endsection
-*/
-
-#define CONTENTS_ORIGIN 0x1000000 /**< removed before bsping an entity. */
-#define CONTENTS_MONSTER 0x2000000 /**< should never be on a brush, only in game. */
-#define CONTENTS_DEBRIS 0x4000000
-#define CONTENTS_DETAIL 0x8000000 /**< brushes to be added after vis leafs. */
-#define CONTENTS_TRANSLUCENT 0x10000000 /**< auto set if any surface has trans. */
-#define CONTENTS_LADDER 0x20000000
-#define CONTENTS_HITBOX 0x40000000 /**< use accurate hitboxes on trace. */
-
-/**
-* @section Trace masks.
-*/
-#define MASK_ALL (0xFFFFFFFF)
-#define MASK_SOLID (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_MONSTER|CONTENTS_GRATE) /**< everything that is normally solid */
-#define MASK_PLAYERSOLID (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_PLAYERCLIP|CONTENTS_WINDOW|CONTENTS_MONSTER|CONTENTS_GRATE) /**< everything that blocks player movement */
-#define MASK_NPCSOLID (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_MONSTERCLIP|CONTENTS_WINDOW|CONTENTS_MONSTER|CONTENTS_GRATE) /**< blocks npc movement */
-#define MASK_WATER (CONTENTS_WATER|CONTENTS_MOVEABLE|CONTENTS_SLIME) /**< water physics in these contents */
-#define MASK_OPAQUE (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_OPAQUE) /**< everything that blocks line of sight for AI, lighting, etc */
-#define MASK_OPAQUE_AND_NPCS (MASK_OPAQUE|CONTENTS_MONSTER) /**< everything that blocks line of sight for AI, lighting, etc, but with monsters added. */
-#define MASK_VISIBLE (MASK_OPAQUE|CONTENTS_IGNORE_NODRAW_OPAQUE) /**< everything that blocks line of sight for players */
-#define MASK_VISIBLE_AND_NPCS (MASK_OPAQUE_AND_NPCS|CONTENTS_IGNORE_NODRAW_OPAQUE) /**< everything that blocks line of sight for players, but with monsters added. */
-#define MASK_SHOT (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_MONSTER|CONTENTS_WINDOW|CONTENTS_DEBRIS|CONTENTS_HITBOX) /**< bullets see these as solid */
-#define MASK_SHOT_HULL (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_MONSTER|CONTENTS_WINDOW|CONTENTS_DEBRIS|CONTENTS_GRATE) /**< non-raycasted weapons see this as solid (includes grates) */
-#define MASK_SHOT_PORTAL (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW) /**< hits solids (not grates) and passes through everything else */
-#define MASK_SOLID_BRUSHONLY (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_GRATE) /**< everything normally solid, except monsters (world+brush only) */
-#define MASK_PLAYERSOLID_BRUSHONLY (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_PLAYERCLIP|CONTENTS_GRATE) /**< everything normally solid for player movement, except monsters (world+brush only) */
-#define MASK_NPCSOLID_BRUSHONLY (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_MONSTERCLIP|CONTENTS_GRATE) /**< everything normally solid for npc movement, except monsters (world+brush only) */
-#define MASK_NPCWORLDSTATIC (CONTENTS_SOLID|CONTENTS_WINDOW|CONTENTS_MONSTERCLIP|CONTENTS_GRATE) /**< just the world, used for route rebuilding */
-#define MASK_SPLITAREAPORTAL (CONTENTS_WATER|CONTENTS_SLIME) /**< These are things that can split areaportals */
-#define MASK_AIM ( 0x200400B | CONTENTS_HITBOX ) //this fixes the aimbot not shooting through shit like invis gates
diff --git a/tf2/IEngineVGui.h b/tf2/IEngineVGui.h deleted file mode 100644 index 091c565..0000000 --- a/tf2/IEngineVGui.h +++ /dev/null @@ -1,26 +0,0 @@ -#pragma once
-
-enum VGuiPanel_t {
- PANEL_ROOT = 0,
- PANEL_GAMEUIDLL,
- PANEL_CLIENTDLL,
- PANEL_TOOLS,
- PANEL_INGAMESCREENS,
- PANEL_GAMEDLL,
- PANEL_CLIENTDLL_TOOLS
-};
-
-enum PaintMode_t {
- PAINT_UIPANELS = ( 1 << 0 ),
- PAINT_INGAMEPANELS = ( 1 << 1 ),
- PAINT_CURSOR = ( 1 << 2 ), // software cursor, if appropriate
-};
-
-class IEngineVGui {
-public:
- virtual ~IEngineVGui( void ) { }
-
- virtual unsigned int GetPanel( VGuiPanel_t type ) = 0;
-
- virtual bool IsGameUIVisible( ) = 0;
-};
\ No newline at end of file diff --git a/tf2/IGameEventManager.h b/tf2/IGameEventManager.h deleted file mode 100644 index f2e7c25..0000000 --- a/tf2/IGameEventManager.h +++ /dev/null @@ -1,77 +0,0 @@ -#pragma once
-#include "util.hpp"
-
-class IGameEvent
-{
-public:
- const char* GetName( ) {
- return util::get_vfunc< 1, const char* >( this );
- }
-
- int GetInt( const char* szKeyName, int nDefault = 0 ) {
- return util::get_vfunc< 6, int >( this, szKeyName, nDefault );
- }
-
- float GetFloat( const char* name, float default_ = 0 ) {
- return util::get_vfunc< 8, float >( this, name, default_ );
- }
-
- const char* GetString( const char* szKeyName ) {
- return util::get_vfunc< 9, const char* >( this, szKeyName, 0 );
- }
-
- void SetString( const char* szKeyName, const char* szValue ) {
- return util::get_vfunc< 16, void >( this, szKeyName, szValue );
- }
-};
-
-class IGameEventListener2 {
-public:
- virtual ~IGameEventListener2( void ) {};
-
- // FireEvent is called by EventManager if event just occured
- // KeyValue memory will be freed by manager if not needed anymore
- virtual void FireGameEvent( IGameEvent* event ) = 0;
-
- virtual int GetEventDebugID( void ) = 0;
-};
-
-class IGameEventManager2 {
-public:
- virtual ~IGameEventManager2( void ) {};
-
- // load game event descriptions from a file eg "resource\gameevents.res"
- virtual int LoadEventsFromFile( const char* filename ) = 0;
-
- // removes all and anything
- virtual void Reset( ) = 0;
-
- // adds a listener for a particular event
- virtual bool AddListener( IGameEventListener2* listener, const char* name, bool bServerSide ) = 0;
-
- // returns true if this listener is listens to given event
- virtual bool FindListener( IGameEventListener2* listener, const char* name ) = 0;
-
- // removes a listener
- virtual void RemoveListener( IGameEventListener2* listener ) = 0;
-
- // create an event by name, but doesn't fire it. returns NULL is event is not
- // known or no listener is registered for it. bForce forces the creation even if no listener is active
- virtual IGameEvent* CreateEvent( const char* name, bool bForce = false, int* pCookie = nullptr ) = 0;
-
- // fires a server event created earlier, if bDontBroadcast is set, event is not send to clients
- virtual bool FireEvent( IGameEvent* event, bool bDontBroadcast = false ) = 0;
-
- // fires an event for the local client only, should be used only by client code
- virtual bool FireEventClientSide( IGameEvent* event ) = 0;
-
- // create a new copy of this event, must be free later
- virtual IGameEvent* DuplicateEvent( IGameEvent* event ) = 0;
-
- // if an event was created but not fired for some reason, it has to bee freed, same UnserializeEvent
- virtual void FreeEvent( IGameEvent* event ) = 0;
-
- // write/read event to/from bitbuffer
- virtual bool SerializeEvent( IGameEvent* event, int* buf ) = 0;
- virtual IGameEvent* UnserializeEvent( void* buf ) = 0; // create new KeyValues, must be deleted
-};
\ No newline at end of file diff --git a/tf2/IGameMovement.h b/tf2/IGameMovement.h deleted file mode 100644 index 26b5244..0000000 --- a/tf2/IGameMovement.h +++ /dev/null @@ -1,118 +0,0 @@ -#pragma once
-#pragma once
-
-#include "vector.hpp"
-
-using CBaseEntity = uintptr_t;
-class CUserCmd;
-
-typedef int EntityHandle_t, soundlevel_t;
-class CGameTrace;
-
-typedef CGameTrace trace_t;
-
-#define MAX_CLIMB_SPEED 200.0
-
-class CMoveData
-{
-public:
- bool m_bFirstRunOfFunctions : 1;
- bool m_bGameCodeMovedPlayer : 1;
-
- EntityHandle_t m_nPlayerHandle;
-
- int m_nImpulseCommand;
- vec3_t m_vecViewAngles;
- vec3_t m_vecAbsViewAngles;
- int m_nButtons;
- int m_nOldButtons;
- float m_flForwardMove;
- float m_flSideMove;
- float m_flUpMove;
-
- float m_flMaxSpeed;
- float m_flClientMaxSpeed;
-
- vec3_t m_vecVelocity;
- vec3_t m_vecAngles;
- vec3_t m_vecOldAngles;
- float m_outStepHeight;
- vec3_t m_outWishVel;
- vec3_t m_outJumpVel;
-
- vec3_t m_vecConstraintCenter;
- float m_flConstraintRadius;
- float m_flConstraintWidth;
- float m_flConstraintSpeedFactor;
-
- vec3_t m_vecAbsOrigin;
-};
-
-class IGameMovement
-{
-public:
- virtual ~IGameMovement( void ) {}
- virtual void ProcessMovement( CBaseEntity *pPlayer, CMoveData *pMove ) = 0;
- virtual void StartTrackPredictionErrors( CBaseEntity *pPlayer ) = 0;
- virtual void FinishTrackPredictionErrors( CBaseEntity *pPlayer ) = 0;
- virtual void DiffPrint( char const *fmt, ... ) = 0;
- virtual vec3_t GetPlayerMins( bool ducked ) const = 0;
- virtual vec3_t GetPlayerMaxs( bool ducked ) const = 0;
- virtual vec3_t GetPlayerViewOffset( bool ducked ) const = 0;
-};
-
-class IMoveHelper
-{
-public:
- virtual char const* GetName( EntityHandle_t handle ) const = 0;
- virtual void ResetTouchList( void ) = 0;
- virtual bool AddToTouched( const CGameTrace& tr, const vec3_t& impactvelocity ) = 0;
- virtual void ProcessImpacts( void ) = 0;
- virtual void Con_NPrintf( int idx, char const* fmt, ... ) = 0;
- virtual void StartSound( const vec3_t& origin, int channel, char const* sample, float volume, soundlevel_t soundlevel, int fFlags, int pitch ) = 0;
- virtual void StartSound( const vec3_t& origin, const char *soundname ) = 0;
- virtual void PlaybackEventFull( int flags, int clientindex, unsigned short eventindex, float delay, vec3_t& origin, vec3_t& angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2 ) = 0;
- virtual bool PlayerFallingDamage( void ) = 0;
- virtual void PlayerSetAnimation( int playerAnim ) = 0;
-
- virtual void *GetSurfaceProps( void ) = 0;
-
- virtual bool IsWorldEntity( const uintptr_t &handle ) = 0;
-
-protected:
- virtual ~IMoveHelper( ) {}
-};
-
-class IPrediction
-{
-public:
- virtual ~IPrediction( void ) {};
-
- virtual void Init( void ) = 0;
- virtual void Shutdown( void ) = 0;
-
- // Run prediction
- virtual void Update
- (
- int startframe, // World update ( un-modded ) most recently received
- bool validframe, // Is frame data valid
- int incoming_acknowledged, // Last command acknowledged to have been run by server (un-modded)
- int outgoing_command // Last command (most recent) sent to server (un-modded)
- ) = 0;
-
- // We are about to get a network update from the server. We know the update #, so we can pull any
- // data purely predicted on the client side and transfer it to the new from data state.
- virtual void PreEntityPacketReceived( int commands_acknowledged, int current_world_update_packet ) = 0;
- virtual void PostEntityPacketReceived( void ) = 0;
- virtual void PostNetworkDataReceived( int commands_acknowledged ) = 0;
-
- virtual void OnReceivedUncompressedPacket( void ) = 0;
-
- // The engine needs to be able to access a few predicted values
- virtual void GetViewOrigin( vec3_t& org ) = 0;
- virtual void SetViewOrigin( vec3_t& org ) = 0;
- virtual void GetViewAngles( vec3_t& ang ) = 0;
- virtual void SetViewAngles( vec3_t& ang ) = 0;
- virtual void GetLocalViewAngles( vec3_t& ang ) = 0;
- virtual void SetLocalViewAngles( vec3_t& ang ) = 0;
-};
\ No newline at end of file diff --git a/tf2/IInputSystem.h b/tf2/IInputSystem.h deleted file mode 100644 index 10f8168..0000000 --- a/tf2/IInputSystem.h +++ /dev/null @@ -1,163 +0,0 @@ -#pragma once
-#include "VFunc.h"
-#include "IAppSystem.h"
-#include "ButtonCode_t.h"
-
-class IInputSystem : public IAppSystem
-{
-public:
- // Attach, detach input system from a particular window
- // This window should be the root window for the application
- // Only 1 window should be attached at any given time.
- virtual void AttachToWindow( void* hWnd ) = 0;
- virtual void DetachFromWindow( ) = 0;
-
- // Enables/disables input. PollInputState will not update current
- // button/analog states when it is called if the system is disabled.
- virtual void EnableInput( bool bEnable ) = 0;
-
- // Enables/disables the windows message pump. PollInputState will not
- // Peek/Dispatch messages if this is disabled
- virtual void EnableMessagePump( bool bEnable ) = 0;
-
- // Polls the current input state
- virtual void PollInputState( ) = 0;
-
- // Gets the time of the last polling in ms
- virtual int GetPollTick( ) const = 0;
-
- // Is a button down? "Buttons" are binary-state input devices (mouse buttons, keyboard keys)
- virtual bool IsButtonDown( ButtonCode_t code ) const = 0;
-
- // Returns the tick at which the button was pressed and released
- virtual int GetButtonPressedTick( ButtonCode_t code ) const = 0;
- virtual int GetButtonReleasedTick( ButtonCode_t code ) const = 0;
-
- // Gets the value of an analog input device this frame
- // Includes joysticks, mousewheel, mouse
- virtual int GetAnalogValue( AnalogCode_t code ) const = 0;
-
- // Gets the change in a particular analog input device this frame
- // Includes joysticks, mousewheel, mouse
- virtual int GetAnalogDelta( AnalogCode_t code ) const = 0;
-
- // Returns the input events since the last poll
- virtual int GetEventCount( ) const = 0;
- virtual const InputEvent_t* GetEventData( ) const = 0;
-
-private:
- //22 CInputSystem::MotionControllerActive(void)const
- virtual void __pad22( ) = 0;
- //23 CInputSystem::GetMotionControllerOrientation(void)const
- virtual void __pad23( ) = 0;
- //24 CInputSystem::GetMotionControllerPosX(void)const
- virtual void __pad24( ) = 0;
- //25 CInputSystem::GetMotionControllerPosY(void)const
- virtual void __pad25( ) = 0;
- //26 CInputSystem::GetMotionControllerDeviceStatus(void)const
- virtual void __pad26( ) = 0;
- //27 CInputSystem::GetMotionControllerDeviceStatusFlags(void)const
- virtual void __pad27( ) = 0;
- //28 CInputSystem::SetMotionControllerDeviceStatus(int)
- virtual void __pad28( ) = 0;
- //29 CInputSystem::SetMotionControllerCalibrationInvalid(void)
- virtual void __pad29( ) = 0;
- //30 CInputSystem::StepMotionControllerCalibration(void)
- virtual void __pad30( ) = 0;
- //31 CInputSystem::ResetMotionControllerScreenCalibration(void)
- virtual void __pad31( ) = 0;
-
-public:
- // Posts a user-defined event into the event queue; this is expected
- // to be called in overridden wndprocs connected to the root panel.
- virtual void PostUserEvent( const InputEvent_t &event ) = 0;
-
- // Returns the number of joysticks
- virtual int GetJoystickCount( ) const = 0;
-
- // Enable/disable joystick, it has perf costs
- virtual void EnableJoystickInput( int nJoystick, bool bEnable ) = 0;
-
- // Enable/disable diagonal joystick POV (simultaneous POV buttons down)
- virtual void EnableJoystickDiagonalPOV( int nJoystick, bool bEnable ) = 0;
-
- // Sample the joystick and append events to the input queue
- virtual void SampleDevices( ) = 0;
-
- // FIXME: Currently force-feedback is only supported on the Xbox 360
- virtual void SetRumble( float fLeftMotor, float fRightMotor, int userId = -1 ) = 0;
- virtual void StopRumble( ) = 0;
-
- // Resets the input state
- virtual void ResetInputState( ) = 0;
-
- // Convert back + forth between ButtonCode/AnalogCode + strings
- virtual const char *ButtonCodeToString( ButtonCode_t code ) const = 0;
- virtual const char *AnalogCodeToString( AnalogCode_t code ) const = 0;
- virtual ButtonCode_t StringToButtonCode( const char *pString ) const = 0;
- virtual AnalogCode_t StringToAnalogCode( const char *pString ) const = 0;
-
- // Sleeps until input happens. Pass a negative number to sleep infinitely
- virtual void SleepUntilInput( int nMaxSleepTimeMS = -1 ) = 0;
-
- // Convert back + forth between virtual codes + button codes
- // FIXME: This is a temporary piece of code
- virtual ButtonCode_t VirtualKeyToButtonCode( int nVirtualKey ) const = 0;
- virtual int ButtonCodeToVirtualKey( ButtonCode_t code ) const = 0;
- virtual ButtonCode_t ScanCodeToButtonCode( int lParam ) const = 0;
-
- // How many times have we called PollInputState?
- virtual int GetPollCount( ) const = 0;
-
- // Sets the cursor position
- virtual void SetCursorPosition( int x, int y ) = 0;
-
- // Tells the input system to generate UI-related events, defined
- // in inputsystem/inputenums.h (see IE_FirstUIEvent)
- // We could have multiple clients that care about UI-related events
- // so we refcount the clients with an Add/Remove strategy. If there
- // are no interested clients, the UI events are not generated
- virtual void AddUIEventListener( ) = 0;
- virtual void RemoveUIEventListener( ) = 0;
-
- // Returns the currently attached window
- virtual PlatWindow_t GetAttachedWindow( ) const = 0;
-
- // Creates a cursor using one of the well-known cursor icons
- virtual InputCursorHandle_t GetStandardCursor( InputStandardCursor_t id ) = 0;
-
- // Loads a cursor defined in a file
- virtual InputCursorHandle_t LoadCursorFromFile( const char *pFileName, const char *pPathID = NULL ) = 0;
-
- // Sets the cursor icon
- virtual void SetCursorIcon( InputCursorHandle_t hCursor ) = 0;
-
- // Gets the cursor position
- virtual void GetCursorPosition( int *pX, int *pY ) = 0;
-
- // Mouse capture
- virtual void EnableMouseCapture( PlatWindow_t hWnd ) = 0;
- virtual void DisableMouseCapture( ) = 0;
-
- virtual void SetMouseCursorVisible( bool bVisible ) = 0;
-
- virtual void DisableHardwareCursor( ) = 0;
- virtual void EnableHardwareCursor( ) = 0;
- virtual void ResetCursorIcon( ) = 0;
- virtual bool GetRawMouseAccumulators( int& accumX, int& accumY ) = 0;
-
- /*64 CInputSystem::GetConnectedInputDevices(void)
- 65 CInputSystem::IsInputDeviceConnected(InputDevice_t)
- 66 CInputSystem::SetInputDeviceConnected(InputDevice_t,bool)
- 67 CInputSystem::IsOnlySingleDeviceConnected(void)
- 68 CInputSystem::GetCurrentInputDevice(void)
- 69 CInputSystem::IsDeviceReadingInput(InputDevice_t)const
- 70 CInputSystem::SetCurrentInputDevice(InputDevice_t)
- 71 CInputSystem::ResetCurrentInputDevice(void)
- 72 CInputSystem::SampleInputToFindCurrentDevice(bool)
- 73 CInputSystem::IsSamplingForCurrentDevice(void)
- 74 CInputSystem::IsSteamControllerActive(void)const
- 75 CInputSystem::SetSteamControllerMode(char const*,void const*)
- 76 CInputSystem::~CInputSystem()
- 77 CInputSystem::~CInputSystem()*/
-};
\ No newline at end of file diff --git a/tf2/IMaterialSystem.hpp b/tf2/IMaterialSystem.hpp deleted file mode 100644 index a8a6a9e..0000000 --- a/tf2/IMaterialSystem.hpp +++ /dev/null @@ -1,222 +0,0 @@ -#pragma once
-#include "util.hpp"
-#include "ISurface.h"
-
-using MaterialHandle_t = unsigned short;
-
-enum MaterialVarFlags_t {
- MATERIAL_VAR_DEBUG = 1 << 0,
- MATERIAL_VAR_NO_DEBUG_OVERRIDE = 1 << 1,
- MATERIAL_VAR_NO_DRAW = 1 << 2,
- MATERIAL_VAR_USE_IN_FILLRATE_MODE = 1 << 3,
- MATERIAL_VAR_VERTEXCOLOR = 1 << 4,
- MATERIAL_VAR_VERTEXALPHA = 1 << 5,
- MATERIAL_VAR_SELFILLUM = 1 << 6,
- MATERIAL_VAR_ADDITIVE = 1 << 7,
- MATERIAL_VAR_ALPHATEST = 1 << 8,
- MATERIAL_VAR_MULTIPASS = 1 << 9,
- MATERIAL_VAR_ZNEARER = 1 << 10,
- MATERIAL_VAR_MODEL = 1 << 11,
- MATERIAL_VAR_FLAT = 1 << 12,
- MATERIAL_VAR_NOCULL = 1 << 13,
- MATERIAL_VAR_NOFOG = 1 << 14,
- MATERIAL_VAR_IGNOREZ = 1 << 15,
- MATERIAL_VAR_DECAL = 1 << 16,
- MATERIAL_VAR_ENVMAPSPHERE = 1 << 17,
- MATERIAL_VAR_NOALPHAMOD = 1 << 18,
- MATERIAL_VAR_ENVMAPCAMERASPACE = 1 << 19,
- MATERIAL_VAR_BASEALPHAENVMAPMASK = 1 << 20,
- MATERIAL_VAR_TRANSLUCENT = 1 << 21,
- MATERIAL_VAR_NORMALMAPALPHAENVMAPMASK = 1 << 22,
- MATERIAL_VAR_NEEDS_SOFTWARE_SKINNING = 1 << 23,
- MATERIAL_VAR_OPAQUETEXTURE = 1 << 24,
- MATERIAL_VAR_ENVMAPMODE = 1 << 25,
- MATERIAL_VAR_SUPPRESS_DECALS = 1 << 26,
- MATERIAL_VAR_HALFLAMBERT = 1 << 27,
- MATERIAL_VAR_WIREFRAME = 1 << 28,
-};
-
-class ITexture {
-public:
- int GetActualWidth( ) {
- return util::get_vfunc< 3, int >( this );
- }
-
- int GetActualHeight( ) {
- return util::get_vfunc< 4, int >( this );
- }
-};
-
-struct MaterialVideoMode_t {
- int m_width;
- int m_height;
- int m_format;
- int m_hz;
-};
-
-struct IMaterialSystem_Config_t {
- MaterialVideoMode_t m_vid_mode;
- float m_monitor_gamma;
- float m_monitor_max;
- float m_monitor_min;
- float m_monitor_exp;
- bool m_gamma_enabled;
- bool m_triple_buffer;
- int m_aa_samples;
- int m_force_anisotropic_level;
- int m_skip_mip_levels;
- int m_dx_level;
- int m_flags;
- bool m_edit_mode;
- char m_proxy_test_mode;
- bool m_compressed_textures;
- bool m_filter_lightmaps;
- bool m_filter_textures;
- bool m_reverse_depth;
- bool m_buffer_primitives;
- bool m_draw_flat;
- bool m_measure_fillrate;
- bool m_visualize_fillrate;
- bool m_no_transperacy;
- bool m_software_lighting;
- bool m_allow_cheats;
- char m_show_mipmap;
- bool m_low_res;
- bool m_normal_mapping;
- bool m_mipmap_textures;
- char m_fullbright;
- bool m_fast_nobumd;
- bool m_supress_rendering;
- bool m_drawgray;
- bool m_show_specular;
- bool m_show_diffuse;
- int m_winsize_widthlimit;
- int m_winsize_heightlimit;
- int m_aa_quality;
- bool m_shadow_depth_texture;
- bool m_motion_blur;
- bool m_flashlight;
- bool m_paint_enabled;
- char pad[ 0xC ];
-};
-
-class IMaterial {
- char pad[ 0x1C ];
-public:
- int m_ref_count;
-
- auto GetName( ) {
- return util::get_vfunc< 0, const char* >( this );
- }
-
- auto GetTextureGroupName( ) {
- return util::get_vfunc< 1, const char* >( this );
- }
-
- void IncrementReferenceCount( ) {
- return util::get_vfunc< 12, void >( this );
- }
-
- void DecrementReferenceCount( ) {
- return util::get_vfunc< 13, void >( this );
- }
-
- void AlphaModulate( float alpha ) {
- return util::get_vfunc< 27, void >( this, alpha );
- }
-
- void ColorModulate( float r, float g, float b ) {
- return util::get_vfunc< 28, void >( this, r, g, b );
- }
-
- void SetMaterialVarFlag( MaterialVarFlags_t flag, bool on ) {
- return util::get_vfunc< 29, void >( this, flag, on );
- }
-
- bool GetMaterialVarFlag( MaterialVarFlags_t flag ) {
- return util::get_vfunc< 30, bool >( this, flag );
- }
-
- auto GetAlphaModulation( ) {
- return util::get_vfunc< 44, float >( this );
- }
-
- void GetColorModulate( float* r, float* g, float* b ) {
- return util::get_vfunc< 45, void >( this, r, g, b );
- }
-
- void Refresh( ) {
- return util::get_vfunc< 37, void >( this );
- }
-};
-
-class IMaterialSystem
-{
-public:
- enum RenderTargetSizeMode_t {
- RT_SIZE_NO_CHANGE = 0, // Only allowed for render targets that don't want a depth buffer
- // (because if they have a depth buffer, the render target must be less than or equal to the size of the framebuffer).
- RT_SIZE_DEFAULT = 1, // Don't play with the specified width and height other than making sure it fits in the framebuffer.
- RT_SIZE_PICMIP = 2, // Apply picmip to the render target's width and height.
- RT_SIZE_HDR = 3, // frame_buffer_width / 4
- RT_SIZE_FULL_FRAME_BUFFER = 4, // Same size as frame buffer, or next lower power of 2 if we can't do that.
- RT_SIZE_OFFSCREEN = 5, // Target of specified size, don't mess with dimensions
- RT_SIZE_FULL_FRAME_BUFFER_ROUNDED_UP = 6 // Same size as the frame buffer, rounded up if necessary for systems that can't do non-power of two textures.
- };
-
- enum MaterialRenderTargetDepth_t {
- MATERIAL_RT_DEPTH_SHARED = 0x0,
- MATERIAL_RT_DEPTH_SEPARATE = 0x1,
- MATERIAL_RT_DEPTH_NONE = 0x2,
- MATERIAL_RT_DEPTH_ONLY = 0x3,
- };
-
- ImageFormat GetBackBufferFormat( ) {
- return util::get_vfunc< 36, ImageFormat >( this );
- }
-
- IMaterial* CreateMaterial( const char* pMaterialName, void* pVMTKeyValues ) {
- return util::get_vfunc< 70, IMaterial* >( this, pMaterialName, pVMTKeyValues );
- }
-
- IMaterial* FindMaterial( const char* pMaterialName, const char* pTextureGroupName = "Model textures", bool complain = true, const char* pComplainPrefix = nullptr ) {
- return util::get_vfunc< 84, IMaterial* >( this, pMaterialName, pTextureGroupName, complain, pComplainPrefix );
- }
-
- MaterialHandle_t FirstMaterial( ) {
- return util::get_vfunc< 86, MaterialHandle_t >( this );
- }
-
- MaterialHandle_t NextMaterial( MaterialHandle_t h ) {
- return util::get_vfunc< 87, MaterialHandle_t >( this, h );
- }
-
- MaterialHandle_t InvalidMaterial( ) {
- return util::get_vfunc< 88, MaterialHandle_t >( this );
- }
-
- IMaterial* GetMaterial( MaterialHandle_t h ) {
- return util::get_vfunc< 89, IMaterial* >( this, h );
- }
-
- void BeginRenderTargetAllocation( ) {
- return util::get_vfunc< 94, void >( this );
- }
-
- void EndRenderTargetAllocation( ) {
- return util::get_vfunc< 95, void >( this );
- }
-
- ITexture* CreateNamedRenderTargetTextureEx( const char* name, int w, int h, RenderTargetSizeMode_t sizeMode,
- ImageFormat format, MaterialRenderTargetDepth_t depth )
- {
- const int textureFlags = 0x4 | 0x8; //TEXTUREFLAGS_CLAMPS, TEXTUREFLAGS_CLAMPT
- const int renderTargetFlags = 0x1; //CREATERENDERTARGETFLAGS_HDR
- return util::get_vfunc< 97, ITexture* >( this, name, w, h, sizeMode, format, depth, textureFlags, renderTargetFlags );
- }
-
- /*void* GetRenderContext( ) {
- typedef IMatRenderContext*( __thiscall* GetRenderContextFn )( void* );
- return CallVFunction<GetRenderContextFn>( this, 115 )( this );
- }*/
-};
\ No newline at end of file diff --git a/tf2/IPanel.h b/tf2/IPanel.h deleted file mode 100644 index 5252642..0000000 --- a/tf2/IPanel.h +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once
-
-class IPanel {
-public:
- const char* GetName( int iPanel ) {
- return call_vfunc< const char*( __thiscall* )( void*, int ) >( this, 36 )( this, iPanel );
- }
-
- void SetMouseInputEnabled( unsigned int iPanel, bool state ) {
- return call_vfunc< void( __thiscall* )( void*, unsigned int, bool ) >( this, 32 )( this, iPanel, state );
- }
-
-};
\ No newline at end of file diff --git a/tf2/IPlayerInfoManager.h b/tf2/IPlayerInfoManager.h deleted file mode 100644 index 13406b1..0000000 --- a/tf2/IPlayerInfoManager.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once
-#include "CGlobalVarsBase.h"
-class IPlayerInfoManager {
-public:
- virtual void pad_000( ) = 0;
- virtual CGlobalVarsBase* GetGlobalVars( ) = 0;
-};
\ No newline at end of file diff --git a/tf2/ISurface.h b/tf2/ISurface.h deleted file mode 100644 index 3dbff15..0000000 --- a/tf2/ISurface.h +++ /dev/null @@ -1,223 +0,0 @@ -#pragma once
-#include "VFunc.h"
-#include "vector.hpp"
-#include "color.hpp"
-
-enum FontDrawType_t {
- FONT_DRAW_DEFAULT = 0,
- FONT_DRAW_NONADDITIVE,
- FONT_DRAW_ADDITIVE,
- FONT_DRAW_TYPE_COUNT = 2,
-};
-
-enum FontFlags_t {
- FONTFLAG_NONE,
- FONTFLAG_ITALIC = 0x001,
- FONTFLAG_UNDERLINE = 0x002,
- FONTFLAG_STRIKEOUT = 0x004,
- FONTFLAG_SYMBOL = 0x008,
- FONTFLAG_ANTIALIAS = 0x010,
- FONTFLAG_GAUSSIANBLUR = 0x020,
- FONTFLAG_ROTARY = 0x040,
- FONTFLAG_DROPSHADOW = 0x080,
- FONTFLAG_ADDITIVE = 0x100,
- FONTFLAG_OUTLINE = 0x200,
- FONTFLAG_CUSTOM = 0x400,
- FONTFLAG_BITMAP = 0x800,
-};
-
-enum ImageFormat {
- IMAGE_FORMAT_UNKNOWN = -1,
- IMAGE_FORMAT_RGBA8888 = 0,
- IMAGE_FORMAT_ABGR8888,
- IMAGE_FORMAT_RGB888,
- IMAGE_FORMAT_BGR888,
- IMAGE_FORMAT_RGB565,
- IMAGE_FORMAT_I8,
- IMAGE_FORMAT_IA88,
- IMAGE_FORMAT_P8,
- IMAGE_FORMAT_A8,
- IMAGE_FORMAT_RGB888_BLUESCREEN,
- IMAGE_FORMAT_BGR888_BLUESCREEN,
- IMAGE_FORMAT_ARGB8888,
- IMAGE_FORMAT_BGRA8888,
- IMAGE_FORMAT_DXT1,
- IMAGE_FORMAT_DXT3,
- IMAGE_FORMAT_DXT5,
- IMAGE_FORMAT_BGRX8888,
- IMAGE_FORMAT_BGR565,
- IMAGE_FORMAT_BGRX5551,
- IMAGE_FORMAT_BGRA4444,
- IMAGE_FORMAT_DXT1_ONEBITALPHA,
- IMAGE_FORMAT_BGRA5551,
- IMAGE_FORMAT_UV88,
- IMAGE_FORMAT_UVWQ8888,
- IMAGE_FORMAT_RGBA16161616F,
- IMAGE_FORMAT_RGBA16161616,
- IMAGE_FORMAT_UVLX8888,
- IMAGE_FORMAT_R32F, // Single-channel 32-bit floating point
- IMAGE_FORMAT_RGB323232F,
- IMAGE_FORMAT_RGBA32323232F,
-
- // Depth-stencil texture formats for shadow depth mapping
- IMAGE_FORMAT_NV_DST16, //
- IMAGE_FORMAT_NV_DST24, //
- IMAGE_FORMAT_NV_INTZ, // Vendor-specific depth-stencil texture
- IMAGE_FORMAT_NV_RAWZ, // formats for shadow depth mapping
- IMAGE_FORMAT_ATI_DST16, //
- IMAGE_FORMAT_ATI_DST24, //
- IMAGE_FORMAT_NV_NULL, // Dummy format which takes no video memory
-
- // Compressed normal map formats
- IMAGE_FORMAT_ATI2N, // One-surface ATI2N / DXN format
- IMAGE_FORMAT_ATI1N, // Two-surface ATI1N format
-
- NUM_IMAGE_FORMATS
-};
-
-struct vertex_t {
- vertex_t( ) {}
-
- vertex_t( const vec2_t& pos, const vec2_t& coord = vec2_t( 0, 0 ) ) {
- m_position = pos;
- m_tex_coord = coord;
- }
-
- void init( float x, float y, const vec2_t& coord = vec2_t( 0, 0 ) ) {
- m_position = vec2_t( x, y );
- m_tex_coord = coord;
- }
-
- vec2_t m_position;
- vec2_t m_tex_coord;
-};
-
-using HFont = unsigned long;
-using VPANEL = unsigned long;
-class IntRect;
-class IHTMLEvents;
-class IHTML;
-using HCursor = unsigned long;
-using HTexture = unsigned long;
-class CharRenderInfo;
-class IVguiMatInfo;
-class IImage;
-class DrawTexturedRectParms_t;
-class IHTMLChromeController;
-
-enum GradientType_t {
- GRADIENT_HORIZONTAL = 0,
- GRADIENT_VERTICAL = 1
-};
-
-class ISurface {
-public:
- void DrawSetColor( clr_t clr ) {
- return call_vfunc< void( __thiscall* )( void*, int , int , int, int ) >( this, 11 )( this, clr.r( ), clr.g( ), clr.b( ), clr.a( ) );
- }
-
- void DrawFilledRect( int x, int y, int w, int h ) {
- return call_vfunc< void( __thiscall* )( void*, int, int, int, int ) >( this, 12 )( this, x, y, w, h );
- }
-
- void DrawOutlinedRect( int x, int y, int w, int h ) {
- return call_vfunc< void( __thiscall* )( void*, int, int, int, int ) >( this, 14 )( this, x, y, w, h );
- }
-
- void DrawLine( int x0, int y0, int x1, int y1 ) {
- return call_vfunc< void( __thiscall* )( void*, int, int, int, int ) >( this, 15 )( this, x0, y0, x1, y1 );
- }
-
- void DrawPolyLine( int* x, int* y, int n ) {
- return call_vfunc< void( __thiscall* )( void*, int*, int*, int ) >( this, 16 )( this, x, y, n );
- }
-
- void DrawSetTextFont( unsigned long index ) {
- return call_vfunc< void( __thiscall* )( void*, unsigned long ) >( this, 17 )( this, index );
- }
-
- void DrawSetTextColor( clr_t clr ) {
- return call_vfunc< void( __thiscall* )( void*, int, int, int, int ) >( this, 19 )( this, clr.r( ), clr.g( ), clr.b( ), clr.a( ) );
- }
-
- void DrawSetTextPos( int x, int y ) {
- return call_vfunc< void( __thiscall* )( void*, int, int ) >( this, 20 )( this, x, y );
- }
-
- void DrawPrintText( const wchar_t* text, int length, FontDrawType_t drawtype = FontDrawType_t::FONT_DRAW_DEFAULT ) {
- return call_vfunc< void( __thiscall* )( void*, const wchar_t*, int, FontDrawType_t ) >( this, 22 )( this, text, length, drawtype );
- }
-
- void DrawSetTextureRGBA( int id, const unsigned char* rgba, int w, int h ) {
- return call_vfunc< void( __thiscall* )( void*, int, const unsigned char*, int, int, int, bool ) >( this, 31 )( this, id, rgba, w, h, 0, true );
- }
-
- void DrawSetTexture( int id ) {
- return call_vfunc< void( __thiscall* )( void*, int ) >( this, 32 )( this, id );
- }
-
- int CreateNewTextureID( bool procedural ) {
- return call_vfunc< int( __thiscall* )( void*, bool ) >( this, 37 )( this, procedural );
- }
-
- void SetCursorAlwaysVis( bool vis ) {
- return call_vfunc< void( __thiscall* )( void*, bool ) >( this, 52 )( this, vis );
- }
-
- unsigned long CreateFnt( ) {
- return call_vfunc< unsigned long( __thiscall* )( void* ) >( this, 66 )( this );
- }
-
- void UnlockCursor( ) {
- return call_vfunc< void( __thiscall* )( void* ) >( this, 61 )( this );
- }
-
- void LockCursor( ) {
- return call_vfunc< void( __thiscall* )( void* ) >( this, 62 )( this );
- }
-
- void SetFontGlyphSet( unsigned long font, const char* windowsFontName, int tall, int weight, int blur, int scanlines, int flags, int nRangeMin = 0, int nRangeMax = 0 ) {
- return call_vfunc< void( __thiscall* )( void*, unsigned long, const char*, int, int, int, int, int, int, int ) >( this, 67 )( this, font, windowsFontName, tall, weight, blur, scanlines, flags, nRangeMin, nRangeMax );
- }
-
- void GetTextSize( unsigned long font, const wchar_t* text, int& wide, int& tall ) {
- return call_vfunc< void( __thiscall* )( void*, unsigned long, const wchar_t*, int&, int& ) >( this, 75 )( this, font, text, wide, tall );
- }
-
- void play_sound( const char* fileName ) {
- return call_vfunc< void( __thiscall* )( void*, const char* ) >( this, 82 )( this, fileName );
- }
-
- void GetCursorPosition( int &x, int &y ) {
- return call_vfunc< void( __thiscall* )( void*, int&, int& ) >( this, 96 )( this, x, y );
- }
-
- void DrawOutlinedCircle( int x, int y, int radius, int segments ) {
- return call_vfunc< void( __thiscall* )( void*, int, int, int, int ) >( this, 99 )( this, x, y, radius, segments );
- }
-
- void DrawTexturedPolygon( int n, vertex_t* pVertice, bool bClipVertices = true ) {
- return call_vfunc< void( __thiscall* )( void*, int, vertex_t*, bool ) >( this, 102 )( this, n, pVertice, bClipVertices );
- }
-
- void DrawGradient( int x, int y, int w, int h, clr_t first, clr_t second, GradientType_t type )
- {
- clr_t present_draw_clr = { };
-
- auto draw_filled_rect_gradient = [ & ]( bool reversed ) -> void {
- call_vfunc< void( __thiscall* )( void*, int, int, int, int, unsigned, unsigned, bool ) >( this, 118 )
- ( this, x, y, w, h, reversed ? 255 : 0, reversed ? 0 : 255, type == GRADIENT_HORIZONTAL );
- };
-
- DrawSetColor( clr_t::blend( first, second, 0.5f ) );
- DrawFilledRect( x, y, w, h );
-
- DrawSetColor( first );
- present_draw_clr = first;
- draw_filled_rect_gradient( true );
-
- DrawSetColor( second );
- present_draw_clr = second;
- draw_filled_rect_gradient( false );
- }
-};
\ No newline at end of file diff --git a/tf2/IVDebugOverlay.h b/tf2/IVDebugOverlay.h deleted file mode 100644 index 664b356..0000000 --- a/tf2/IVDebugOverlay.h +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once
-#include "VFunc.h"
-
-class vec3_t;
-class IVDebugOverlay {
-public:
- int ScreenPosition( const vec3_t& point, vec3_t& screen ) {
- return call_vfunc< int( __thiscall* )( void*, const vec3_t&, vec3_t& ) >( this, 10 )( this, point, screen );
- }
-};
\ No newline at end of file diff --git a/tf2/IVEngineClient.h b/tf2/IVEngineClient.h deleted file mode 100644 index a45e839..0000000 --- a/tf2/IVEngineClient.h +++ /dev/null @@ -1,192 +0,0 @@ -#pragma once
-#include "VFunc.h"
-
-typedef float matrix3x4[ 3 ][ 4 ];
-typedef struct player_info_s {
- char name[ 32 ];
- int userID;
- char guid[ 33 ];
- unsigned long friendsID;
- char friendsName[ 32 ];
- bool fakeplayer;
- bool ishltv;
- unsigned long customFiles[ 4 ];
- byte filesDownloaded;
-} player_info_t;
-
-class INetChannelInfo
-{
-public:
-
- enum
- {
- GENERIC = 0, // must be first and is default group
- LOCALPLAYER, // bytes for local player entity update
- OTHERPLAYERS, // bytes for other players update
- ENTITIES, // all other entity bytes
- SOUNDS, // game sounds
- EVENTS, // event messages
- USERMESSAGES, // user messages
- ENTMESSAGES, // entity messages
- VOICE, // voice data
- STRINGTABLE, // a stringtable update
- MOVE, // client move cmds
- STRINGCMD, // string command
- SIGNON, // various signondata
- TOTAL, // must be last and is not a real group
- };
-
- virtual const char *GetName( void ) const = 0; // get channel name
- virtual const char *GetAddress( void ) const = 0; // get channel IP address as string
- virtual float GetTime( void ) const = 0; // current net time
- virtual float GetTimeConnected( void ) const = 0; // get connection time in seconds
- virtual int GetBufferSize( void ) const = 0; // netchannel packet history size
- virtual int GetDataRate( void ) const = 0; // send data rate in byte/sec
-
- virtual bool IsLoopback( void ) const = 0; // true if loopback channel
- virtual bool IsTimingOut( void ) const = 0; // true if timing out
- virtual bool IsPlayback( void ) const = 0; // true if demo playback
-
- virtual float GetLatency( int flow ) const = 0; // current latency (RTT), more accurate but jittering
- virtual float GetAvgLatency( int flow ) const = 0; // average packet latency in seconds
- virtual float GetAvgLoss( int flow ) const = 0; // avg packet loss[0..1]
- virtual float GetAvgChoke( int flow ) const = 0; // avg packet choke[0..1]
- virtual float GetAvgData( int flow ) const = 0; // data flow in bytes/sec
- virtual float GetAvgPackets( int flow ) const = 0; // avg packets/sec
- virtual int GetTotalData( int flow ) const = 0; // total flow in/out in bytes
- virtual int GetSequenceNr( int flow ) const = 0; // last send seq number
- virtual bool IsValidPacket( int flow, int frame_number ) const = 0; // true if packet was not lost/dropped/chocked/flushed
- virtual float GetPacketTime( int flow, int frame_number ) const = 0; // time when packet was send
- virtual int GetPacketBytes( int flow, int frame_number, int group ) const = 0; // group size of this packet
- virtual bool GetStreamProgress( int flow, int *received, int *total ) const = 0; // TCP progress if transmitting
- virtual float GetTimeSinceLastReceived( void ) const = 0; // get time since last recieved packet in seconds
- virtual float GetCommandInterpolationAmount( int flow, int frame_number ) const = 0;
- virtual void GetPacketResponseLatency( int flow, int frame_number, int *pnLatencyMsecs, int *pnChoke ) const = 0;
- virtual void GetRemoteFramerate( float *pflFrameTime, float *pflFrameTimeStdDeviation ) const = 0;
-
- virtual float GetTimeoutSeconds( ) const = 0;
-};
-
-class INetChannel {
-public:
- char pad_0000[ 20 ]; //0x0000
- bool m_bProcessingMessages; //0x0014
- bool m_bShouldDelete; //0x0015
- char pad_0016[ 2 ]; //0x0016
- int32_t m_nOutSequenceNr; //0x0018 last send outgoing sequence number
- int32_t m_nInSequenceNr; //0x001C last received incoming sequnec number
- int32_t m_nOutSequenceNrAck; //0x0020 last received acknowledge outgoing sequnce number
- int32_t m_nOutReliableState; //0x0024 state of outgoing reliable data (0/1) flip flop used for loss detection
- int32_t m_nInReliableState; //0x0028 state of incoming reliable data
- int32_t m_nChokedPackets; //0x002C number of choked packets
- char pad_0030[ 1044 ]; //0x0030
-
- bool transmit( bool only_reliable ) {
- return util::get_vfunc< 49, bool >( this, only_reliable );
- }
-}; //Size: 0x0444
-
-struct INetMessage {
- virtual ~INetMessage( );
-};
-
-template<typename T>
-class CNetMessagePB : public INetMessage, public T {};
-
-class CCLCMsg_Move_ {
-private:
- char __PAD0[ 0x8 ];
-public:
- int numBackupCommands;
- int numNewCommands;
-};
-
-using CCLCMsg_Move_t = CNetMessagePB<CCLCMsg_Move_>;
-
-class CClientState {
-public:
- char pad0[ 0x9C ];
- INetChannel* netchannel;
- char pad1[ 0xD4 ];
- int32_t m_nDeltaTick; //0x174
- char pad2[ 0x4B34 ];
- float m_frameTime;
- int32_t lastoutgoingcommand;
- int32_t chokedcommands;
- int32_t last_command_ack;
-};
-
-class CGlobalState {
-public:
- uintptr_t * m_manager;
- CClientState *m_def_clientstate;
-
- __forceinline CClientState* get_client_state( ) {
- return m_def_clientstate;
- }
-};
-
-class IVEngineClient {
-public:
- void GetScreenSize( int& width, int& height ) {
- return call_vfunc< void( __thiscall* )( void*, int&, int& ) >( this, 5 )( this, width, height );
- }
-
- void ClientCmd( const char* command ) {
- return call_vfunc< void( __thiscall* )( void*, const char* ) >( this, 7 )( this, command );
- }
-
- bool GetPlayerInfo( int index, player_info_t* info ) {
- return call_vfunc< bool( __thiscall* )( void*, int, player_info_t* ) >( this, 8 )( this, index, info );
- }
-
- int GetPlayerForUserID( int UserID ) {
- using fn = int( __thiscall* )( void*, int );
- return util::get_vfunc< fn >( this, 9 )( this, UserID );
- }
-
- bool Cov_IsVisible( ) {
- return call_vfunc< bool( __thiscall* )( void* ) >( this, 11 )( this );
- }
-
- int GetLocalPlayer( ) {
- return call_vfunc< int( __thiscall* )( void* ) >( this, 12 )( this );
- }
-
- float Time( ) {
- return call_vfunc< float( __thiscall* )( void* ) >( this, 14 )( this );
- }
-
- void GetViewAngles( vec3_t& angles ) {
- return call_vfunc< void( __thiscall* )( void*, vec3_t& ) >( this, 19 )( this, angles );
- }
-
- void SetViewAngles( vec3_t& angles ) {
- return call_vfunc< void( __thiscall* )( void*, vec3_t& ) >( this, 20 )( this, angles );
- }
-
- const matrix3x4& GetWorldToScreenMatrix( ) {
- return call_vfunc< const matrix3x4&( __thiscall* )( void* ) >( this, 36 )( this );
- }
-
- int GetMaxClients( ) {
- return call_vfunc< int( __thiscall* )( void* ) >( this, 21 )( this );
- }
-
- bool IsInGame( ) {
- return call_vfunc< bool( __thiscall* )( void* ) >( this, 26 )( this );
- }
-
- bool IsConnected( ) {
- return call_vfunc< bool( __thiscall* )( void* ) >( this, 27 )( this );
- }
-
- void ClientCmd_Unrestricted( const char* command ) {
- return call_vfunc< void( __thiscall* )( void*, const char* ) >( this, 106 )( this, command );
- }
-
- INetChannelInfo* GetNetChannelInfo( ) {
- using fn = INetChannelInfo * ( __thiscall* )( void* );
- return util::get_vfunc< fn >( this, 72 )( this );
- }
-};
\ No newline at end of file diff --git a/tf2/IVModelInfo.h b/tf2/IVModelInfo.h deleted file mode 100644 index 08df897..0000000 --- a/tf2/IVModelInfo.h +++ /dev/null @@ -1,179 +0,0 @@ -#pragma once -#include "IVEngineClient.h" -#include "IClientEntityList.h" -class IMaterial; -struct mstudiobbox_t { - int bone; - int group; - vec3_t bbmin; - vec3_t bbmax; - int szhitboxnameindex; - int unused[8]; -}; - -enum OverrideType_t {
- OVERRIDE_NORMAL = 0,
- OVERRIDE_BUILD_SHADOWS,
- OVERRIDE_DEPTH_WRITE,
- OVERRIDE_SSAO_DEPTH_WRITE,
-}; -struct DrawModelState_t; - -struct mstudiobone_t {
- int sznameindex;
- char* GetName( ) const { return reinterpret_cast< char* >( reinterpret_cast< uintptr_t >( this ) ) + sznameindex; }
- int parent;
- int bonecontroller[ 6 ];
- vec3_t pos;
- float quat[ 4 ];
- vec3_t rot;
- vec3_t posscale;
- vec3_t rotscale;
- matrix3x4 poseToBone;
- float qAlignment[ 4 ];
- int flags;
- int proctype;
- int procindex;
- mutable int physicsbone;
- void* GetProcedure( ) const { return procindex == 0 ? nullptr : reinterpret_cast<void*>( reinterpret_cast<uintptr_t>( this ) + procindex ); };
- int surfacepropidx;
- char* GetSurfaceProps( ) const { return reinterpret_cast<char*>( reinterpret_cast<uintptr_t>( this ) ) + surfacepropidx; }
- int contents;
- unsigned char pad[ 32 ];
-}; - -struct mstudiohitboxset_t { - int sznameindex; - inline char *const pszName(void) const { return ((char *)this) + sznameindex; } - int numhitboxes; - int hitboxindex; - mstudiobbox_t *pHitbox(int i) const { return (mstudiobbox_t *)(((BYTE *)this) + hitboxindex) + i; }; -}; - -struct studiohdr_t { - unsigned char pad00[12]; - char name[64]; - unsigned char pad01[80]; - int numbones; - int boneindex; - unsigned char pad02[12]; - int hitboxsetindex; - unsigned char pad03[228]; - - mstudiobone_t *GetBone( int i ) const {
- return reinterpret_cast<mstudiobone_t*>( uintptr_t( this ) + boneindex ) + i;
- }; - - mstudiohitboxset_t *pHitboxSet(int i) const { - return (mstudiohitboxset_t *)(((unsigned char *)this) + hitboxsetindex) + i; - }; - - mstudiobbox_t *pHitbox(int i, int set) const { - const mstudiohitboxset_t *s = pHitboxSet(set); - if(!s) - return 0; - - return s->pHitbox(i); - }; - - int iHitboxCount(int set) const { - const mstudiohitboxset_t *s = pHitboxSet(set); - if(!s) - return 0; - - return s->numhitboxes; - }; -}; - -struct ModelRenderInfo_t {
- vec3_t m_origin;
- vec3_t m_angles;
- char pad[ 0x4 ];
- void* m_renderable;
- const model_t* m_model;
- const matrix3x4* m_model2world;
- const matrix3x4* m_light_offset;
- const vec3_t* m_light_origin;
- int m_flags;
- int m_entity_index;
- int m_skin;
- int m_body;
- int m_hitboxset;
- uint16_t* m_instance;
-
- ModelRenderInfo_t( ) {
- m_model2world = nullptr;
- m_light_offset = nullptr;
- m_light_origin = nullptr;
- }
-}; - -class IVModelInfo { -public: - int GetModelIndex( const char* name ) { - return call_vfunc< int( __thiscall* )( void*, const char* ) >( this, 2 )( this, name ); - } - - const char* GetModelName( const void* model ) { - return call_vfunc< const char*( __thiscall* )( void*, const void* ) >( this, 3 )( this, model ); - } - - studiohdr_t* GetStudioModel( const void* model ) { - return call_vfunc< studiohdr_t*( __thiscall* )( void*, const void* ) >( this, 28 )( this, model ); - } - - model_t* FindOrLoadModel( const char* name ) {
- using fn = model_t * ( __thiscall* )( void*, const char* );
- return util::get_vfunc< fn >( this, 43 )( this, name );
- } -}; - -class IVModelRender {
-public:
- void ForcedMaterialOverride( IMaterial* newMaterial, OverrideType_t nOverrideType = OVERRIDE_NORMAL, int unk = 0 ) {
- using fn = void( __thiscall* )( void*, IMaterial*, OverrideType_t, int );
- return util::get_vfunc< fn >( this, 1 )( this, newMaterial, nOverrideType, unk );
- }
-
- void DrawModelExecute( void* matctx, const DrawModelState_t& state, const ModelRenderInfo_t& pInfo, matrix3x4* pCustomBoneToWorld ) {
- using fn = void( __thiscall* )( void*, void*, const DrawModelState_t&, const ModelRenderInfo_t&, matrix3x4* );
- util::get_vfunc< fn >( this, 19 )( this, matctx, state, pInfo, pCustomBoneToWorld );
- }
-}; -
-
-class INetworkStringTable {
-public:
-
- virtual ~INetworkStringTable( void ) {};
-
- // Table Info
- virtual const char *GetTableName( void ) const = 0;
- virtual int GetTableId( void ) const = 0;
- virtual int GetNumStrings( void ) const = 0;
- virtual int GetMaxStrings( void ) const = 0;
- virtual int GetEntryBits( void ) const = 0;
-
- // Networking
- virtual void SetTick( int tick ) = 0;
- virtual bool ChangedSinceTick( int tick ) const = 0;
-
- // Accessors (length -1 means don't change user data if string already exits)
- virtual int AddString( bool bIsServer, const char *value, int length = -1, const void *userdata = 0 ) = 0;
-
- virtual const char *GetString( int stringNumber ) = 0;
- virtual void SetStringUserData( int stringNumber, int length, const void *userdata ) = 0;
- virtual const void *GetStringUserData( int stringNumber, int *length ) = 0;
- virtual int FindStringIndex( char const *string ) = 0; // returns INVALID_STRING_INDEX if not found
-
- // Callbacks
- virtual void SetStringChangedCallback( void *object, void* changeFunc ) = 0;
-};
-
-class CStringTable {
-public:
- INetworkStringTable * FindTable( const char* table ) {
- using fn = INetworkStringTable * ( __thiscall* )( void*, const char* );
- return util::get_vfunc< fn >( this, 3 )( this, table );
- }
-};
\ No newline at end of file diff --git a/tf2/IVRenderView.h b/tf2/IVRenderView.h deleted file mode 100644 index b85b82d..0000000 --- a/tf2/IVRenderView.h +++ /dev/null @@ -1,185 +0,0 @@ -#pragma once
-#include "util.hpp"
-
-class Beam_t;
-class C_Beam;
-class c_base_player;
-class ITraceFilter;
-
-
-class IVRenderView {
-public:
- void SetBlend( float blend ) {
- return util::get_vfunc< 4, void >( this, blend );
- }
-
- float GetBlend( ) {
- return util::get_vfunc< 5, float >( this );
- }
-
- void SetColorModulation( float const* blend ) {
- return util::get_vfunc< 6, void >( this, blend );
- }
-
- void GetColorModulation( float* blend ) {
- return util::get_vfunc< 7, void >( this, blend );
- }
-};
-
-enum beam_types {
- beam_normal = 0,
- beam_disk = 2,
- beam_cylinder,
- beam_follow,
- beam_ring,
- beam_spline,
- beam_ring_point,
- beam_laser,
- beam_tesla,
-};
-
-enum beam_flags {
- FBEAM_STARTENTITY = 0x00000001,
- FBEAM_ENDENTITY = 0x00000002,
- FBEAM_FADEIN = 0x00000004,
- FBEAM_FADEOUT = 0x00000008,
- FBEAM_SINENOISE = 0x00000010,
- FBEAM_SOLID = 0x00000020,
- FBEAM_SHADEIN = 0x00000040,
- FBEAM_SHADEOUT = 0x00000080,
- FBEAM_ONLYNOISEONCE = 0x00000100, // Only calculate our noise once
- FBEAM_NOTILE = 0x00000200,
- FBEAM_USE_HITBOXES = 0x00000400, // Attachment indices represent hitbox indices instead when this is set.
- FBEAM_STARTVISIBLE = 0x00000800, // Has this client actually seen this beam's start entity yet?
- FBEAM_ENDVISIBLE = 0x00001000, // Has this client actually seen this beam's end entity yet?
- FBEAM_ISACTIVE = 0x00002000,
- FBEAM_FOREVER = 0x00004000,
- FBEAM_HALOBEAM = 0x00008000, // When drawing a beam with a halo, don't ignore the segments and endwidth
- FBEAM_REVERSED = 0x00010000,
- NUM_BEAM_FLAGS = 17 // KEEP THIS UPDATED!
-};
-
-struct BeamInfo_t {
- beam_types m_nType;
-
- // Entities
- IClientEntity* m_pStartEnt;
- int m_nStartAttachment;
- IClientEntity* m_pEndEnt;
- int m_nEndAttachment;
-
- // Points
- vec3_t m_vecStart;
- vec3_t m_vecEnd;
-
- int m_nModelIndex;
- const char *m_pszModelName;
-
- int m_nHaloIndex;
- const char *m_pszHaloName;
- float m_flHaloScale;
-
- float m_flLife;
- float m_flWidth;
- float m_flEndWidth;
- float m_flFadeLength;
- float m_flAmplitude;
-
- float m_flBrightness;
- float m_flSpeed;
-
- int m_nStartFrame;
- float m_flFrameRate;
-
- float m_flRed;
- float m_flGreen;
- float m_flBlue;
-
- bool m_bRenderable;
-
- int m_nSegments;
-
- int m_nFlags;
-
- // Rings
- vec3_t m_vecCenter;
- float m_flStartRadius;
- float m_flEndRadius;
-
- BeamInfo_t( )
- {
- m_nType = beam_normal;
- m_nSegments = -1;
- m_pszModelName = NULL;
- m_pszHaloName = NULL;
- m_nModelIndex = -1;
- m_nHaloIndex = -1;
- m_bRenderable = true;
- m_nFlags = 0;
- }
-};
-
-class IViewRenderBeams
-{
-public:
- // Construction
-public:
- IViewRenderBeams( void );
- virtual ~IViewRenderBeams( void );
-
- // Implement IViewRenderBeams
-public:
- virtual void InitBeams( void );
- virtual void ShutdownBeams( void );
- virtual void ClearBeams( void );
-
- // Updates the state of the temp ent beams
- virtual void UpdateTempEntBeams( );
-
- virtual void DrawBeam( Beam_t *pbeam );
- virtual void DrawBeam( C_Beam* pbeam, ITraceFilter*pEntityBeamTraceFilter = NULL );
-
- virtual void KillDeadBeams( IClientEntity *pDeadEntity );
-
- virtual void CreateBeamEnts( int startEnt, int endEnt, int modelIndex, int haloIndex, float haloScale,
- float life, float width, float endWidth, float fadeLength, float amplitude,
- float brightness, float speed, int startFrame,
- float framerate, float r, float g, float b, int type = -1 );
- virtual Beam_t *CreateBeamEnts( BeamInfo_t &beamInfo );
-
- virtual void CreateBeamEntPoint( int nStartEntity, const vec3_t *pStart, int nEndEntity, const vec3_t* pEnd,
- int modelIndex, int haloIndex, float haloScale,
- float life, float width, float endWidth, float fadeLength, float amplitude,
- float brightness, float speed, int startFrame,
- float framerate, float r, float g, float b );
- virtual Beam_t *CreateBeamEntPoint( BeamInfo_t &beamInfo );
-
- virtual void CreateBeamPoints( vec3_t& start, vec3_t& end, int modelIndex, int haloIndex, float haloScale,
- float life, float width, float endWidth, float fadeLength, float amplitude,
- float brightness, float speed, int startFrame,
- float framerate, float r, float g, float b );
- virtual Beam_t *CreateBeamPoints( BeamInfo_t &beamInfo );
-
- virtual void CreateBeamRing( int startEnt, int endEnt, int modelIndex, int haloIndex, float haloScale,
- float life, float width, float endWidth, float fadeLength, float amplitude,
- float brightness, float speed, int startFrame,
- float framerate, float r, float g, float b, int flags );
- virtual Beam_t *CreateBeamRing( BeamInfo_t &beamInfo );
-
- virtual void CreateBeamRingPoint( const vec3_t& center, float start_radius, float end_radius, int modelIndex, int haloIndex, float haloScale,
- float life, float width, float m_nEndWidth, float m_nFadeLength, float amplitude,
- float brightness, float speed, int startFrame,
- float framerate, float r, float g, float b, int flags );
- virtual Beam_t *CreateBeamRingPoint( BeamInfo_t &beamInfo );
-
- virtual void CreateBeamCirclePoints( int type, vec3_t& start, vec3_t& end,
- int modelIndex, int haloIndex, float haloScale, float life, float width,
- float endWidth, float fadeLength, float amplitude, float brightness, float speed,
- int startFrame, float framerate, float r, float g, float b );
- virtual Beam_t *CreateBeamCirclePoints( BeamInfo_t &beamInfo );
-
- virtual void CreateBeamFollow( int startEnt, int modelIndex, int haloIndex, float haloScale,
- float life, float width, float endWidth, float fadeLength, float r, float g, float b,
- float brightness );
- virtual Beam_t *CreateBeamFollow( BeamInfo_t &beamInfo );
-};
\ No newline at end of file diff --git a/tf2/KeyValues.cpp b/tf2/KeyValues.cpp deleted file mode 100644 index 16ccf6e..0000000 --- a/tf2/KeyValues.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include "KeyValues.h"
-#include "pattern.hpp"
-#include "interfaces.h"
-
-void* KeyValues::key_values_ptr;
-
-void IKeyValuesSystem::FreeKeyValuesMemory( void* memory ) {
- return util::get_vfunc< 2, void >( this, memory );
-}
-
-int IKeyValuesSystem::GetSymbolForString( const char* str, bool create ) {
- static auto offset = pattern::first_code_match( GetModuleHandleA( xors( "client.dll" ) ), xors( "FF 15 ? ? ? ? 83 C4 08 89 06 8B C6" ) );
- using fn = int( __thiscall* )( void*, const char*, bool );
-
- int symbol = ( ( fn )( offset ) )( this, str, create );
- return symbol;
-}
-
-const char* IKeyValuesSystem::GetStringForSymbol( int symbol ) {
- static auto offset = pattern::first_code_match( GetModuleHandleA( xors( "client.dll" ) ), xors( "55 8B EC 8B 55 08 83 FA FF" ) );
- using fn = const char*( __thiscall* )( void*, int );
-
- auto result = ( ( fn )( offset ) )( this, symbol );
- printf( "%d: %d\n", symbol, *( int* )( &result ) );
-
- return result;
-}
-
-//honestly keyvalues can suck my fucking cock while i force feeds that fucking whores ass rats to live in its cum infested shithole
-
-
-KeyValues::KeyValues( const char* name ) {
- static std::string fun_pattern = "E8 ? ? ? ? 80 7D 84 00";
- static uintptr_t function_offset = pattern::first_code_match( cl.m_chl.dll( ), fun_pattern ) + 0x13C;
- static auto function = reinterpret_cast< void( __thiscall* )( void*, const char* ) >( function_offset );
- if( function ) function( this, name );
-}
-
-bool KeyValues::LoadFromBuffer( const char* resource_name, const char* buffer, void* file_system, const char* path_id ) {
- static std::string fun_pattern = "55 8B EC 83 E4 F8 83 EC 34 53 8B 5D 0C 89 4C 24 04";
- static auto function = pattern::first_code_match< bool( __thiscall* )( void*, const char*, const char*, void*, const char*, void* ) >( cl.m_chl.dll( ), fun_pattern );
- if( function ) return function( this, resource_name, buffer, file_system, path_id, 0 );
- return false;
-}
-
-void* KeyValues::operator new( size_t alloc_size ) {
- if( !KeyValues::key_values_ptr ) {
- static auto get_key_values = reinterpret_cast< void*( __cdecl* )( ) >( GetProcAddress( GetModuleHandleA( "vstdlib.dll" ), "KeyValuesSystem" ) );
- KeyValues::key_values_ptr = get_key_values( );
- }
-
- return call_vfunc< void*( __thiscall* )( void*, size_t ) >( KeyValues::key_values_ptr, 1 )( KeyValues::key_values_ptr, 32 );
-}
-
-void KeyValues::operator delete( void* mem ) {
- if( !KeyValues::key_values_ptr ) {
- static auto get_key_values = reinterpret_cast< void*( __cdecl* )( ) >( GetProcAddress( GetModuleHandleA( "vstdlib.dll" ), "KeyValuesSystem" ) );
- KeyValues::key_values_ptr = get_key_values( );
- }
-
- call_vfunc< void( __thiscall* )( void*, void* ) >( KeyValues::key_values_ptr, 2 )( KeyValues::key_values_ptr, mem );
-}
diff --git a/tf2/KeyValues.h b/tf2/KeyValues.h deleted file mode 100644 index 1d8ed41..0000000 --- a/tf2/KeyValues.h +++ /dev/null @@ -1,46 +0,0 @@ -#pragma once
-#include "util.hpp"
-
-class IKeyValuesSystem {
-public:
- void FreeKeyValuesMemory( void* memory );
- int GetSymbolForString( const char* string, bool create );
- const char* GetStringForSymbol( int symbol );
-};
-
-class KeyValues
-{
-public:
- KeyValues( const char *setName );
- //~KeyValues( );
-
- bool LoadFromBuffer( char const *resourceName, const char *pBuffer, void* pFileSystem = nullptr, const char *pPathID = nullptr );
-
- const char* get_string( const char* name, const char* value );
-
- int m_iKeyName;
-
- char *m_sValue;
- wchar_t *m_wsValue;
-
- // we don't delete these
- union {
- int m_iValue;
- float m_flValue;
- void *m_pValue;
- unsigned char m_Color[ 4 ];
- };
-
- void* operator new( size_t alloc );
- void operator delete( void* mem );
-
- char m_iDataType;
- char m_bHasEscapeSequences;
- char m_bEvaluateConditionals;
- static void* key_values_ptr;
- KeyValues* FindKey( const char* key_name );
-
- KeyValues *m_pPeer; // pointer to next key in list
- KeyValues *m_pSub; // pointer to Start of a new sub key list
- KeyValues *m_pChain;// Search here if it's not in our list
-};
\ No newline at end of file diff --git a/tf2/README.md b/tf2/README.md deleted file mode 100644 index fa73fb9..0000000 --- a/tf2/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# tf2
-
-jukka = bester
diff --git a/tf2/ScreenSpaceEffects.h b/tf2/ScreenSpaceEffects.h deleted file mode 100644 index ec0b6e8..0000000 --- a/tf2/ScreenSpaceEffects.h +++ /dev/null @@ -1,50 +0,0 @@ -#pragma once
-class KeyValues;
-
-class IScreenSpaceEffect {
-public:
-
- virtual void Init( ) = 0;
- virtual void Shutdown( ) = 0;
-
- virtual void SetParameters( KeyValues *params ) = 0;
-
- virtual void Render( int x, int y, int w, int h ) = 0;
-
- virtual void Enable( bool bEnable ) = 0;
- virtual bool IsEnabled( ) = 0;
-};
-
-class IScreenSpaceEffectManager {
-public:
-
- virtual void InitScreenSpaceEffects( ) = 0;
- virtual void ShutdownScreenSpaceEffects( ) = 0;
-
- virtual IScreenSpaceEffect *GetScreenSpaceEffect( const char *pEffectName ) = 0;
-
- virtual void SetScreenSpaceEffectParams( const char *pEffectName, KeyValues *params ) = 0;
- virtual void SetScreenSpaceEffectParams( IScreenSpaceEffect *pEffect, KeyValues *params ) = 0;
-
- virtual void EnableScreenSpaceEffect( const char *pEffectName ) = 0;
- virtual void EnableScreenSpaceEffect( IScreenSpaceEffect *pEffect ) = 0;
-
- virtual void DisableScreenSpaceEffect( const char *pEffectName ) = 0;
- virtual void DisableScreenSpaceEffect( IScreenSpaceEffect *pEffect ) = 0;
-
- virtual void DisableAllScreenSpaceEffects( ) = 0;
-
- virtual void RenderEffects( int x, int y, int w, int h ) = 0;
-};
-
-class CScreenSpaceEffectRegistration {
-public:
- CScreenSpaceEffectRegistration( const char *pName, IScreenSpaceEffect *pEffect );
-
- const char *m_pEffectName;
- IScreenSpaceEffect *m_pEffect;
-
- CScreenSpaceEffectRegistration *m_pNext;
-
- static CScreenSpaceEffectRegistration *s_pHead;
-};
\ No newline at end of file diff --git a/tf2/Source.cpp b/tf2/Source.cpp deleted file mode 100644 index 3bd44af..0000000 --- a/tf2/Source.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#pragma warning (disable:4018)
-
-#include <Windows.h>
-#include <iostream>
-
-#include "console.hpp"
-#include "interfaces.h"
-#include "search.h"
-#include "hooks.h"
-#include <thread>
-#include "base_cheat.h"
-
-HMODULE g_dll;
-
-void main_thread( HMODULE module ) {
-
- cl.initialize( );
-
-
-
- while ( !( GetAsyncKeyState( VK_END ) & 0x8000 ) ) {
- std::this_thread::sleep_for( std::chrono::milliseconds( 100 ) );
- }
-
-}
-
-bool __stdcall DllMain(
- _In_ HINSTANCE hinstDLL,
- _In_ DWORD fdwReason,
- _In_ LPVOID lpvReserved ) {
- if ( fdwReason == DLL_PROCESS_ATTACH /*&& ( uintptr_t )( lpvReserved ) == 20*/ ) { //nigga suck who dick?
- DisableThreadLibraryCalls( hinstDLL );
- g_dll = hinstDLL;
- // coca cola coca cola yayo bought me everything
-
- //no i did not dummy
-
- CreateThread( nullptr, 0, reinterpret_cast< LPTHREAD_START_ROUTINE >( main_thread ), hinstDLL, 0, nullptr );
- }
-
- return true;
-}
\ No newline at end of file diff --git a/tf2/UtlMem.h b/tf2/UtlMem.h deleted file mode 100644 index df4574f..0000000 --- a/tf2/UtlMem.h +++ /dev/null @@ -1,320 +0,0 @@ -#pragma once
-
-typedef intptr_t intp;
-inline int UtlMemory_CalcNewAllocationCount( int nAllocationCount, int nGrowSize, int nNewSize, int nBytesItem )
-{
- if( nGrowSize )
- nAllocationCount = ( ( 1 + ( ( nNewSize - 1 ) / nGrowSize ) ) * nGrowSize );
- else
- {
- if( !nAllocationCount )
- nAllocationCount = ( 31 + nBytesItem ) / nBytesItem;
-
- while( nAllocationCount < nNewSize )
- nAllocationCount *= 2;
- }
-
- return nAllocationCount;
-}
-
-template< class T, class I = int >
-class CUtlMemory
-{
-public:
- T & operator[]( I i )
- {
- return m_pMemory[ i ];
- }
-
- explicit operator bool( ) const noexcept {
- return !!( m_pMemory );
- }
-
- T *Base( )
- {
- return m_pMemory;
- }
-
- int NumAllocated( ) const
- {
- return m_nAllocationCount;
- }
-
- void Grow( int num = 1 )
- {
- if( IsExternallyAllocated( ) )
- return;
-
- int nAllocationRequested = m_nAllocationCount + num;
- int nNewAllocationCount = UtlMemory_CalcNewAllocationCount( m_nAllocationCount, m_nGrowSize, nAllocationRequested, sizeof( T ) );
-
- if( ( int )( I )nNewAllocationCount < nAllocationRequested )
- {
- if( ( int )( I )nNewAllocationCount == 0 && ( int )( I )( nNewAllocationCount - 1 ) >= nAllocationRequested )
- --nNewAllocationCount;
- else
- {
- if( ( int )( I )nAllocationRequested != nAllocationRequested )
- return;
-
- while( ( int )( I )nNewAllocationCount < nAllocationRequested )
- nNewAllocationCount = ( nNewAllocationCount + nAllocationRequested ) / 2;
- }
- }
-
- m_nAllocationCount = nNewAllocationCount;
-
- if( m_pMemory )
- m_pMemory = ( T * )realloc( m_pMemory, m_nAllocationCount * sizeof( T ) );
- else
- m_pMemory = ( T * )malloc( m_nAllocationCount * sizeof( T ) );
- }
-
- bool IsExternallyAllocated( ) const
- {
- return m_nGrowSize < 0;
- }
-
-protected:
- T * m_pMemory;
- int m_nAllocationCount;
- int m_nGrowSize;
-};
-
-template <class T>
-inline T *Construct( T *pMemory )
-{
- return ::new( pMemory ) T;
-}
-
-template <class T>
-inline T *CopyConstruct( T *pMemory, T const& src )
-{
- return( new( pMemory ) T( src ) );
-}
-
-template <class T>
-inline void Destruct( T *pMemory )
-{
- pMemory->~T( );
-}
-
-template< class T >
-class CUtlFixedMemory
-{
-public:
- // constructor, destructor
- CUtlFixedMemory( int nGrowSize = 0, int nInitSize = 0 );
- ~CUtlFixedMemory( );
-
- // Set the size by which the memory grows
- void Init( int nGrowSize = 0, int nInitSize = 0 );
-
- // here to match CUtlMemory, but only used by ResetDbgInfo, so it can just return NULL
- T* Base( ) { return NULL; }
- const T* Base( ) const { return NULL; }
-
-protected:
- struct BlockHeader_t;
-
-public:
- class Iterator_t
- {
- public:
- Iterator_t( BlockHeader_t *p, int i ) : m_pBlockHeader( p ), m_nIndex( i ) {}
- BlockHeader_t *m_pBlockHeader;
- intp m_nIndex;
-
- bool operator==( const Iterator_t it ) const { return m_pBlockHeader == it.m_pBlockHeader && m_nIndex == it.m_nIndex; }
- bool operator!=( const Iterator_t it ) const { return m_pBlockHeader != it.m_pBlockHeader || m_nIndex != it.m_nIndex; }
- };
- Iterator_t First( ) const { return m_pBlocks ? Iterator_t( m_pBlocks, 0 ) : InvalidIterator( ); }
- Iterator_t Next( const Iterator_t &it ) const
- {
- Assert( IsValidIterator( it ) );
- if( !IsValidIterator( it ) )
- return InvalidIterator( );
-
- BlockHeader_t *pHeader = it.m_pBlockHeader;
- if( it.m_nIndex + 1 < pHeader->m_nBlockSize )
- return Iterator_t( pHeader, it.m_nIndex + 1 );
-
- return pHeader->m_pNext ? Iterator_t( pHeader->m_pNext, 0 ) : InvalidIterator( );
- }
- intp GetIndex( const Iterator_t &it ) const
- {
- Assert( IsValidIterator( it ) );
- if( !IsValidIterator( it ) )
- return InvalidIndex( );
-
- return ( intp )( HeaderToBlock( it.m_pBlockHeader ) + it.m_nIndex );
- }
- bool IsIdxAfter( intp i, const Iterator_t &it ) const
- {
- Assert( IsValidIterator( it ) );
- if( !IsValidIterator( it ) )
- return false;
-
- if( IsInBlock( i, it.m_pBlockHeader ) )
- return i > GetIndex( it );
-
- for( BlockHeader_t *pbh = it.m_pBlockHeader->m_pNext; pbh; pbh = pbh->m_pNext )
- {
- if( IsInBlock( i, pbh ) )
- return true;
- }
- return false;
- }
- bool IsValidIterator( const Iterator_t &it ) const { return it.m_pBlockHeader && it.m_nIndex >= 0 && it.m_nIndex < it.m_pBlockHeader->m_nBlockSize; }
- Iterator_t InvalidIterator( ) const { return Iterator_t( NULL, INVALID_INDEX ); }
-
- // element access
- T& operator[]( intp i );
- const T& operator[]( intp i ) const;
- T& Element( intp i );
- const T& Element( intp i ) const;
-
- // Can we use this index?
- bool IsIdxValid( intp i ) const;
-
- // Specify the invalid ('null') index that we'll only return on failure
- static const intp INVALID_INDEX = 0; // For use with COMPILE_TIME_ASSERT
- static intp InvalidIndex( ) { return INVALID_INDEX; }
-
- // Size
- int NumAllocated( ) const;
- int Count( ) const { return NumAllocated( ); }
-
- // Grows memory by max(num,growsize), and returns the allocation index/ptr
- void Grow( int num = 1 );
-
- // Makes sure we've got at least this much memory
- void EnsureCapacity( int num );
-
- // Memory deallocation
- void Purge( );
-
-protected:
- // Fast swap - WARNING: Swap invalidates all ptr-based indices!!!
- void Swap( CUtlFixedMemory< T > &mem );
-
- bool IsInBlock( intp i, BlockHeader_t *pBlockHeader ) const
- {
- T *p = ( T* )i;
- const T *p0 = HeaderToBlock( pBlockHeader );
- return p >= p0 && p < p0 + pBlockHeader->m_nBlockSize;
- }
-
- struct BlockHeader_t
- {
- BlockHeader_t *m_pNext;
- intp m_nBlockSize;
- };
-
- const T *HeaderToBlock( const BlockHeader_t *pHeader ) const { return ( T* )( pHeader + 1 ); }
- const BlockHeader_t *BlockToHeader( const T *pBlock ) const { return ( BlockHeader_t* )( pBlock )-1; }
-
- BlockHeader_t* m_pBlocks;
- int m_nAllocationCount;
- int m_nGrowSize;
-};
-
-template< class T, class A = CUtlMemory<T> >
-class CUtlVector
-{
- typedef A CAllocator;
-
- typedef T *iterator;
- typedef const T *const_iterator;
-public:
- T & operator[]( int i )
- {
- return m_Memory[ i ];
- }
-
- explicit operator bool( ) const noexcept {
- return !!( m_Memory );
- }
-
- T& Element( int i )
- {
- return m_Memory[ i ];
- }
-
- T* Base( )
- {
- return m_Memory.Base( );
- }
-
- int Count( ) const
- {
- return m_Size;
- }
-
- void RemoveAll( )
- {
- for( int i = m_Size; --i >= 0; )
- Destruct( &Element( i ) );
-
- m_Size = 0;
- }
-
- int AddToTail( const T& src )
- {
- return InsertBefore( m_Size, src );
- }
-
- int AddToTail( )
- {
- return InsertBefore( m_Size );
- }
-
- int InsertBefore( int elem, const T& src )
- {
- Growvec3_t( );
- ShiftElementsRight( elem );
- CopyConstruct( &Element( elem ), src );
- return elem;
- }
-
- int InsertBefore( int elem )
- {
- Growvec3_t( );
- ShiftElementsRight( elem );
- Construct( &Element( elem ) );
-
- return elem;
- }
-
- iterator begin( ) { return Base( ); }
- const_iterator begin( ) const { return Base( ); }
- iterator end( ) { return Base( ) + Count( ); }
- const_iterator end( ) const { return Base( ) + Count( ); }
-
-protected:
- void Growvec3_t( int num = 1 )
- {
- if( m_Size + num > m_Memory.NumAllocated( ) )
- m_Memory.Grow( m_Size + num - m_Memory.NumAllocated( ) );
-
- m_Size += num;
- ResetDbgInfo( );
- }
-
- void ShiftElementsRight( int elem, int num = 1 )
- {
- int numToMove = m_Size - elem - num;
- if( ( numToMove > 0 ) && ( num > 0 ) )
- memmove( &Element( elem + num ), &Element( elem ), numToMove * sizeof( T ) );
- }
-
- CAllocator m_Memory;
- int m_Size;
-
- T *m_pElements;
-
- inline void ResetDbgInfo( )
- {
- m_pElements = Base( );
- }
-};
\ No newline at end of file diff --git a/tf2/VFunc.h b/tf2/VFunc.h deleted file mode 100644 index f5e09af..0000000 --- a/tf2/VFunc.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once
-#include <inttypes.h>
-#include <intrin.h>
-
-template < typename Fn > __forceinline Fn call_vfunc( void* classbase, int index ) {
- if ( !classbase ) return Fn{ };
- return ( Fn )( ( uintptr_t* )*( uintptr_t** )classbase )[ index ];
-}
-
-template < typename T > __forceinline T get_ebp( ) {
- __asm mov eax, ebp
-}
\ No newline at end of file diff --git a/tf2/aim.cpp b/tf2/aim.cpp deleted file mode 100644 index 15c5e16..0000000 --- a/tf2/aim.cpp +++ /dev/null @@ -1,321 +0,0 @@ -#include "interfaces.h"
-#include "input_system.hpp"
-#include "ctx.hpp"
-#include "aim.h"
-#include "settings.h"
-#include "math.h"
-
-namespace features
-{
- int c_legitbot::get_aim_target( float fov ) {
- float best_fov = fov ? fov : g_settings.legit.active->m_fov;
- int target{ -1 };
- vec3_t aim_angle{ };
- vec3_t cur_angle{ };
- vec3_t local_pos{ };
- vec3_t aim_pos{ };
-
- cl.m_engine( )->GetViewAngles( cur_angle );
- local_pos = g_ctx.m_local->get_eye_pos( );
-
- for( int i{ 1 }; i <= cl.m_globals->maxclients; ++i ) {
- auto entity = cl.m_entlist( )->get_client_entity< c_base_player >( i );
-
- if( !entity ) continue;
- if( entity == g_ctx.m_local ) continue;
- if( !entity->is_valid( ) ) continue;
- int team = entity->get_team( );
- if( team == g_ctx.m_local->get_team( )
- && !g_settings.legit.friendlies( ) ) {
- continue;
- }
-
- bool visible = entity->is_visible( g_settings.legit.active->m_bone );
- if( !visible && g_settings.legit.backtracking_target( ) ) {
- auto record = m_lagcomp.find_best_record( i );
- if( record ) {
- visible = util::trace_ray( local_pos, record->m_position,
- g_ctx.m_local->ce( ), entity->ce( ) );
- }
- }
-
- if( !visible ) {
- continue;
- }
-
- aim_angle = math::vector_angles( local_pos, entity->get_hitbox_position( g_settings.legit.active->m_bone ) );
- aim_angle.clamp( );
-
- float fov = ( cur_angle - aim_angle ).clamp( ).length2d( );
- if( fov < best_fov ) {
- best_fov = fov;
- target = i;
- }
- }
-
- return target;
- }
-
- void c_legitbot::assist( c_base_player* target, float* x, float* y ) {
- vec3_t aim_ang;
- vec3_t move_ang;
- vec3_t view_ang;
- vec3_t enemy_pos;
- vec3_t local_pos;
- vec3_t view_delta;
- vec3_t delta;
- vec2_t pixels;
-
- local_pos = g_ctx.m_local->get_eye_pos( );
- enemy_pos = target->get_hitbox_position( g_settings.legit.active->m_bone );
-
- aim_ang = math::vector_angles( local_pos, enemy_pos );
-
- move_ang = pixels_to_angle( vec2_t( *x, *y ) );
- cl.m_engine( )->GetViewAngles( view_ang );
-
- view_delta = ( aim_ang - view_ang ).clamp( );
-
- move_ang *= g_settings.legit.active->m_assist_strength;
- float delta_y = std::abs( move_ang.y );
- float delta_x = std::abs( move_ang.x );
-
- delta.x = std::clamp( view_delta.x, -delta_x, delta_x );
- delta.y = std::clamp( view_delta.y, -delta_y, delta_y );
-
- pixels = angle_to_pixels( delta );
- *x += pixels.x; *y += pixels.y;
- }
-
-
-
- void c_legitbot::triggerbot( user_cmd_t* cmd ) {
- static float time_at = 0.f;
-
- if( !g_settings.legit.triggerbot( ) )
- return;
-
- if( !g_input.is_key_pressed( ( VirtualKeys_t )g_settings.legit.trigger_key( ) ) && !time_at ) // sometimes people will let go of their triggerbot key too quickly and will cause them to not shoot.
- return;
-
- vec3_t viewangles{ };
- vec3_t forward{ };
- cl.m_engine( )->GetViewAngles( viewangles );
-
- auto wep = g_ctx.m_local->get_active_weapon( );
- if( !wep ) return;
- if( wep->is_non_aim( ) ) return;
-
-
- const float length = wep->get_distance( );
- const float current_time = TICKS_TO_TIME( cl.m_globals->tickcount );
-
- if( time_at && abs( current_time - time_at ) > 0.3f ) {
- time_at = 0.f; // delta too big
- }
-
- if( length > 1.0f ) {
- if( !time_at ) {
-
- forward = math::angle_vectors( viewangles );
- forward *= length;
-
- vec3_t src = g_ctx.m_local->get_eye_pos( );
- vec3_t dst = src + forward;
-
- CTraceFilter filter{ };
- CGameTrace tr{ };
- Ray_t ray{ };
-
- filter.pSkip = g_ctx.m_local;
- ray.Init( src, dst );
-
- cl.m_trace( )->trace_ray( ray, MASK_SHOT, &filter, &tr );
-
- if( tr.m_pEnt ) {
- auto ent = tr.m_pEnt->as< c_base_player >( );
- if( ent->is_valid( ) ) {
- if( ent->get_team( ) != g_ctx.m_local->get_team( ) || g_settings.legit.friendlies ) {
- time_at = current_time;
- }
- }
- }
- }
-
- if( time_at ) {
- if( ( current_time - time_at ) >= g_settings.legit.trigger_delay( ) ) {
- cmd->m_buttons |= IN_ATTACK;
- time_at = 0.f;
- }
- }
- }
- }
-
- void c_legitbot::sample_angle_data( const vec3_t& cur_angles ) {
- auto time = cl.m_globals->curtime;
-
- if( !m_aiming ) {
- m_angle_samples.push_front( { cur_angles, time } );
- }
-
- while( m_angle_samples.size( ) > g_settings.legit.sample_size( ) ) {
- m_angle_samples.pop_back( );
- }
- }
-
- float c_legitbot::get_avg_delta( ) {
- if( m_angle_samples.empty( ) )
- return 0.f;
-
- float avg_delta{ };
-
- for( auto& it : m_angle_samples ) {
- static vec3_t last_angle = it.m_viewangles;
-
- //doing this implements nonsticky aswell
- //once you already are at the target
- //after lets say a flick
- //it will reduce the aim speed
- //making it not "stick" to the bone
- //as we dont store records when aiming
- float time_delta = cl.m_globals->curtime - it.m_time;
- float delta_diff = m_deltatime / ( time_delta * 2.f );
-
- vec3_t angle_delta = ( last_angle - it.m_viewangles ).clamp( );
- float delta_length = angle_delta.length( ) * delta_diff;
-
- avg_delta += delta_length;
- last_angle = it.m_viewangles;
- }
-
- //scale the delta down
- return avg_delta / float( g_settings.legit.sample_size( ) );
- }
-
- vec2_t c_legitbot::angle_to_pixels( const vec3_t& angle ) {
- static auto m_yaw = cl.m_cvar( )->FindVar( xors( "m_yaw" ) );
- static auto m_pitch = cl.m_cvar( )->FindVar( xors( "m_pitch" ) );
-
- float x = angle.x / m_pitch->get_float( );
- float y = angle.y / m_yaw->get_float( );
-
- return vec2_t( -y, x );
- }
-
- vec3_t c_legitbot::pixels_to_angle( const vec2_t& pixel ) {
- static auto m_yaw = cl.m_cvar( )->FindVar( xors( "m_yaw" ) );
- static auto m_pitch = cl.m_cvar( )->FindVar( xors( "m_pitch" ) );
-
- float x = pixel.x * m_pitch->get_float( );
- float y = pixel.y * m_yaw->get_float( );
-
- return vec3_t( -y, x, 0.f ).clamp( );
- }
-
- bool c_legitbot::update_settings( ) {
- if( !g_ctx.run_frame( ) ) return false;
-
- auto weapon = g_ctx.m_local->get_active_weapon( );
- if( !weapon ) return false;
-
- if( weapon->is_non_aim( ) ) {
- return false;
- }
-
- if( weapon->is_primary( ) ) {
- g_settings.legit.active = &g_settings.legit.primary;
- }
- else if( weapon->is_secondary( ) ) {
- g_settings.legit.active = &g_settings.legit.secondary;
- }
- else if( weapon->is_third( ) ) {
- g_settings.legit.active = &g_settings.legit.melee;
- }
-
-
- return true;
- }
-
- void c_legitbot::aim_at_target( c_base_player* target, float* x, float* y ) {
- vec3_t aim_ang;
- vec3_t cur_ang;
- vec3_t delta;
- vec2_t pixels;
- vec2_t mouse;
-
- cl.m_engine( )->GetViewAngles( cur_ang );
-
- if( g_settings.legit.backtracking( ) && m_lagcomp.find_best_record( target->ce( )->index( ) ) ) {
- aim_ang = math::vector_angles( g_ctx.m_local->get_eye_pos( ),
- m_lagcomp.get_backtracked_position( target->ce( )->index( ) ) ).clamp( );
- }
- else {
- aim_ang = math::vector_angles( g_ctx.m_local->get_eye_pos( ),
- target->get_hitbox_position( g_settings.legit.active->m_bone ) ).clamp( );
- }
-
-
- delta = ( aim_ang - cur_ang ).clamp( );
- float delta_length = delta.length( );
-
- if( delta_length ) {
- float final_time = delta_length / ( g_settings.legit.active->m_speed( ) / 100.f );
- m_curtime += m_deltatime;
-
- if( m_curtime > final_time ) {
- m_curtime = final_time;
- }
-
- float aim_progress = m_curtime / final_time;
- delta *= aim_progress;
- aim_ang = delta;
-
- pixels = angle_to_pixels( delta );
- *x += pixels.x;
- *y += pixels.y;
- }
- }
-
- void c_legitbot::aimbot( float* x, float* y ) {
- if( !g_settings.legit.enabled( ) ) return;
- if( !update_settings( ) ) return;
-
- m_aiming = false;
- static float old_time = cl.m_globals->curtime;
- float time = cl.m_globals->curtime;
-
- m_deltatime = time - old_time;
- if( g_settings.legit.dynamic_smoothing( ) ) {
- float avg_delta = get_avg_delta( ) * g_settings.legit.smooth_factor( );
- if( avg_delta > m_deltatime ) {
- m_deltatime = avg_delta;
- }
- }
-
- old_time = time;
-
- bool in_attack = false;
- if( g_settings.legit.activation_type == 0 )
- in_attack = true;
- if( g_settings.legit.activation_type == 1
- && g_input.is_key_pressed( ( VirtualKeys_t )g_settings.legit.key( ) ) ) {
- in_attack = true;
- }
-
- int target_index = get_aim_target( );
- auto target = cl.m_entlist( )->get_client_entity< c_base_player >( target_index );
-
- if( target_index != -1 ) {
- if( in_attack ) {
- m_aiming = true;
- aim_at_target( target, x, y );
- }
- if( g_settings.legit.assist ) {
- assist( target, x, y );
- }
- }
- else {
- m_curtime = 0;
- }
- }
-}
\ No newline at end of file diff --git a/tf2/aim.h b/tf2/aim.h deleted file mode 100644 index 82e4943..0000000 --- a/tf2/aim.h +++ /dev/null @@ -1,75 +0,0 @@ -#pragma once
-#include <deque>
-#include <chrono>
-
-#include "sdk.h"
-
-namespace features
-{
- class c_legitbot {
- public:
- void operator()( float* x, float* y ) {
- aimbot( x, y );
- }
-
- //call once per tick
- void sample_angle_data( const vec3_t& angle );
- void triggerbot( user_cmd_t* cmd );
-
- private:
- struct aim_record_t {
- vec3_t m_viewangles;
- float m_time;
- };
-
- struct lag_record_t {
- int m_tickcount{ };
- vec3_t m_position{ };
- matrix3x4 m_matrix[ 128 ]{ };
-
- bool is_valid( );
- };
- class c_lagcomp {
- public:
- friend class c_legitbot;
- using lag_deque_t = std::deque< lag_record_t >;
-
- lag_record_t* find_best_record( int ent_index );
- vec3_t get_backtracked_position( int ent_index );
- auto& get_records( int ent_index ) {
- return m_data[ ent_index ];
- }
-
- void store( );
- void operator()( user_cmd_t* cmd );
-
- private:
- bool backtrack_entity( int ent_index );
- bool can_backtrack_entity( int ent_index );
- void store_player( int ent_index );
-
- lag_deque_t m_data[ 65 ];
- user_cmd_t* m_cmd;
- };
-
- vec2_t angle_to_pixels( const vec3_t& angle );
- vec3_t pixels_to_angle( const vec2_t& pixel );
- void aimbot( float* x, float* y );
- void assist( c_base_player* player, float* x, float* y );
- void aim_at_target( c_base_player*, float*, float* );
-
- bool update_settings( );
- float get_avg_delta( );
- int get_aim_target( float fov = 0.f );
-
- private:
- float m_deltatime{ };
- float m_curtime{ };
- bool m_aiming{ };
-
- std::deque< aim_record_t > m_angle_samples;
-
- public:
- c_lagcomp m_lagcomp;
- };
-}
\ No newline at end of file diff --git a/tf2/aim_lagcomp.cpp b/tf2/aim_lagcomp.cpp deleted file mode 100644 index e3b5486..0000000 --- a/tf2/aim_lagcomp.cpp +++ /dev/null @@ -1,150 +0,0 @@ -#include "aim.h"
-#include "interfaces.h"
-#include "ctx.hpp"
-#include "settings.h"
-#include "math.h"
-#include "base_cheat.h"
-#include "input_system.hpp"
-#include "d3d.hpp"
-
-namespace features
-{
- bool c_legitbot::lag_record_t::is_valid( ) {
- return util::is_tick_valid( m_tickcount );
- }
-
- void c_legitbot::c_lagcomp::store_player( int ent_index ) {
- auto ent = cl.m_entlist( )->get_client_entity< c_base_player >( ent_index );
- vec3_t pos = ent->get_hitbox_position( 0 );
- int tickcount = TIME_TO_TICKS( ent->m_flSimulationTime( ) );
-
- lag_record_t new_record;
- if( ent->ce( )->setup_bones( new_record.m_matrix, 128, 0x100, 0.f ) ) {
- new_record.m_position = pos;
- new_record.m_tickcount = tickcount;
-
- m_data[ ent_index ].push_front( new_record );
- }
-
- while( !m_data[ ent_index ].empty( ) &&
- ( m_data[ ent_index ].size( ) > TIME_TO_TICKS( 1.0f ) ) ) {
- m_data[ ent_index ].pop_back( );
- }
- }
-
- bool c_legitbot::c_lagcomp::can_backtrack_entity( int ent_index ) {
- if( m_data[ ent_index ].empty( ) ) {
- return false;
- }
-
- for( auto& it : m_data[ ent_index ] ) {
- if( it.is_valid( ) ) return true;
- }
-
- return false;
- }
-
- c_legitbot::lag_record_t* c_legitbot::c_lagcomp::find_best_record( int ent_index ) {
- c_legitbot::lag_record_t* best_record = nullptr;
- float best_fov{ g_settings.legit.backtracking_fov( ) };
- vec3_t cur_angle;
- vec3_t aim_angle;
- vec3_t aim_pos;
- vec3_t cur_pos;
- int cur_tick;
-
- if( m_data[ ent_index ].empty( ) ) {
- return nullptr;
- }
-
- cl.m_engine( )->GetViewAngles( cur_angle );
- cur_pos = g_ctx.m_local->get_eye_pos( );
- cur_tick = cl.m_globals->tickcount;
-
- for( auto& it : m_data[ ent_index ] ) {
- int delta = std::abs( cur_tick - it.m_tickcount );
-
- auto nci = cl.m_engine( )->GetNetChannelInfo( );
- if( nci ) {
- float max_latency = g_settings.legit.backtracking_time + nci->GetLatency( 0 );
- if( delta > TIME_TO_TICKS( max_latency ) )
- continue;
- }
-
-
- if( !it.is_valid( ) )
- continue;
-
- aim_pos = it.m_position;
- aim_angle = math::vector_angles( cur_pos, aim_pos ).clamp( );
-
- float fov = ( cur_angle - aim_angle ).clamp( ).length2d( );
- if( fov < best_fov ) {
- best_fov = fov;
- best_record = ⁢
- }
- }
-
- return best_record;
- }
-
- vec3_t c_legitbot::c_lagcomp::get_backtracked_position( int ent_index ) {
- if( !m_data[ ent_index ].size( ) ) return vec3_t( );
- auto lag_record = find_best_record( ent_index );
-
- vec3_t last_position{ };
- for( auto& it : util::reverse_iterator( m_data[ ent_index ] ) ) {
- if( it.is_valid( ) ) last_position = it.m_position; break;
- }
-
- return lag_record ? lag_record->m_position : last_position;
- }
-
- void c_legitbot::c_lagcomp::store( ) {
- for( int i = 1; i < 65; ++i ) {
- auto ent = cl.m_entlist( )->get_client_entity< c_base_player >( i );
-
- if( ent && ent->is_valid( ) && ent != g_ctx.m_local ) {
- store_player( i );
- }
- else {
- m_data[ i ].clear( );
- }
- }
- }
-
- bool c_legitbot::c_lagcomp::backtrack_entity( int ent_index ) {
- if( !m_cmd ) return false;
-
- if( !can_backtrack_entity( ent_index ) ) return false;
-
- auto best_record = find_best_record( ent_index );
-
- if( best_record ) {
- m_cmd->m_tick_count = best_record->m_tickcount;
- return true;
- }
-
- return false;
- }
-
- void c_legitbot::c_lagcomp::operator()( user_cmd_t* cmd ) {
- if( !g_settings.legit.enabled( ) || !g_settings.legit.backtracking( ) )
- return;
-
- m_cmd = cmd;
- store( );
-
- auto target = g_cheat.aim.get_aim_target( g_settings.legit.backtracking_fov( ) );
- bool active = false;
-
- if( g_settings.legit.activation_type( ) == 0 )
- active = true;
- if( g_input.is_key_pressed( ( VirtualKeys_t )g_settings.legit.key( ) ) )
- active = true;
-
- if( active && target != -1 ) {
- backtrack_entity( target );
- }
- }
-}
\ No newline at end of file diff --git a/tf2/base_cheat.h b/tf2/base_cheat.h deleted file mode 100644 index 832386c..0000000 --- a/tf2/base_cheat.h +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once
-#include "aim.h"
-#include "movement.h"
-#include "prediction.h"
-#include "visuals.hpp"
-#include "chams.h"
-#include "identity.h"
-#include "extra.h"
-namespace tf2 {
- class c_base_cheat {
- public:
- features::c_legitbot aim;
- features::c_movement movement;
- features::c_prediction prediction;
- features::c_visuals visuals;
- features::c_chams chams;
- features::c_identity identity;
- features::c_extra extra;
- };
-}
-
-static tf2::c_base_cheat g_cheat;
\ No newline at end of file diff --git a/tf2/chams.cpp b/tf2/chams.cpp deleted file mode 100644 index fc5c060..0000000 --- a/tf2/chams.cpp +++ /dev/null @@ -1,321 +0,0 @@ -#include "chams.h"
-#include "interfaces.h"
-#include "d3d.hpp"
-#include "ctx.hpp"
-#include "hooks.h"
-#include "settings.h"
-
-static auto chams_mat = xors_raw( (
- R"("VertexLitGeneric"
-{
- "$basetexture" "vgui/white"
- "$model" "1"
- "$envmap" "env_cubemap"
- "$envmaptint" "[.3 .3 .3]"
- "$envmapcontrast" ".4"
- "$envmapsaturation" "1.0"
- "$flat" "0"
- "$nocull" "1"
- "$halflambert" "1"
- "$nofog" "1"
- "$ignorez" "0"
- "$znearer" "0"
- "$wireframe" "0"
- "$phong" "1"
- "$phongexponent" "255.0"
- "$normalmapalphaenvmask" "1"
- "$phongboost" "6.0"
- "$phongfresnelranges" "[0 0.5 1]"
- "$BasemapAlphaPhongMask" "1"
-})"
-) );
-
-static auto chams_mat_shine = xors_raw( (
- R"("VertexLitGeneric"
-{
- "$basetexture" "vgui/white"
- "$envmap" "env_cubemap"
- "$envmaptint" "[.3 .3 .3]"
- "$reflectivity" "[1.0 1.0 1.0]"
- "$envmapcontrast" ".4"
- "$envmapsaturation" "1.0"
- "$model" "1"
- "$flat" "0"
- "$nocull" "1"
- "$selfillum" "1"
- "$halflambert" "1"
- "$nofog" "1"
- "$ignorez" "0"
- "$znearer" "0"
- "$wireframe" "0"
-})"
-) );
-
-static auto chams_mat_flat = xors_raw( (
- R"("UnlitGeneric"
-{
- "$basetexture" "vgui/white"
- "$model" "1"
- "$flat" "1"
- "$nocull" "1"
- "$selfillum" "1"
- "$halflambert" "1"
- "$nofog" "1"
- "$ignorez" "0"
- "$znearer" "0"
- "$wireframe" "0"
-})"
-) );
-
-namespace features
-{
- void c_materials::make_cham_buffer( char* buf, int len, int type ) {
- switch( type ) {
- case 1:
- sprintf_s( buf, len - 1, chams_mat_flat.decrypt( ) );
- break;
- case 2:
- sprintf_s( buf, len - 1, chams_mat_shine.decrypt( ) );
- break;
- default:
- sprintf_s( buf, len - 1, chams_mat.decrypt( ) );
- }
- }
-
- void c_material::init( const char* name, const char* buf ) {
- m_keyvalues = new KeyValues( name );
- m_keyvalues->LoadFromBuffer( name, buf );
-
- // CreateMaterial already increments ref counter
- m_mat = cl.m_mat_system( )->CreateMaterial( name, m_keyvalues );
- }
-
- void c_material::destroy( ) {
- if( m_mat ) {
- m_mat->DecrementReferenceCount( );
- m_mat = nullptr;
- }
-
- if( m_keyvalues ) {
- delete m_keyvalues;
- m_keyvalues = nullptr;
- }
- }
-
- void c_materials::force_material( IMaterial* mat, fclr_t clr ) {
- if( !mat ) return;
-
- float col[ ] = { clr.r( ), clr.g( ), clr.b( ) };
- cl.m_render_view( )->SetBlend( clr.a( ) );
- cl.m_render_view( )->SetColorModulation( col );
-
- cl.m_model_render( )->ForcedMaterialOverride( mat );
- }
-
- void c_materials::initialize_materials( ) {
- char buffer[ 1024 ];
-
- make_cham_buffer( buffer, sizeof( buffer ), 0 );
- m_chams.init( xors( "chamsmat" ), buffer );
- memset( buffer, 0, 1024 );
-
- make_cham_buffer( buffer, sizeof( buffer ), 1 );
- m_chams_flat.init( xors( "chamsmat_flat" ), buffer );
- memset( buffer, 0, 1024 );
- m_initialized = true;
- }
-
- void c_materials::destroy_materials( ) {
- m_initialized = false;
-
- m_chams.destroy( );
- m_chams_flat.destroy( );
- }
-
- void c_materials::update_materials( ) {
- if( !m_initialized ) return;
- if( m_chams.m_mat->m_ref_count <= 0 ) return;
-
- static float last_reflectivity{ };
- static float last_shine{ };
- static KeyValues* reflectivity;
- static KeyValues* shine;
-
- if( !reflectivity ) {
- for( auto it = m_chams.m_keyvalues->m_pSub; !!it; it = it->m_pPeer ) {
- if( it->m_iDataType != 1 ) continue;
- if( strstr( it->m_sValue, xors( "[.3 .3 .3]" ) ) ) {
- reflectivity = it;
- }
- }
- }
-
- if( !shine ) {
- for( auto it = m_chams.m_keyvalues->m_pSub; !!it; it = it->m_pPeer ) {
- if( it->m_flValue == 6.0f )
- shine = it;
- }
- }
-
- if( reflectivity ) {
- if( last_reflectivity != g_settings.visuals.chams.reflectivity( ) ) {
- char buf[ 32 ];
- sprintf_s< 32 >( buf, xors( "[%1.1f %1.1f %1.1f]" ),
- g_settings.visuals.chams.reflectivity( ),
- g_settings.visuals.chams.reflectivity( ),
- g_settings.visuals.chams.reflectivity( ) );
-
- strcpy( reflectivity->m_sValue, buf );
- m_chams.m_mat->Refresh( );
- }
- last_reflectivity = g_settings.visuals.chams.reflectivity( );
- }
-
- if( shine ) {
- if( last_shine != g_settings.visuals.chams.shine( ) ) {
- shine->m_flValue = g_settings.visuals.chams.shine( ) * 100.f;
- m_chams.m_mat->Refresh( );
- }
- last_shine = g_settings.visuals.chams.shine( );
- }
- }
-
- void c_chams::d3d_render_chams( c_base_player* ent, int type, int v_index, uint32_t min_index, uint32_t num_vert, uint32_t start_index, uint32_t prim_count ) {
- static auto d3d_draw = cl.m_d3d->get_old_function< decltype( &hooks::d3d::draw ) >( 82 );
-
- int team = ent->m_iTeamNum( );
- clr_t visible_col = team == g_ctx.m_local->m_iTeamNum( ) ? g_settings.visuals.chams.color_visible_friendly( ) : g_settings.visuals.chams.color_visible_enemy( );
- clr_t hidden_col = team == g_ctx.m_local->m_iTeamNum( ) ? g_settings.visuals.chams.color_hidden_friendly( ) : g_settings.visuals.chams.color_hidden_enemy( );
-
- if( team == g_ctx.m_local->m_iTeamNum( ) && !g_settings.visuals.chams.friendlies )
- return;
-
- fclr_t fcol_vis = visible_col.to_fclr( );
- float value_vis[ 4 ] = { fcol_vis.r( ), fcol_vis.g( ), fcol_vis.b( ), fcol_vis.a( ) };
-
- fclr_t fcol_hid = hidden_col.to_fclr( );
- float value_hid[ 4 ] = { fcol_hid.r( ), fcol_hid.g( ), fcol_hid.b( ), fcol_hid.a( ) };
-
- float def[ 4 ] = { 1.f, 1.f, 1.f, 1.f };
-
- IDirect3DBaseTexture9* prev_texture;
- IDirect3DSurface9* prev_surface;
- ulong_t z_enable;
-
- g_d3d.get_device( )->GetTexture( 0, &prev_texture );
- g_d3d.get_device( )->GetRenderTarget( 0, &prev_surface );
- g_d3d.get_device( )->GetRenderState( D3DRS_ZENABLE, &z_enable );
-
- auto hr = g_d3d.get_device( )->SetRenderTarget( 0, g_d3d.m_surface );
-
- //printf( "hr: %08x\n", hr );
-
- if( g_settings.visuals.chams.ignore_z ) {
- g_d3d.get_device( )->SetRenderState( D3DRS_ZENABLE, false );
- g_d3d.get_device( )->SetPixelShaderConstantF( 0, value_hid, 1 );
- g_d3d.get_device( )->SetPixelShaderConstantF( 1, value_hid, 1 );
- //g_d3d.get_device( )->SetTexture( 0, nullptr );
- d3d_draw( g_d3d.get_device( ), ( D3DPRIMITIVETYPE )type, v_index, min_index, num_vert, start_index, prim_count );
- }
-
- g_d3d.get_device( )->SetRenderState( D3DRS_ZENABLE, z_enable );
- g_d3d.get_device( )->SetPixelShaderConstantF( 0, value_hid, 1 );
- g_d3d.get_device( )->SetPixelShaderConstantF( 1, value_vis, 1 );
- //g_d3d.get_device( )->SetTexture( 0, nullptr );
-
- d3d_draw( g_d3d.get_device( ), ( D3DPRIMITIVETYPE )type, v_index, min_index, num_vert, start_index, prim_count );
-
- g_d3d.get_device( )->SetPixelShaderConstantF( 0, def, 1 );
- g_d3d.get_device( )->SetPixelShaderConstantF( 1, def, 1 );
- g_d3d.get_device( )->SetRenderTarget( 0, prev_surface );
- g_d3d.get_device( )->SetRenderState( D3DRS_ZENABLE, z_enable );
-
- g_d3d.get_device( )->SetTexture( 0, prev_texture );
-
- if( prev_texture )
- prev_texture->Release( );
-
- if( prev_surface )
- prev_surface->Release( );
- }
-
- void c_chams::d3d_render_textures( ) {
- if( !g_d3d.m_sil_txt )
- return;
-
- IDirect3DSurface9* backbuffer;
- D3DSURFACE_DESC desc;
-
- g_d3d.get_device( )->GetRenderTarget( 0, &backbuffer );
- backbuffer->GetDesc( &desc );
- //backbuffer->Release( );
-
- struct tex_vertex {
- float x, y, z, r, h, w;
- };
-
- tex_vertex v[ ] = {
- { 0.f, 0.f, 0.f, 1.0f, 0.f, 0.f },
- { ( float )desc.Width, 0.f, 0.f, 1.0f, 1.0f, 0.f },
- { 0.f, ( float )desc.Height, 0.f, 1.0f, 0.0f, 1.0f },
- { ( float )desc.Width, ( float )desc.Height, 0.f, 1.0f, 1.0f, 1.0f }
- };
-
- void* p;
-
- g_d3d.m_buffer->Lock( 0, 0, &p, 0 );
- memcpy( p, v, sizeof( v ) );
- g_d3d.m_buffer->Unlock( );
-
- void* pixel_shader;
- void* texture;
- void* stream_src;
- uint32_t stride;
- uint32_t offset;
- ulong_t fvf;
- ulong_t dest_blend;
- ulong_t alpha_blend;
-
- g_d3d.get_device( )->GetPixelShader( ( IDirect3DPixelShader9** )&pixel_shader );
- g_d3d.get_device( )->GetTexture( 0, ( IDirect3DBaseTexture9** )&texture );
- g_d3d.get_device( )->GetStreamSource( 0, ( IDirect3DVertexBuffer9** )&stream_src, &offset, &stride );
- g_d3d.get_device( )->GetFVF( &fvf );
- g_d3d.get_device( )->GetRenderState( D3DRS_DESTBLEND, &dest_blend );
- g_d3d.get_device( )->GetRenderState( D3DRS_ALPHABLENDENABLE, &alpha_blend );
-
- g_d3d.get_device( )->SetRenderTarget( 0, g_d3d.m_surface );
- g_d3d.get_device( )->SetFVF( D3DFVF_XYZRHW | D3DFVF_TEX1 );
- g_d3d.get_device( )->SetPixelShader( nullptr );
- g_d3d.get_device( )->SetTexture( 0, g_d3d.m_sil_txt );
- g_d3d.get_device( )->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
- g_d3d.get_device( )->SetRenderState( D3DRS_ALPHABLENDENABLE, true );
-
- g_d3d.get_device( )->SetStreamSource( 0, g_d3d.m_buffer, 0, sizeof( tex_vertex ) );
- g_d3d.get_device( )->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );
-
- //D3DXSaveSurfaceToFileA( "backbuffer_1.bmp", D3DXIFF_BMP, backbuffer, 0, 0 );
- //D3DXSaveSurfaceToFileA( "backbuffer_2.bmp", D3DXIFF_BMP, g_d3d.m_surface, 0, 0 );
-
-
- D3DRECT bar_rect{ };
- D3DCOLOR col{ };
-
- bar_rect.x1 = 0;
- bar_rect.y1 = 0;
- bar_rect.x2 = desc.Width;
- bar_rect.y2 = desc.Height;
-
- g_d3d.get_device( )->SetPixelShader( ( IDirect3DPixelShader9* )pixel_shader );
- g_d3d.get_device( )->SetTexture( 0, ( IDirect3DTexture9* )texture );
- g_d3d.get_device( )->SetRenderState( D3DRS_DESTBLEND, dest_blend );
- g_d3d.get_device( )->SetRenderState( D3DRS_ALPHABLENDENABLE, alpha_blend );
- g_d3d.get_device( )->SetStreamSource( 0, ( IDirect3DVertexBuffer9* )stream_src, offset, stride );
- g_d3d.get_device( )->SetFVF( fvf );
-
- //g_d3d.get_device( )->Clear( 1, &bar_rect, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, col, 0, 0 );
- g_d3d.get_device( )->SetRenderTarget( 0, backbuffer );
- backbuffer->Release( );
-
-
- }
-}
\ No newline at end of file diff --git a/tf2/chams.h b/tf2/chams.h deleted file mode 100644 index 4fdc74b..0000000 --- a/tf2/chams.h +++ /dev/null @@ -1,49 +0,0 @@ -#pragma once
-
-#include "sdk.h"
-
-namespace features
-{
- enum ChamBufferType_t {
- TYPE_NORMAL,
- TYPE_FLAT,
- TYPE_SHINE
- };
-
- class c_material {
- public:
- c_material( ) = default;
-
- void init( const char* mat, const char* buf );
- void destroy( );
-
- operator IMaterial*( ) {
- return m_mat;
- }
-
- public:
- IMaterial * m_mat;
- KeyValues* m_keyvalues;
- };
-
- class c_materials {
- public:
- c_material m_chams{ };
- c_material m_chams_flat{ };
-
- void make_cham_buffer( char* buf, int len, int type ); //type, 0 = normal, 1 = flat, 2 = shine
- public:
- void initialize_materials( );
- void destroy_materials( );
- void force_material( IMaterial* material, fclr_t color );
- void update_materials( );
- bool m_initialized{ };
- };
-
- class c_chams {
- public:
- c_materials m_materials;
- void d3d_render_textures( );
- void d3d_render_chams( c_base_player* ent, int type, int v_index, uint32_t min_index, uint32_t num_vert, uint32_t start_index, uint32_t prim_count );
- };
-}
\ No newline at end of file diff --git a/tf2/checksum_crc.cpp b/tf2/checksum_crc.cpp deleted file mode 100644 index a2ac9e8..0000000 --- a/tf2/checksum_crc.cpp +++ /dev/null @@ -1,169 +0,0 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose: Generic CRC functions
-//
-//=============================================================================//
-
-
-#include "checksum_crc.h"
-
-#define CRC32_INIT_VALUE 0xFFFFFFFFUL
-#define CRC32_XOR_VALUE 0xFFFFFFFFUL
-
-#define NUM_BYTES 256
-static const CRC32_t pulCRCTable[ NUM_BYTES ] =
-{
- 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
- 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
- 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
- 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
- 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
- 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
- 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,
- 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
- 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
- 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
- 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,
- 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
- 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,
- 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
- 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
- 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
- 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,
- 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
- 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,
- 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
- 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
- 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
- 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,
- 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
- 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
- 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
- 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
- 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
- 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,
- 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
- 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,
- 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
- 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
- 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
- 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
- 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
- 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,
- 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
- 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
- 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
- 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,
- 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
- 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,
- 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
- 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
- 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
- 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,
- 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
- 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,
- 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
- 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
- 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
- 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,
- 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
- 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
- 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
- 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
- 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
- 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,
- 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
- 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,
- 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
- 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
- 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
-};
-
-void CRC32_Init( CRC32_t *pulCRC ) {
- *pulCRC = CRC32_INIT_VALUE;
-}
-
-void CRC32_Final( CRC32_t *pulCRC ) {
- *pulCRC ^= CRC32_XOR_VALUE;
-}
-
-CRC32_t CRC32_GetTableEntry( unsigned int slot ) {
- return pulCRCTable[ ( unsigned char )slot ];
-}
-
-void CRC32_ProcessBuffer( CRC32_t *pulCRC, const void *pBuffer, int nBuffer ) {
- CRC32_t ulCrc = *pulCRC;
- unsigned char *pb = ( unsigned char * )pBuffer;
- unsigned int nFront;
- int nMain;
-
-JustAfew:
-
- switch( nBuffer ) {
- case 7:
- ulCrc = pulCRCTable[ *pb++ ^ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
-
- case 6:
- ulCrc = pulCRCTable[ *pb++ ^ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
-
- case 5:
- ulCrc = pulCRCTable[ *pb++ ^ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
-
- case 4:
- ulCrc ^= *( CRC32_t * )pb;
- ulCrc = pulCRCTable[ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
- ulCrc = pulCRCTable[ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
- ulCrc = pulCRCTable[ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
- ulCrc = pulCRCTable[ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
- *pulCRC = ulCrc;
- return;
-
- case 3:
- ulCrc = pulCRCTable[ *pb++ ^ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
-
- case 2:
- ulCrc = pulCRCTable[ *pb++ ^ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
-
- case 1:
- ulCrc = pulCRCTable[ *pb++ ^ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
-
- case 0:
- *pulCRC = ulCrc;
- return;
- }
-
- // We may need to do some alignment work up front, and at the end, so that
- // the main loop is aligned and only has to worry about 8 byte at a time.
- //
- // The low-order two bits of pb and nBuffer in total control the
- // upfront work.
- //
- nFront = ( ( unsigned int )pb ) & 3;
- nBuffer -= nFront;
- switch( nFront ) {
- case 3:
- ulCrc = pulCRCTable[ *pb++ ^ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
- case 2:
- ulCrc = pulCRCTable[ *pb++ ^ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
- case 1:
- ulCrc = pulCRCTable[ *pb++ ^ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
- }
-
- nMain = nBuffer >> 3;
- while( nMain-- ) {
- ulCrc ^= *( CRC32_t * )pb;
- ulCrc = pulCRCTable[ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
- ulCrc = pulCRCTable[ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
- ulCrc = pulCRCTable[ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
- ulCrc = pulCRCTable[ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
- ulCrc ^= *( CRC32_t * )( pb + 4 );
- ulCrc = pulCRCTable[ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
- ulCrc = pulCRCTable[ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
- ulCrc = pulCRCTable[ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
- ulCrc = pulCRCTable[ ( unsigned char )ulCrc ] ^ ( ulCrc >> 8 );
- pb += 8;
- }
-
- nBuffer &= 7;
- goto JustAfew;
-}
diff --git a/tf2/checksum_crc.h b/tf2/checksum_crc.h deleted file mode 100644 index d95b4c5..0000000 --- a/tf2/checksum_crc.h +++ /dev/null @@ -1,30 +0,0 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose: Generic CRC functions
-//
-// $NoKeywords: $
-//=============================================================================//
-#ifndef CHECKSUM_CRC_H
-#define CHECKSUM_CRC_H
-#ifdef _WIN32
-#pragma once
-#endif
-
-typedef unsigned int CRC32_t;
-
-void CRC32_Init( CRC32_t *pulCRC );
-void CRC32_ProcessBuffer( CRC32_t *pulCRC, const void *p, int len );
-void CRC32_Final( CRC32_t *pulCRC );
-CRC32_t CRC32_GetTableEntry( unsigned int slot );
-
-inline CRC32_t CRC32_ProcessSingleBuffer( const void *p, int len ) {
- CRC32_t crc;
-
- CRC32_Init( &crc );
- CRC32_ProcessBuffer( &crc, p, len );
- CRC32_Final( &crc );
-
- return crc;
-}
-
-#endif // CHECKSUM_CRC_H
diff --git a/tf2/chl_createmove.cpp b/tf2/chl_createmove.cpp deleted file mode 100644 index 581ed25..0000000 --- a/tf2/chl_createmove.cpp +++ /dev/null @@ -1,93 +0,0 @@ -#include <intrin.h>
-
-#include "hooks.h"
-#include "mem.hpp"
-#include "interfaces.h"
-#include "ctx.hpp"
-#include "input_system.hpp"
-#include "math.h"
-#include "settings.h"
-#include "base_cheat.h"
-
-//YEA FUCK USING THIS EVEN THOUGH I HAVE IT RIGHT HERE
-
-//YEA VIVA LA REVOLUTION
-
-void __declspec( naked ) __stdcall hooks::hl_create_move_gate( int sequence_number, float input_sample_time, bool active ) {
- __asm {
- push ebp
- mov ebp, esp
- push ebx //push ebx (sendpacket) to the top of the stack
- push esp //push the stack (with sendpacket on top)
- push active
- push input_sample_time
- push sequence_number
- call hl_create_move
- pop ebx
- pop ebp
- ret 0xc
- }
-}
-
-void __fastcall hooks::hl_create_move( void* ecx_, void* edx_, int sequence_number, float input_sameple_frametime, bool active, byte& sendpacket ) {
- static auto create_move_o = cl.m_chl->get_old_function< void( __fastcall* )( void*, void*, int, float, bool ) >( 21 );
-
- user_cmd_t* ucmd = &cl.m_hl_input->m_pCommands[ sequence_number % MULTIPLAYER_BACKUP ];
- if( !ucmd )
- return;
-
- verified_cmd_t* verified_cmd = &cl.m_hl_input->m_pVerifiedCommands[ sequence_number % MULTIPLAYER_BACKUP ];
- if( !verified_cmd )
- return;
-
- // when switching to non automatic weapons, it will sometimes not shoot when aimbotting so we reset attack flag
- bool is_switching_weapon = false;
- if( cl.m_hl_input->m_hSelectedWeapon != -1 ) {
- is_switching_weapon = true;
- }
-
- cl.m_hl_input->CreateMove( sequence_number, input_sameple_frametime, active );
- //hl_create_move_o( ecx_, edx_, sequence_number, input_sample_time, active );
-
- if( !ucmd->m_tick_count || !ucmd->m_cmd_nr )
- return;
-
- // FIX ME NAVE
- // ok love
-
- byte* send_packet = &sendpacket;
-
- g_ctx.create_snapshot( ucmd );
- // soon g_cheat.m_identity( );
-
- if( g_ctx.run_frame( ) && g_ctx.m_local->is_alive( ) ) {
- static int last_frame = cl.m_globals->framecount;
- if( last_frame != cl.m_globals->framecount )
- g_ctx.m_has_fired_this_frame = false;
-
- last_frame = cl.m_globals->framecount;
-
- g_cheat.aim.sample_angle_data( ucmd->m_viewangles );
- g_cheat.prediction.run_prediction( ucmd );
- g_cheat.movement.update( ucmd );
-
- g_cheat.aim.m_lagcomp( ucmd );
- g_cheat.aim.triggerbot( ucmd );
-
- }
-
-
- if( is_switching_weapon ) {
- ucmd->m_buttons &= ~IN_ATTACK;
- }
-
- //m_bIsValveDS
- if( *( bool* )( c_base_player::get_game_rules( ) + 0x75 ) )
- g_settings.menu.anti_untrusted = true;
-
- ucmd->clamp( g_settings.menu.anti_untrusted );
-
- // crc stuff works, no double steps coming from this
- verified_cmd->m_cmd = *ucmd;
- verified_cmd->m_crc = ucmd->get_check_sum( );
-}
\ No newline at end of file diff --git a/tf2/clientmode_createmove.cpp b/tf2/clientmode_createmove.cpp deleted file mode 100644 index f86471e..0000000 --- a/tf2/clientmode_createmove.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include "hooks.h" -#include "interfaces.h" -#include "search.h" -#include "base_cheat.h" -#include <intrin.h> -#include "mem.hpp" -#define get_baseptr( ) ( ( uintptr_t )( _AddressOfReturnAddress( ) ) - sizeof( uintptr_t ) ) -bool __fastcall hooks::create_move( void *ecx_, void *edx_, float input_sample_time, user_cmd_t *ucmd ) { - static auto create_move_o = cl.m_clientmode->get_old_function< decltype( hooks::create_move )* >( 21 ); - - if( cl.m_panic || !ucmd->m_cmd_nr || !ucmd->m_tick_count ) {
- return create_move_o( ecx_, edx_, input_sample_time, ucmd );
- }
-
- // call from CInput::CreateMove, mimic what the engine does.
- cl.m_engine( )->SetViewAngles( ucmd->m_viewangles );
-
- // random_seed isn't generated in ClientMode::CreateMove yet (since CInput::CreateMove handles that), we must generate it ourselves.
- ucmd->m_random_seed = math::md5_pseudorandom( ucmd->m_cmd_nr ) & 0x7fffffff;
-
- //get sendpacket off the stack
- stack_t stack( get_baseptr( ) );
- byte *send_packet = stack.next( ).local< byte* >( 0x1C );
-
- g_ctx.create_snapshot( ucmd );
-
- cl.m_engine( )->SetViewAngles( ucmd->m_viewangles );
- g_ctx.calculate_tickbase( );
-
- //bool* send_packet = ***get_ebp< bool**** >( ) - 0x1;
-
- if( g_ctx.run_frame( ) && g_ctx.m_local->is_alive( ) ) {
- static int last_frame = cl.m_globals->framecount;
- if( last_frame != cl.m_globals->framecount )
- g_ctx.m_has_fired_this_frame = false;
-
- last_frame = cl.m_globals->framecount;
-
- g_cheat.aim.sample_angle_data( ucmd->m_viewangles );
- //g_cheat.prediction.run_prediction( ucmd );
- g_cheat.movement.update( ucmd );
-
- g_cheat.aim.m_lagcomp( ucmd );
- g_cheat.aim.triggerbot( ucmd );
-
-
-
- }
-
- - ucmd->clamp( ); - return false; -}
\ No newline at end of file diff --git a/tf2/color.hpp b/tf2/color.hpp deleted file mode 100644 index 5ea9454..0000000 --- a/tf2/color.hpp +++ /dev/null @@ -1,278 +0,0 @@ -#pragma once
-#include <cmath>
-#include <cinttypes>
-
-//this is a fucking mess
-
-class fclr_t {
- float R, G, B, A;
-public:
- fclr_t( ) : R( 0 ), G( 0 ), B( 0 ), A( 0 ) { }
-
- fclr_t( float r, float g, float b, float a ) : R( r ), G( g ), B( b ), A( a ) { }
-
- fclr_t( float r, float g, float b ) : R( r ), G( g ), B( b ), A( 255 ) { }
-
- float& r( ) { return R; }
- float& g( ) { return G; }
- float& b( ) { return B; }
- float& a( ) { return A; }
-
- fclr_t& operator =( fclr_t& c ) {
- R = c.r( );
- G = c.g( );
- B = c.b( );
- A = c.a( );
- return *this;
- }
-
- fclr_t operator+( const fclr_t& v ) const {
- return fclr_t( R + v.R, G + v.G, B + v.B, A + v.A );
- }
-
- explicit operator bool( ) const noexcept {
- return ( R > 0 || G > 0 || B > 0 || A > 0 );
- }
-
- bool operator==( fclr_t& c ) const {
- return ( R == c.r( ) && G == c.g( ) && B == c.b( ) );
- }
-};
-
-class clr_t {
- uint8_t R, G, B, A;
-public:
- clr_t( ) : R( 0 ), G( 0 ), B( 0 ), A( 0 ) { }
-
- clr_t( uint8_t r, uint8_t g, uint8_t b, uint8_t a ) : R( r ), G( g ), B( b ), A( a ) { }
-
- clr_t( uint8_t r, uint8_t g, uint8_t b ) : R( r ), G( g ), B( b ), A( 255 ) { }
-
- uint8_t& r( ) { return R; }
- uint8_t& g( ) { return G; }
- uint8_t& b( ) { return B; }
- uint8_t& a( ) { return A; }
-
- clr_t& operator =( clr_t& c ) {
- R = c.r( );
- G = c.g( );
- B = c.b( );
- A = c.a( );
- return *this;
- }
-
- clr_t operator+( const clr_t& v ) const {
- return clr_t( R + v.R, G + v.G, B + v.B, A + v.A );
- }
-
- clr_t operator*( float f ) {
- return clr_t( uint8_t( R * f ), uint8_t( G * f ), uint8_t( B * f ), A );
- }
-
- explicit operator bool( ) const noexcept {
- return ( R > 0 || G > 0 || B > 0 || A > 0 );
- }
-
- float brightness( ) {
- typedef struct {
- float h, s, v;
- } hsv;
- hsv out;
-
- float min = static_cast<float>( R < G ? R : G );
- min = static_cast<float>( min < B ? min : B );
-
- float max = static_cast<float>( R > G ? R : G );
- max = static_cast<float>( max > B ? max : B );
-
- out.v = max;
- float delta = max - min;
- if( delta < 0.0010f ) {
- out.s = 0.f;
- out.h = 0.f;
- return out.h;
- }
- if( max > 0.0f ) {
- out.s = delta / max;
- }
- else {
- out.s = 0.0f;
- out.h = NAN;
- return out.h;
- }
- if( R >= max )
- out.h = static_cast<float>( G - B ) / delta;
- else if( G >= max )
- out.h = 2.0f + static_cast<float>( B - R ) / delta;
- else
- out.h = 4.0f + static_cast<float>( R - G ) / delta;
-
- out.h *= 60.0f;
- out.h /= 360.f;
-
- if( out.h < 0.0f )
- out.h += 360.0f;
-
- return out.v;
- }
-
- float saturation( ) {
- typedef struct {
- float h, s, v;
- } hsv;
- hsv out;
-
- float min = static_cast<float>( R < G ? R : G );
- min = static_cast<float>( min < B ? min : B );
-
- float max = static_cast<float>( R > G ? R : G );
- max = static_cast<float>( max > B ? max : B );
-
- out.v = max;
- float delta = max - min;
- if( delta < 0.0010f ) {
- out.s = 0.f;
- out.h = 0.f;
- return out.h;
- }
- if( max > 0.0f ) {
- out.s = delta / max;
- }
- else {
- out.s = 0.0f;
- out.h = NAN;
- return out.h;
- }
- if( R >= max )
- out.h = static_cast<float>( G - B ) / delta;
- else if( G >= max )
- out.h = 2.0f + static_cast<float>( B - R ) / delta;
- else
- out.h = 4.0f + static_cast<float>( R - G ) / delta;
-
- out.h *= 60.0f;
- out.h /= 360.f;
-
- if( out.h < 0.0f )
- out.h += 360.0f;
-
- return out.s;
- }
-
- static clr_t from_hsb( float hue, float saturation, float brightness ) {
- float h = hue == 1.0f ? 0 : hue * 6.0f;
- float f = h - ( int )h;
- float p = brightness * ( 1.0f - saturation );
- float q = brightness * ( 1.0f - saturation * f );
- float t = brightness * ( 1.0f - ( saturation * ( 1.0f - f ) ) );
-
- if( h < 1 ) {
- return clr_t(
- ( unsigned char )( brightness * 255 ),
- ( unsigned char )( t * 255 ),
- ( unsigned char )( p * 255 )
- );
- }
- else if( h < 2 ) {
- return clr_t(
- ( unsigned char )( q * 255 ),
- ( unsigned char )( brightness * 255 ),
- ( unsigned char )( p * 255 )
- );
- }
- else if( h < 3 ) {
- return clr_t(
- ( unsigned char )( p * 255 ),
- ( unsigned char )( brightness * 255 ),
- ( unsigned char )( t * 255 )
- );
- }
- else if( h < 4 ) {
- return clr_t(
- ( unsigned char )( p * 255 ),
- ( unsigned char )( q * 255 ),
- ( unsigned char )( brightness * 255 )
- );
- }
- else if( h < 5 ) {
- return clr_t(
- ( unsigned char )( t * 255 ),
- ( unsigned char )( p * 255 ),
- ( unsigned char )( brightness * 255 )
- );
- }
- else {
- return clr_t(
- ( unsigned char )( brightness * 255 ),
- ( unsigned char )( p * 255 ),
- ( unsigned char )( q * 255 )
- );
- }
- }
-
- static clr_t blend( clr_t first, clr_t second, float t ) {
- return clr_t(
- first.r( ) + static_cast< int >( t * ( second.r( ) - first.r( ) ) ),
- first.g( ) + static_cast< int >( t * ( second.g( ) - first.g( ) ) ),
- first.b( ) + static_cast< int >( t * ( second.b( ) - first.b( ) ) ),
- first.a( ) + static_cast< int >( t * ( second.a( ) - first.a( ) ) )
- );
- }
-
- float hue( ) {
- typedef struct {
- float h, s, v;
- } hsv;
- hsv out;
- float min, max, delta;
-
- min = static_cast< float >( R < G ? R : G );
- min = static_cast< float >( min < B ? min : B );
-
- max = static_cast< float >( R > G ? R : G );
- max = static_cast< float >( max > B ? max : B );
-
- out.v = max;
- delta = max - min;
- if( delta < 0.0010f ) {
- out.s = 0.f;
- out.h = 0.f;
- return out.h;
- }
- if( max > 0.0f ) {
- out.s = ( delta / max );
- }
- else {
- out.s = 0.0f;
- out.h = ( float )NAN;
- return out.h;
- }
- if( R >= max )
- out.h = static_cast< float >( G - B ) / delta;
- else
- if( G >= max )
- out.h = 2.0f + static_cast< float >( B - R ) / delta;
- else
- out.h = 4.0f + static_cast< float >( R - G ) / delta;
-
- out.h *= 60.0f;
- out.h /= 360.f;
-
- if( out.h < 0.0f )
- out.h += 360.0f;
-
- return out.h;
- }
-
- fclr_t to_fclr( ) {
- return fclr_t{ R / 255.f, G / 255.f, B / 255.f, A / 255.f };
- }
-
- operator fclr_t( ) {
- return this->to_fclr( );
- }
-
- bool operator==( clr_t& c ) const {
- return ( R == c.r( ) && G == c.g( ) && B == c.b( ) );
- }
-};
\ No newline at end of file diff --git a/tf2/con_alias.hpp b/tf2/con_alias.hpp deleted file mode 100644 index c943c24..0000000 --- a/tf2/con_alias.hpp +++ /dev/null @@ -1,60 +0,0 @@ -#pragma once
-
-#include <string>
-#include "simple_settings.h"
-
-template< typename var_type = bool >
-class con_alias : public ISetting {
-public:
- con_alias( hash_t hash, con_var< var_type >* var ) :
- m_var( var ),
- m_value( var_type{ } ),
- m_name( hash ),
- m_is_var( true ) { };
-
- con_alias( hash_t hash ) :
- m_name( hash ),
- m_value( 0 ),
- m_var( nullptr ),
- m_is_var( false ) { };
-
- con_alias( hash_t hash, var_type&& rhs ) :
- m_name( hash ),
- m_value( rhs ),
- m_var( nullptr ),
- m_is_var( false ) { };
-
- virtual std::string get_string( ) override {
- if( m_is_var )
- return m_var->get_string( );
- else
- return std::to_string( m_value );
- }
-
- virtual void set_value( int value ) override {
- set_value_internal( value );
- }
-
- virtual void set_value( float value ) override {
- set_value_internal( value );
- }
-
- virtual void set_value( ulong_t value ) override {
- set_value_internal( value );
- }
-
-private:
- template < typename t >
- void set_value_internal( t&& val ) {
- if( m_is_var )
- m_var->set( val );
- else
- m_value = ( var_type )( val );
- }
-
-private:
- bool m_is_var;
- hash_t m_name;
- var_type m_value;
- con_var< var_type >* m_var;
-};
\ No newline at end of file diff --git a/tf2/con_fn.hpp b/tf2/con_fn.hpp deleted file mode 100644 index 3c06e9b..0000000 --- a/tf2/con_fn.hpp +++ /dev/null @@ -1,172 +0,0 @@ -#pragma once
-#include <functional>
-
-#include "simple_settings.h"
-
-//KEEP THIS UP TO DATE!!
-enum ConFnVarType_t {
- TYPE_NULL = 0,
- TYPE_FLOAT = 'F',
- TYPE_STRING = 'S',
- TYPE_INTEGER = 'D',
- TYPE_HEX = 'X'
-};
-
-class con_fn_base {
-public:
- virtual bool execute( const char* str ) = 0;
- virtual const char* get_syntax( ) = 0;
- virtual hash_t get_hash( ) = 0;
-};
-
-class con_fn : public con_fn_base {
-public:
- con_fn( hash_t hash, std::function< void __cdecl( const char*, const char* ) > function, const char* syntax ) {
- m_hash = hash;
- m_function = function;
- strcpy_s< 64 >( m_syntax, syntax );
- for( size_t i{ }; i < strlen( m_syntax ); ++i ) {
- if( m_syntax[ i ] == '%' ) {
- m_args++;
- }
- }
- }
-
- static ConFnVarType_t get_var_type( size_t arg, const char* syntax ) {
- size_t cur_arg = 0;
- for( size_t i{ }; i < strlen( syntax ); ++i ) {
- if( syntax[ i ] == '%' ) {
- if( cur_arg++ == arg ) {
- return ( ConFnVarType_t )( syntax[ i + 1 ] );
- }
- }
- }
-
- return TYPE_NULL;
- }
-
- template < typename t >
- static t get_arg( const char* str, size_t arg_index, const char* syntax ) {
- auto arg_type = get_var_type( arg_index, syntax );
-
- size_t cur_arg = 0;
- for( size_t i{ }; i < strlen( str ); ++i ) {
- if( str[ i ] == ' ' ) {
- if( cur_arg++ == arg_index ) {
- size_t start = i + 1;
- size_t end = strlen( str );
- for( size_t i2 = start; i2 < strlen( str ); ++i2 ) {
- if( str[ i2 ] == ' ' ) {
- end = i2;
- break;
- }
- }
-
- std::string str( str + start, end - start );
-
- char* end_ptr = ( char* )str.c_str( ) + end;
- if constexpr( std::is_integral_v< t > ) {
- auto radix = get_var_type( arg_index, syntax ) == TYPE_HEX ? 16 : 10;
- return std::strtol( str.c_str( ), &end_ptr, radix );
- }
-
- if constexpr( std::is_floating_point_v< t > ) {
- return std::strtof( str.c_str( ), &end_ptr );
- }
-
- return ( t )str.c_str( );
- }
- }
- }
-
- return t{ };
- }
-
- virtual const char* get_syntax( ) override {
- return m_syntax;
- }
-
- virtual hash_t get_hash( ) override {
- return m_hash;
- }
-
- ConFnVarType_t get_var_type( size_t arg ) {
- size_t cur_arg = 0;
- for( size_t i{ }; i < strlen( m_syntax ); ++i ) {
- if( m_syntax[ i ] == '%' ) {
- if( cur_arg++ == arg ) {
- return ( ConFnVarType_t )( m_syntax[ i + 1 ] );
- }
- }
- }
-
- return TYPE_NULL;
- }
-
- //returns false on failed execution
- virtual bool execute( const char* str ) override {
- size_t arg_count{ };
- for( size_t i{ }; i < strlen( str ); ++i ) {
- if( str[ i ] == ' ' ) {
- arg_count++;
- }
- }
-
- if( arg_count != m_args ) {
- return false;
- }
-
- std::string pass_str( " " );
-
- size_t cur_arg = 0;
- for( size_t i{ }; i < strlen( str ); ++i ) {
- if( str[ i ] == ' ' ) {
- size_t end = strlen( str );
- for( size_t i2 = i + 2; i2 < strlen( str ); ++i2 ) {
- if( str[ i2 ] == ' ' ) {
- end = i2;
- }
- }
-
- char* end_ptr = ( char* )( str + i + end );
- switch( get_var_type( cur_arg ) ) {
- case TYPE_FLOAT: {
- pass_str += std::to_string( strtof( str + i, &end_ptr ) );
- break;
- }
- case TYPE_INTEGER: {
- pass_str += std::to_string( strtol( str + i, &end_ptr, 10 ) );
- break;
- }
- case TYPE_HEX: {
- char buf[ 10 ];
- sprintf_s< 10 >( buf, "%08x", strtol( str + i, &end_ptr, 16 ) );
- pass_str += buf;
- break;
- }
- case TYPE_STRING: {
- std::string add_str( str + i, end - i );
- pass_str += add_str;
- break;
- }
- default:
- return false;
- }
-
- if( end != strlen( str ) ) {
- pass_str += ' ';
- }
- ++cur_arg;
- }
- }
-
- m_function( pass_str.c_str( ), m_syntax );
- return true;
- }
-
-private:
- hash_t m_hash{ };
- size_t m_args{ };
- char m_syntax[ 64 ]{ };
- std::function< void( __cdecl )( const char*, const char* ) > m_function{ };
-};
\ No newline at end of file diff --git a/tf2/conditions.h b/tf2/conditions.h deleted file mode 100644 index 331ad6d..0000000 --- a/tf2/conditions.h +++ /dev/null @@ -1,106 +0,0 @@ -#pragma once
-
-enum MoveType_t {
- MOVETYPE_NONE = 0,
- MOVETYPE_ISOMETRIC,
- MOVETYPE_WALK,
- MOVETYPE_STEP,
- MOVETYPE_FLY,
- MOVETYPE_FLYGRAVITY,
- MOVETYPE_VPHYSICS,
- MOVETYPE_PUSH,
- MOVETYPE_NOCLIP,
- MOVETYPE_LADDER,
- MOVETYPE_OBSERVER,
- MOVETYPE_CUSTOM,
-
- MOVETYPE_LAST = MOVETYPE_CUSTOM,
-
- MOVETYPE_MAX_BITS = 4,
-};
-
-enum TFConditions_t {
- TFCond_Slowed = ( 1 << 0 ),
- TFCond_Zoomed = ( 1 << 1 ),
- TFCond_Disguising = ( 1 << 2 ),
- TFCond_Disguised = ( 1 << 3 ),
- TFCond_Cloaked = ( 1 << 4 ),
- TFCond_Ubercharged = ( 1 << 5 ),
- TFCond_TeleportedGlow = ( 1 << 6 ),
- TFCond_Taunting = ( 1 << 7 ),
- TFCond_UberchargeFading = ( 1 << 8 ),
- TFCond_CloakFlicker = ( 1 << 9 ),
- TFCond_Teleporting = ( 1 << 10 ),
- TFCond_Kritzkrieged = ( 1 << 11 ),
- TFCond_TmpDamageBonus = ( 1 << 12 ),
- TFCond_DeadRingered = ( 1 << 13 ),
- TFCond_Bonked = ( 1 << 14 ),
- TFCond_Stunned = ( 1 << 15 ),
- TFCond_Buffed = ( 1 << 16 ),
- TFCond_Charging = ( 1 << 17 ),
- TFCond_DemoBuff = ( 1 << 18 ),
- TFCond_CritCola = ( 1 << 19 ),
- TFCond_InHealRadius = ( 1 << 20 ),
- TFCond_Healing = ( 1 << 21 ),
- TFCond_OnFire = ( 1 << 22 ),
- TFCond_Overhealed = ( 1 << 23 ),
- TFCond_Jarated = ( 1 << 24 ),
- TFCond_Bleeding = ( 1 << 25 ),
- TFCond_DefenseBuffed = ( 1 << 26 ),
- TFCond_Milked = ( 1 << 27 ),
- TFCond_MegaHeal = ( 1 << 28 ),
- TFCond_RegenBuffed = ( 1 << 29 ),
- TFCond_MarkedForDeath = ( 1 << 30 ),
- TFCond_NoHealingDamageBuff = ( 1 << 31 ),
-
- TFCondEx_SpeedBuffAlly = ( 1 << 0 ),
- TFCondEx_HalloweenCritCandy = ( 1 << 1 ),
- TFCondEx_CritCanteen = ( 1 << 2 ),
- TFCondEx_CritDemoCharge = ( 1 << 3 ),
- TFCondEx_CritHype = ( 1 << 4 ),
- TFCondEx_CritOnFirstBlood = ( 1 << 5 ),
- TFCondEx_CritOnWin = ( 1 << 6 ),
- TFCondEx_CritOnFlagCapture = ( 1 << 7 ),
- TFCondEx_CritOnKill = ( 1 << 8 ),
- TFCondEx_RestrictToMelee = ( 1 << 9 ),
- TFCondEx_DefenseBuffNoCritBlock = ( 1 << 10 ),
- TFCondEx_Reprogrammed = ( 1 << 11 ),
- TFCondEx_PyroCrits = ( 1 << 12 ),
- TFCondEx_PyroHeal = ( 1 << 13 ),
- TFCondEx_FocusBuff = ( 1 << 14 ),
- TFCondEx_DisguisedRemoved = ( 1 << 15 ),
- TFCondEx_MarkedForDeathSilent = ( 1 << 16 ),
- TFCondEx_DisguisedAsDispenser = ( 1 << 17 ),
- TFCondEx_Sapped = ( 1 << 18 ),
- TFCondEx_UberchargedHidden = ( 1 << 19 ),
- TFCondEx_UberchargedCanteen = ( 1 << 20 ),
- TFCondEx_HalloweenBombHead = ( 1 << 21 ),
- TFCondEx_HalloweenThriller = ( 1 << 22 ),
- TFCondEx_BulletCharge = ( 1 << 26 ),
- TFCondEx_ExplosiveCharge = ( 1 << 27 ),
- TFCondEx_FireCharge = ( 1 << 28 ),
- TFCondEx_BulletResistance = ( 1 << 29 ),
- TFCondEx_ExplosiveResistance = ( 1 << 30 ),
- TFCondEx_FireResistance = ( 1 << 31 ),
-
- TFCondEx2_Stealthed = ( 1 << 0 ),
- TFCondEx2_MedigunDebuff = ( 1 << 1 ),
- TFCondEx2_StealthedUserBuffFade = ( 1 << 2 ),
- TFCondEx2_BulletImmune = ( 1 << 3 ),
- TFCondEx2_BlastImmune = ( 1 << 4 ),
- TFCondEx2_FireImmune = ( 1 << 5 ),
- TFCondEx2_PreventDeath = ( 1 << 6 ),
- TFCondEx2_MVMBotRadiowave = ( 1 << 7 ),
- TFCondEx2_HalloweenSpeedBoost = ( 1 << 8 ),
- TFCondEx2_HalloweenQuickHeal = ( 1 << 9 ),
- TFCondEx2_HalloweenGiant = ( 1 << 10 ),
- TFCondEx2_HalloweenTiny = ( 1 << 11 ),
- TFCondEx2_HalloweenInHell = ( 1 << 12 ),
- TFCondEx2_HalloweenGhostMode = ( 1 << 13 ),
- TFCondEx2_Parachute = ( 1 << 16 ),
- TFCondEx2_BlastJumping = ( 1 << 17 ),
-
- TFCond_MiniCrits = ( TFCond_Buffed | TFCond_CritCola ),
- TFCond_IgnoreStates = ( TFCond_Ubercharged | TFCond_Bonked ),
- TFCondEx_IgnoreStates = ( TFCondEx_PyroHeal )
-};
\ No newline at end of file diff --git a/tf2/console.cpp b/tf2/console.cpp deleted file mode 100644 index 121c57a..0000000 --- a/tf2/console.cpp +++ /dev/null @@ -1,324 +0,0 @@ -#include "console.hpp"
-#include "interfaces.h"
-#include "settings.h"
-#include "d3d.hpp"
-#include "ui_draw.h"
-
-std::shared_ptr< console > g_con = std::make_shared< console >( );
-
-
-void console::draw_text( int x, int y, bool greyed, const char* fmt, ... ) {
- va_list args;
- char buf[ 512 ];
-
- __crt_va_start( args, fmt );
- vsprintf_s< 512 >( buf, fmt, args );
- __crt_va_end( args );
-
- g_d3d.draw_text< ALIGN_LEFT >( d3d::fonts.f_con, greyed ? clr_t( 160, 160, 160 ) : clr_t( 255, 255, 255 ), x, y, D3DFONTFLAG_DROPSHADOW, "%s", buf );
- //g_d3d.draw_text< ALIGN_LEFT >( d3d::fonts.f_con, greyed ? clr_t( 160, 160, 160 ) : clr_t( 255, 255, 255 ), x, y, D3DFONTFLAG_DROPSHADOW, buf );
-}
-
-void console::draw_text( int x, int y, const char* fmt, ... ) {
- va_list args;
- char buf[ 512 ];
-
- __crt_va_start( args, fmt );
- vsprintf_s< 512 >( buf, fmt, args );
- __crt_va_end( args );
-
- g_d3d.draw_text< ALIGN_LEFT >( d3d::fonts.f_con, clr_t( 255, 255, 255 ), x, y, D3DFONTFLAG_DROPSHADOW, buf );
-}
-
-void console::draw_rect( int x, int y, int w, int h, clr_t col ) {
- g_d3d.draw_filled_rect( col, x, y, w, h );
-}
-
-void console::register_alias( std::shared_ptr< ISetting >& alias ) {
- m_aliases.push_back( alias );
-}
-
-void console::capture_command( ) {
- float current_time = GetTickCount( ) * 0.001f;
- size_t length = strlen( m_cur_cmd );
-
- for( size_t i{ }; i < 0xfe; ++i ) {
- if( m_input->is_key_pressed( i ) ) {
- float delta_time = current_time - m_last_key_input[ i ];
- if( fabs( delta_time ) > 0.2f ) {
- if( i == KEYS_BACK ) {
- m_cur_cmd[ length - 1 ] = 0;
- m_last_key_input[ i ] = current_time;
- continue;
- }
-
- m_key_states[ i ] = 0xf0;
- wchar_t pressed_char;
- const auto scan = MapVirtualKeyA( i, 2 );
- auto ret = ToAscii( i, scan, ( BYTE* )m_key_states, ( LPWORD )&pressed_char, 1 );
-
- if( ret == 1 ) {
- if( length < 200 ) {
- m_cur_cmd[ length ] = ( char )( pressed_char );
- m_cur_cmd[ length + 1 ] = 0;
- }
- }
- m_last_key_input[ i ] = current_time;
- }
- }
- else {
- m_last_key_input[ i ] = 0.f;
- m_key_states[ i ] = 0;
- }
- }
-}
-
-ISetting* console::find_var( hash_t var ) {
- for( auto& it : data::holder_.get_nodes( ) ) {
- auto setting = static_cast< ISetting* >( it );
- if( var == setting->get_hash( ) ) {
- return setting;
- }
- }
-
- return nullptr;
-}
-
-ISetting* console::find_alias( hash_t alias ) {
- for( auto& it : m_aliases ) {
- if( it->get_hash( ) == alias )
- return it.get( );
- }
-
- return nullptr;
-}
-
-con_fn_base* console::find_fn( hash_t name ) {
- for( auto& it : m_functions ) {
- if( it->get_hash( ) == name ) {
- return it;
- }
- }
-
- return nullptr;
-}
-
-std::string console::impl_alias_str( std::string str ) {
- for( size_t i{ }; i < str.length( ); ++i ) {
- if( str[ i ] == ' ' && str[ i + 1 ] != ' ' ) {
- size_t end = 0;
- for( size_t i2{ i + 1 }; i2 < str.length( ); ++i ) {
- if( str[ i2 ] == ' ' )
- end = i2;
- }
-
- if( end ) {
- std::string alias_str( str.c_str( ) + i, end - i );
- auto alias = find_alias( hash::fnv1a( alias_str ) );
- if( alias ) {
- str.replace( alias_str.begin( ), alias_str.end( ), alias->get_string( ) );
- }
- else {
- g_con->log( xors( "couldnt find alias %s" ), alias_str.c_str( ) );
- }
- }
- }
- }
-
- return str;
-}
-
-void console::execute_command( const char* cmd ) {
- if( !cmd[ 0 ] ) return;
- std::string first_param( cmd, strlen( cmd ) );
-
- size_t end{ };
- bool one_arg = true;
- for( size_t i{ }; i < strlen( cmd ); ++i ) {
- if( cmd[ i ] == ' ' ) {
- first_param.resize( i );
- end = i;
- one_arg = false;
- break;
- }
- }
-
- if( one_arg ) {
- first_param.resize( first_param.length( ) - 1 );
- }
-
- //find a command to execute
- auto fn = find_fn( hash::fnv1a( first_param ) );
- if( fn ) {
- //std::string alias_cmd = impl_alias_str( cmd );
-
- if( !fn->execute( cmd ) ) {
- log( xors( "invalid syntax" ) );
- }
- return;
- }
-
- //command not found, we're managing vars
- if( !one_arg ) {
- std::string second_param = ( cmd + end + 1 );
- bool is_floating_point = second_param.find( '.' ) != std::string::npos;
- auto var = find_var( hash::fnv1a( first_param ) );
-
- if( var ) {
- auto setting_cast = static_cast< con_var< void* >* >( var );
- if( !setting_cast->is_integral( ) && !setting_cast->is_floating_point( ) ) {
- auto value = std::strtol( second_param.c_str( ), 0, 16 );
- printf( xors( "value: %08x\n" ), value );
- var->set( value );
- }
-
- if( is_floating_point ) {
- float value = std::strtof( second_param.c_str( ), 0 );
- var->set( value );
- }
- else {
- int value = std::strtol( second_param.c_str( ), 0, 10 );
- var->set( value );
- }
- log( xors( "%s %s\n" ), first_param.c_str( ), second_param.c_str( ) );
- return;
- }
- }
-
-
- log( xors( "unknown command: %s" ), first_param.c_str( ) );
-}
-
-void console::input( ) {
- static int drag_x, drag_y;
- int cursor_x, cursor_y;
- int x = m_x, y = m_y;
- bool clicked = m_input->is_key_pressed( KEYS_MOUSE1 );
- static bool is_hovered{ };
- m_input->get_cursor_pos( cursor_x, cursor_y );
-
- auto is_top_hovered = [ &x, &y,
- &cursor_x, &cursor_y ]( ) {
- return cursor_x > x && cursor_x < x + WIDTH
- && cursor_y > y && cursor_y < y + TOP_HEIGHT;
- };
-
- auto is_window_hovered = [ &x, &y,
- &cursor_x, &cursor_y ]( ) {
- return cursor_x > x && cursor_x < x + WIDTH
- && cursor_y > y && cursor_y < y + HEIGHT;
- };
-
- auto is_bottom_hovered = [ &x, &y,
- &cursor_x, &cursor_y ]( ) {
- return cursor_x > x && cursor_x < x + WIDTH
- && cursor_y > y + HEIGHT - TOP_HEIGHT
- && cursor_y < y + HEIGHT;
- };
-
- if( clicked ) {
- //m_consuming_input = is_window_hovered( );
- }
-
- if( !clicked && is_top_hovered( ) ) {
- drag_x = cursor_x - m_x;
- drag_y = cursor_y - m_y;
- }
-
- if( clicked && is_hovered ) {
- is_hovered = true;
- m_x = cursor_x - drag_x;
- m_y = cursor_y - drag_y;
- }
- else {
- is_hovered = is_top_hovered( );
- }
-
- if( clicked ) {
- m_active = is_bottom_hovered( );
- }
-
- if( m_active ) {
- capture_command( );
-
- static bool was_held{ };
- if( m_input->is_key_pressed( KEYS_RETURN ) ) {
- if( !was_held ) {
- execute_command( m_cur_cmd );
- m_cur_cmd[ 0 ] = 0;
- }
- was_held = true;
- }
- else was_held = false;
- }
-}
-
-void console::draw( ) {
- if( !m_open ) {
- m_consuming_input = false;
- m_active = false;
- return;
- }
-
- static clr_t col = clr_t( 31, 31, 31, 255 );
-
- input( );
-
- RECT prev_rect{ };
- RECT new_rect{ m_x - 1, m_y - 1,
- m_x + WIDTH + 1, m_y + HEIGHT + 1 };
- g_d3d.get_device( )->GetScissorRect( &prev_rect );
-
- g_d3d.get_device( )->SetScissorRect( &new_rect );
-
- draw_rect( m_x - 1, m_y - 1, WIDTH + 2, HEIGHT + 2, ui::ui_get_accent_col( ) );
- draw_rect( m_x, m_y, WIDTH, HEIGHT, col );
- draw_rect( m_x + 1, m_y, WIDTH - 2, TOP_HEIGHT, clr_t( 41, 41, 41 ) );
-
- draw_rect( m_x + 1, m_y + HEIGHT - TOP_HEIGHT, WIDTH - 2, TOP_HEIGHT, clr_t( 41, 41, 41 ) );
- if( m_active ) {
- draw_rect( m_x + 2, m_y + HEIGHT - TOP_HEIGHT + 1, WIDTH - 4, TOP_HEIGHT - 2, clr_t( 31, 31, 31 ) );
- auto fn = find_fn( hash::fnv1a( m_cur_cmd ) );
- if( fn ) {
- std::string fn_str = m_cur_cmd;
- fn_str += ' ';
- fn_str += fn->get_syntax( );
-
- draw_text( m_x + 2, m_y + HEIGHT - TOP_HEIGHT / 2 - 3, true, "%s", fn_str.c_str( ) );
- }
-
- else {
- auto var = find_var( hash::fnv1a( m_cur_cmd ) );
- if( var ) {
- std::string var_str = m_cur_cmd;
- var_str += ' ';
-
- var_str += var->get_string( );
-
- draw_text( m_x + 2, m_y + HEIGHT - TOP_HEIGHT / 2 - 3, true, var_str.c_str( ) );
- }
- }
- }
-
- std::string cur_cmd_str = m_cur_cmd;
- if( m_active ) {
- cur_cmd_str += '_';
- }
- draw_text( m_x + 2, m_y + HEIGHT - TOP_HEIGHT / 2 - 3, cur_cmd_str.c_str( ) );
- draw_text( m_x + 3, m_y + TOP_HEIGHT / 2 - 3, xors( "console" ) );
-
- int cur_y = m_y + HEIGHT - TOP_HEIGHT;
- for( int i = m_logs.size( ) - 1; i >= 0; --i ) {
- constexpr int LINE_HEIGHT = 14;
- auto& log = m_logs.at( i );
-
- if( cur_y - LINE_HEIGHT < m_y + TOP_HEIGHT ) {
- m_logs.erase( m_logs.begin( ) + i );
- continue;
- }
-
- draw_text( m_x + 2, cur_y -= LINE_HEIGHT, log.m_msg );
- }
-
- g_d3d.get_device( )->SetScissorRect( &prev_rect );
-}
\ No newline at end of file diff --git a/tf2/console.hpp b/tf2/console.hpp deleted file mode 100644 index a16ad0f..0000000 --- a/tf2/console.hpp +++ /dev/null @@ -1,125 +0,0 @@ -#pragma once
-#include <memory>
-#include <Windows.h>
-#include <vector>
-#include <functional>
-
-#include "con_fn.hpp"
-#include "con_alias.hpp"
-#include "input_system.hpp"
-#include "math.h"
-
-#pragma warning(disable: 4996)
-
-class console {
-public:
- console( ) {
- m_input = std::make_shared< util::c_input_manager >( );
- }
-
- static constexpr size_t TOP_HEIGHT = 22;
- static constexpr size_t WIDTH = 400;
- static constexpr size_t HEIGHT = 450;
-
- bool m_consuming_input{ };
- bool m_active{ };
- bool m_open{ };
-
- struct con_log {
- float m_time;
- char m_msg[ 128 ];
- };
-
- void draw_text( int x, int y, bool greyed, const char* msg, ... );
- void draw_text( int x, int y, const char* msg, ... );
- void draw_rect( int x, int y, int w, int h, clr_t col );
- void register_fn( con_fn_base* fn ) { m_functions.push_back( fn ); }
-
- void input( );
- void draw( );
-
- auto& get_input( ) {
- return m_input;
- }
-
- void log( const char* fmt, ... ) {
- va_list args;
- char buf[ 128 ];
-
- __crt_va_start( args, fmt );
- vsprintf_s< 128 >( buf, fmt, args );
- __crt_va_end( args );
-
- con_log log;
- log.m_time = ( float )GetTickCount( ) * 0.001f;
- memcpy( log.m_msg, buf, 128 );
-
- print( "%s\n", buf );
-
- m_logs.push_back( log );
- }
-
- void print( const char* fmt, ... ) {
- va_list args;
- va_start( args, fmt );
- vprintf_s( fmt, args );
- va_end( args );
- }
-
- void create( ) {
-#ifdef _DEBUG
- AllocConsole( );
- freopen( xors( "CONOUT$" ), "w", stdout );
- const char* hack_names[ ] = {
- xors( "dunk hack" ),
- xors( "dweeb dumpster" ),
- xors( "nova killER" ),
- xors( "moms credit card" ),
- xors( "dad hook" ),
- xors( "retard remover" ),
- xors( "slam hook" ),
- xors( "swoosh" ),
- xors( "retard remover" ),
- xors( "shotgun hack" ),
- };
-
- SetConsoleTitleA( hack_names[ math::random_number( 0, 9 ) ] );
-#endif
- game_console_print = reinterpret_cast< msg_t >( GetProcAddress( GetModuleHandleA( "tier0.dll" ), "Msg" ) );
- }
-
- void destroy( ) {
-#ifdef _DEBUG
- FreeConsole( );
- fclose( stdout );
-#endif
- }
-
- std::vector< con_log > m_logs;
- std::vector< con_fn_base* > m_functions;
- std::vector< std::shared_ptr< ISetting > > m_aliases;
-
- void register_alias( std::shared_ptr< ISetting >& alias );
-
- using msg_t = void( __cdecl* )( const char*, ... );
- msg_t game_console_print;
-
-private:
- ISetting * find_var( hash_t name );
- ISetting* find_alias( hash_t name );
-
- std::string impl_alias_str( std::string str );
-
- con_fn_base* find_fn( hash_t name );
- void capture_command( );
- void execute_command( const char* cmd );
-
- int m_x{ 100 }, m_y{ 100 };
-
- char m_cur_cmd[ 200 ]{ };
- uint8_t m_key_states[ 256 ]{ };
- float m_last_key_input[ 256 ]{ };
- std::shared_ptr< util::c_input_manager > m_input;
-};
-
-extern std::shared_ptr< console > g_con;
\ No newline at end of file diff --git a/tf2/console_log.hpp b/tf2/console_log.hpp deleted file mode 100644 index 4659ea1..0000000 --- a/tf2/console_log.hpp +++ /dev/null @@ -1,34 +0,0 @@ -#pragma once
-
-#include <memory>
-#include <Windows.h>
-#pragma warning(disable: 4996)
-
-class console {
-public:
- void create( ) {
- AllocConsole( );
- freopen( "CONOUT$", "w", stdout );
- SetConsoleTitleA( "tf2internal" );
-
- game_console_print = reinterpret_cast< decltype( game_console_print ) >( GetProcAddress( GetModuleHandleA( "tier0.dll" ), "Msg" ) );
- }
-
- void destroy( ) {
- FreeConsole( );
- fclose( stdout );
- }
-
- __forceinline void log_function( const char* msg ) {
- printf( "%s: %s", __FUNCTION__, msg );
- }
-
- using msg_t = void( __cdecl* )( const char*, ... );
- msg_t game_console_print;
-
-
- static console *con( ) {
- static console g_singleton_;
- return &g_singleton_;
- }
-};
\ No newline at end of file diff --git a/tf2/ctx.cpp b/tf2/ctx.cpp deleted file mode 100644 index 37e192f..0000000 --- a/tf2/ctx.cpp +++ /dev/null @@ -1,97 +0,0 @@ -#include "ctx.hpp"
-#include "console.hpp"
-#include "hooks.h"
-#include "base_cheat.h"
-
-context::c_context g_ctx;
-
-NAMESPACE_REGION( context )
-
-bool c_context::run_frame( ) {
- m_local = cl.m_entlist( )->get_client_entity< c_base_player >(
- cl.m_engine( )->GetLocalPlayer( ) );
-
- return !!m_local;
-}
-
-
-//predicted servertime of player, use this for breaking lby etc
-float c_context::pred_time( ) {
- calculate_tickbase( );
-
- return m_tickbase * cl.m_globals->interval_per_tick;
-}
-
-//calculate tickbase depending on whether last ucmd was predicted
-bool c_context::calculate_tickbase( ) {
- if( !m_local ) {
- return false;
- }
-
- //get current tickbase
- auto player_tickbase = m_local->get_tick_base( );
-
- //disabled due to our engine pred being shit
- m_tickbase = player_tickbase;
- return true;
-
- if( m_snapshot.empty( ) ) {
- m_tickbase = player_tickbase;
- return false;
- }
-
- //if cmd wasnt predicted increment tickbase
- auto snap_cmd = &m_snapshot.front( );
- if( !snap_cmd->m_predicted ) {
- if( !m_tickbase ) {
- m_tickbase = player_tickbase;
- }
-
- m_tickbase++;
- snap_cmd->m_predicted = true;
- }
- else {
- m_tickbase = player_tickbase;
- }
-
- return true;
-}
-
-bool c_context::precache_model( const char* model ) {
-
- auto cache_table = cl.m_string_table( )->FindTable( "modelprecache" );
-
- if( !cache_table )
- return true;
-
- cl.m_modelinfo( )->FindOrLoadModel( model );
-
- int string_index = cache_table->AddString( false, model );
-
- if( string_index == -1 )
- return false;
-
- return true;
-}
-
-//save snapshots of usercommands
-bool c_context::create_snapshot( user_cmd_t* ucmd ) {
- user_cmd_t ucmd_copy;
-
- while( m_snapshot.size( ) >= 64 ) {
- m_snapshot.pop_back( );
- }
-
- if( !ucmd ) {
- return false;
- }
-
- memcpy( &ucmd_copy,
- ucmd,
- sizeof( ucmd_copy ) );
-
- m_snapshot.push_front( ucmd_copy );
- return true;
-}
-
-END_REGION
\ No newline at end of file diff --git a/tf2/ctx.hpp b/tf2/ctx.hpp deleted file mode 100644 index 8243a19..0000000 --- a/tf2/ctx.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#pragma once
-#include <deque>
-
-#include "util.hpp"
-#include "sdk.h"
-NAMESPACE_REGION( context )
-
-struct shot_data_t {
- vec3_t m_local_pos;
- vec3_t m_angle;
- vec3_t m_enemy_pos;
- int m_enemy_index;
- int m_resolver_shots;
- bool m_resolver_state;
- bool m_missed{ true };
- struct {
- vec3_t min;
- vec3_t max;
- float radius;
- } m_hitbox;
- int m_hitgroup;
-};
-
-//replacement to the old global:: namespace
-class c_context {
-public:
- //run localplayer check, pointer, is valid etc
- bool run_frame( );
- float pred_time( );
-
- bool create_snapshot( user_cmd_t* );
- //calculate accurate tickbase
- bool calculate_tickbase( );
-
- user_cmd_t* get_last_cmd( ) {
- return m_snapshot.empty( ) ? nullptr : &m_snapshot.front( );
- }
-
- bool precache_model( const char* model );
-
-public:
- c_base_player * m_local{ };
- int m_stage{ };
- //accurate tickbase
- int m_tickbase{ };
-
- bool m_drawing_postscreenspace{ };
- bool m_drawing_screneend{ };
-
- bool m_has_fired_this_frame{ };
-
- vec3_t m_thirdperson_angle{ };
- vec3_t m_last_origin{ };
-
- float m_fov{ 90.f };
-
-public:
-
- int m_last_shot_ack;
- int m_last_shot;
- std::array< shot_data_t, 128 > m_shot_data;
-private:
- std::deque< user_cmd_t > m_snapshot;
-};
-
-END_REGION
-
-extern context::c_context g_ctx;
\ No newline at end of file diff --git a/tf2/d3d.cpp b/tf2/d3d.cpp deleted file mode 100644 index a35f613..0000000 --- a/tf2/d3d.cpp +++ /dev/null @@ -1,367 +0,0 @@ -#include "d3d.hpp"
-#include "interfaces.h"
-#include "math.h"
-#include "d3d_sprite.hpp"
-
-d3d::c_renderer g_d3d;
-d3d::d3d_fonts_t d3d::fonts;
-
-
-//theres shit still left to add like drawrect etc but thats really simple
-//this is the base and it works so thats ok
-//love
-// - nave
-
-// note - dex; probably better idea to batch all calls up into one DrawPrimitive / DrawIndexedPrimitive call each (if you want to have index buffers too)
-// DrawPrimitiveUP for each object will slow stuff down eventually
-// dont know much about DrawIndexedPrimitive myself but msdn suggests to use strips over anything else
-
-namespace d3d
-{
- void d3d_fonts_t::release( ) {
- if( f_12 ) f_12->Release( );
- if( f_esp_small ) f_esp_small->Release( );
- if( f_16 ) f_16->Release( );
- if( f_18 ) f_18->Release( );
- if( f_menu ) f_menu->Release( );
- if( f_con ) f_con->Release( );
-
- f_12 = f_esp_small = f_16 = f_18 = f_menu = f_con = nullptr;
- }
-
- void d3d_fonts_t::create( IDirect3DDevice9* device ) {
- auto create_font = [ & ]( ID3DXFont** font, const char* font_name, int width, int size, int weight ) {
- //auto wide_str = util::ascii_to_unicode( std::string( font_name ) );
-
- auto code = D3DXCreateFontA( device, size, width, weight, 0, false, DEFAULT_CHARSET,
- OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, font_name, font );
-
- if( code < 0 ) throw xors( "fuck d3d" );
- };
-
- create_font( &f_12, xors( "Verdana" ), 0, 12, 0 ); //change this idc
- create_font( &f_esp_small, xors( "Tahoma" ), 0, 11, 500 );
- create_font( &f_16, xors( "Verdana" ), 0, 16, 0 );
- create_font( &f_18, xors( "Verdana" ), 0, 18, 900 );
- create_font( &f_menu, xors( "Tahoma" ), 0, 12, 300 );
- create_font( &f_con, xors( "Consolas" ), 6, 12, 300 );
- }
-
-
- c_renderer::c_renderer( IDirect3DDevice9* device ) : m_device( device ) {
- create_objects( );
- }
-
- bool c_renderer::run_frame( IDirect3DDevice9* device ) {
- if( cl.m_panic ) {
- return false;
- }
-
- if( !m_device ) {
- m_device = device;
- create_objects( );
- return false;
- }
-
- return true;
- }
-
- c_renderer::~c_renderer( ) {
- if( !m_device )
- return;
-
- invalidate_objects( );
- }
-
- void c_renderer::on_device_lost( ) {
- if( !m_device )
- return;
-
- invalidate_objects( );
- }
-
- void c_renderer::on_device_reset( ) {
- if( !m_device )
- return;
-
- create_objects( );
- }
-
- void c_renderer::invalidate_objects( ) {
- if( m_block ) m_block->Release( );
- fonts.release( );
- //m_buffer->Release( );
- //m_sil_txt->Release( );
- //m_surface->Release( );
- }
-
- void c_renderer::create_objects( ) {
- D3DVIEWPORT9 viewport;
-
- if( !m_device ) return;
-
- if( m_device->GetViewport( &viewport ) < 0 ) {
- return;
- }
-
- if( m_device->CreateStateBlock( D3DSBT_ALL, &m_block ) < 0 ) {
- return;
- }
-
- if( !m_block ) {
- return;
- }
-
- // get display size.
- m_width = viewport.Width;
- m_height = viewport.Height;
-
- fonts.create( m_device );
-
- /*IDirect3DSurface9* backbuffer;
- D3DSURFACE_DESC desc;
-
- m_device->GetRenderTarget( 0, &backbuffer );
- backbuffer->GetDesc( &desc );
- backbuffer->Release( );
-
- m_device->CreateTexture( desc.Width, desc.Height, 1, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &m_sil_txt, 0 );
- m_sil_txt->GetSurfaceLevel( 0, &m_surface );
-
- m_device->CreateVertexBuffer( 4 * 24, 0, D3DFVF_XYZRHW | D3DFVF_TEX1, D3DPOOL_MANAGED, &m_buffer, nullptr );*/
- }
-
- void c_renderer::begin( ) {
- if( !m_device ) return;
-
- D3DVIEWPORT9 vp{ 0, 0, m_width, m_height, 0.f, 1.f };
-
- m_device->SetViewport( &vp );
-
- //m_sil_txt->GetSurfaceLevel( 0, &m_surface );
-
- // set vertex stream declaration.
- m_device->SetVertexShader( nullptr );
- m_device->SetPixelShader( nullptr );
- m_device->SetFVF( D3DFVF_XYZRHW | D3DFVF_DIFFUSE );
- m_block->Capture( );
-
- m_device->SetRenderState( D3DRS_LIGHTING, false );
- m_device->SetRenderState( D3DRS_FOGENABLE, false );
- m_device->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE );
- m_device->SetRenderState( D3DRS_FILLMODE, D3DFILL_SOLID );
-
- m_device->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
- m_device->SetRenderState( D3DRS_SCISSORTESTENABLE, true );
- m_device->SetRenderState( D3DRS_ZWRITEENABLE, false );
- m_device->SetRenderState( D3DRS_STENCILENABLE, false );
-
- m_device->SetRenderState( D3DRS_MULTISAMPLEANTIALIAS, false );
- m_device->SetRenderState( D3DRS_ANTIALIASEDLINEENABLE, true );
-
- m_device->SetRenderState( D3DRS_ALPHABLENDENABLE, true );
- m_device->SetRenderState( D3DRS_ALPHATESTENABLE, false );
- m_device->SetRenderState( D3DRS_SEPARATEALPHABLENDENABLE, true );
-
- //m_device->SetTexture( 0, nullptr );
- //m_device->SetTexture( 1, nullptr );
- //m_device->SetTexture( 2, nullptr );
- //m_device->SetTexture( 3, nullptr );
- m_device->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );
- m_device->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
- m_device->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
- m_device->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_MODULATE );
- m_device->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
- m_device->SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );
- m_device->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, 0 );
- m_device->SetTextureStageState( 0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_DISABLE );
- m_device->SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_DISABLE );
- m_device->SetTextureStageState( 1, D3DTSS_ALPHAOP, D3DTOP_DISABLE );
-
- m_device->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
- m_device->SetRenderState( D3DRS_SRCBLENDALPHA, D3DBLEND_INVDESTALPHA );
- m_device->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
- m_device->SetRenderState( D3DRS_DESTBLENDALPHA, D3DBLEND_ONE );
- m_device->SetRenderState( D3DRS_BLENDOP, D3DBLENDOP_ADD );
-
- m_device->SetRenderState( D3DRS_SRGBWRITEENABLE, false );
- m_device->SetRenderState( D3DRS_COLORWRITEENABLE, 0xffffffff );
- /* commented out until further notice */
- //m_device->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR );
- //m_device->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );
- // todo - dex; if we use textures, need to set those rendering states too
- }
-
- void c_renderer::end( ) {
- m_device->SetTexture( 0, nullptr );
- //m_device->SetTexture( 1, nullptr );
- //m_device->SetTexture( 2, nullptr );
- //m_device->SetTexture( 3, nullptr );
- m_block->Apply( );
- //m_block->Release( );
- }
-
- void c_renderer::draw_line( clr_t color, int x0, int y0, int x1, int y1 ) {
- d3d_vertex_t v[ 2 ] = {
- d3d_vertex_t( float( x0 ), float( y0 ), 1.0f, color ), //because fuck you thats why
- d3d_vertex_t( float( x1 ), float( y1 ), 1.0f, color )
- }; //edit: do we wanna use z for shit? i mean we could for like menu stuff
- //so it renders above other stuff
-
- m_device->DrawPrimitiveUP( D3DPT_LINELIST, 1, v, VERTEX_SIZE );
- }
-
- void c_renderer::draw_rect( clr_t color, int x, int y, int w, int h ) {
- d3d_vertex_t v[ 5 ] = {
- d3d_vertex_t( float( x ), float( y ), 1.0f, color ),
- d3d_vertex_t( float( x + w ), float( y ), 1.0f, color ),
- d3d_vertex_t( float( x + w ), float( y + h ), 1.0f, color ),
- d3d_vertex_t( float( x ), float( y + h ), 1.0f, color ),
- d3d_vertex_t( float( x ), float( y ), 1.0f, color )
- };
-
- m_device->DrawPrimitiveUP( D3DPT_LINESTRIP, 4, v, VERTEX_SIZE );
- }
-
- void c_renderer::draw_filled_rect( clr_t color, int x, int y, int w, int h ) {
- d3d_vertex_t v[ 6 ] = {
- d3d_vertex_t( float( x + w ), float( y ), 1.0f, color ),
- d3d_vertex_t( float( x ), float( y + h ), 1.0f, color ),
- d3d_vertex_t( float( x + w ), float( y + h ), 1.0f, color ),
- d3d_vertex_t( float( x ), float( y ), 1.0f, color ),
- d3d_vertex_t( float( x ), float( y + h ), 1.0f, color ),
- d3d_vertex_t( float( x + w ), float( y ), 1.0f, color )
- };
-
- m_device->DrawPrimitiveUP( D3DPT_TRIANGLELIST, 2, v, VERTEX_SIZE );
- }
-
- void c_renderer::draw_gradient( clr_t start, clr_t end, int x, int y, int w, int h, GradientType_t type ) {
- d3d_vertex_t v[ 4 ];
-
- switch( type ) {
- case GRADIENT_VERTICAL:
- v[ 0 ] = { float( x ), float( y ), 1.0f, start };
- v[ 1 ] = { float( x + w ), float( y ), 1.0f, start };
- v[ 2 ] = { float( x ), float( y + h ), 1.0f, end };
- v[ 3 ] = { float( x + w ), float( y + h ), 1.0f, end };
- break;
- case GRADIENT_HORIZONTAL:
- v[ 0 ] = { float( x ), float( y ), 1.0f, start };
- v[ 1 ] = { float( x + w ), float( y ), 1.0f, end };
- v[ 2 ] = { float( x ), float( y + h ), 1.0f, start };
- v[ 3 ] = { float( x + w ), float( y + h ), 1.0f, end };
- break;
- }
-
- //m_device->SetRenderState( D3DRS_MULTISAMPLEANTIALIAS, true );
- m_device->DrawPrimitiveUP( D3DPT_TRIANGLESTRIP, 2, &v, VERTEX_SIZE );
- //m_device->SetRenderState( D3DRS_MULTISAMPLEANTIALIAS, false );
- }
-
- void c_renderer::draw_circle( clr_t color, int x, int y, int r, int res ) {
- constexpr float PI = 3.1415926f;
- const float step = PI * 2.0f / float( res );
-
- int point_x = x + r,
- point_y = y - r,
- point_x_o{ },
- point_y_o{ };
-
- m_device->SetRenderState( D3DRS_MULTISAMPLEANTIALIAS, true );
- for( int i{ }; i <= res; i++ ) {
- float theta = float( i ) * step;
-
- point_x = x + ( int )( r * cos( theta ) );
- point_y = y - ( int )( r * sin( theta ) );
- if( i ) draw_line( color, point_x, point_y, point_x_o, point_y_o );
- point_x_o = point_x;
- point_y_o = point_y;
- }
- m_device->SetRenderState( D3DRS_MULTISAMPLEANTIALIAS, false );
- }
-
- void c_renderer::draw_filled_circle( clr_t color, int x, int y, int r, int res ) {
- d3d_vertex_t* v = ( d3d_vertex_t* )_alloca( VERTEX_SIZE * res );
- const float step = M_PI * 2.0f / res;
-
- for( size_t i{ }; i < res; ++i ) {
- float theta = i * step;
- float x_off = r * cos( theta );
- float y_off = r * sin( theta );
-
- v[ i ] = { float( x + x_off ), float( y + y_off ), 1.0f, color };
- }
-
- m_device->SetRenderState( D3DRS_MULTISAMPLEANTIALIAS, true );
- m_device->DrawPrimitiveUP( D3DPT_TRIANGLESTRIP, res, v, VERTEX_SIZE );
- m_device->SetRenderState( D3DRS_MULTISAMPLEANTIALIAS, false );
- }
-
- void c_renderer::draw_text( ID3DXFont* font, clr_t color,
- int x, int y, FontAlign_t align, long font_flags, const char* msg ) {
- if( !msg ) return;
- if( !font ) return;
-
- auto d3d_black = D3DCOLOR_RGBA( 0, 0, 0, color.a( ) );
- auto d3d_color = D3DCOLOR_RGBA( color.r( ), color.g( ), color.b( ), color.a( ) );
- auto buf = msg;
-
- if( align == ALIGN_CENTER ) x -= get_text_width( font, font_flags, msg ) / 2;
- if( align == ALIGN_RIGHT ) x -= get_text_width( font, font_flags, msg );
- RECT rect{ x, y, 1000, 100 };
-
- ulong_t flags = DT_NOCLIP | DT_LEFT | DT_TOP;
-
- if( font_flags & D3DFONTFLAG_DROPSHADOW ) {
- RECT r{ rect };
- r.left++;
- r.top++;
- font->DrawTextA( 0, buf, -1, &r, flags, d3d_black );
- }
-
- if( font_flags & D3DFONTFLAG_OUTLINE ) {
- for( int i = -1; i < 2; i++ ) {
- if( !i ) continue;
- RECT r{ rect };
- r.left += i;
- r.top += i;
- font->DrawTextA( 0, buf, -1, &r, flags, d3d_black );
- }
- }
-
- font->DrawTextA( 0, buf, -1, &rect, flags, d3d_color );
- }
-
- int c_renderer::get_text_width( ID3DXFont* font, long flags, const char* msg, ... ) {
- char* buffer = ( char* )_alloca( 2048 );
- va_list list{ };
-
- memset( buffer, 0, 2048 );
-
- __crt_va_start( list, msg );
- vsprintf_s( buffer, 2048, msg, list );
- __crt_va_end( list );
-
- RECT temp{ };
- font->DrawTextA( 0, buffer, -1, &temp, DT_CALCRECT, 0x0 );
-
- return ( temp.right - temp.left );
- }
-
- int c_renderer::get_text_height( ID3DXFont* font, long flags, const char* msg, ... ) {
- char* buffer = ( char* )_alloca( 2048 );
- va_list list{ };
-
- memset( buffer, 0, 2048 );
-
- __crt_va_start( list, msg );
- vsprintf_s( buffer, 2048, msg, list );
- __crt_va_end( list );
-
- RECT temp{ };
- font->DrawTextA( 0, buffer, -1, &temp, DT_CALCRECT, 0x0 );
-
- return ( temp.bottom - temp.top );
- }
-}
diff --git a/tf2/d3d.hpp b/tf2/d3d.hpp deleted file mode 100644 index a927ee3..0000000 --- a/tf2/d3d.hpp +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef D3D_HEADER //stackoverflow my niggas
-#define D3D_HEADER
-
-#include <d3d9.h>
-#include <d3dx9.h>
-
-#pragma comment(lib, "d3d9.lib")
-#pragma comment(lib, "d3dx9.lib")
-#pragma warning(disable : 4838)
-
-#include <xnamath.h>
-#include <windows.h>
-
-#include <dwmapi.h>
-#pragma comment(lib, "dwmapi.lib")
-
-#include "util.hpp"
-#include "color.hpp"
-#include "renderer.hpp"
-
-enum D3DFontFlags_t {
- D3DFONTFLAG_OUTLINE = 0x10,
- D3DFONTFLAG_DROPSHADOW = 0x100,
-};
-
-enum GradientType_t;
-
-namespace features { class c_chams; }
-
-//suck my dick
-namespace d3d
-{
- struct d3d_vertex_t {
- d3d_vertex_t( float x, float y, float z, clr_t color ) :
- m_x( x ), m_y( y ), m_z( z ),
- m_clr( D3DCOLOR_RGBA( color.r( ), color.g( ), color.b( ), color.a( ) ) ) { };
-
- d3d_vertex_t( ) : m_x( 0.f ), m_y( 0.f ), m_z( 0.f ),
- m_clr( 0 ) { };
-
- float m_x;
- float m_y;
- float m_z;
- float m_rhw = 0.f;
- D3DCOLOR m_clr;
- };
-
- constexpr size_t VERTEX_SIZE = sizeof( d3d_vertex_t );
-
- struct d3d_fonts_t {
- void release( );
- void create( IDirect3DDevice9* device );
-
- ID3DXFont* f_12;
- ID3DXFont* f_esp_small;
- ID3DXFont* f_16;
- ID3DXFont* f_18;
- ID3DXFont* f_menu;
- ID3DXFont* f_con;
- };
-
- class c_renderer {
- private:
- friend class features::c_chams;
-
- IDirect3DDevice9* m_device;
- IDirect3DStateBlock9* m_block;
- IDirect3DTexture9* m_chams;
- IDirect3DTexture9* m_sil_txt;
- IDirect3DVertexBuffer9* m_buffer;
- IDirect3DSurface9* m_surface;
- public:
- ulong_t m_width;
- ulong_t m_height;
-
- c_renderer( ) { };
- c_renderer( IDirect3DDevice9* device );
- ~c_renderer( );
-
- void on_device_lost( );
- void on_device_reset( );
- auto get_device( ) {
- return m_device;
- }
-
- bool run_frame( IDirect3DDevice9* device );
- void begin( );
- void end( );
-
- void draw_line( clr_t color, int x0, int y0, int x1, int y1 );
- void draw_rect( clr_t color, int x, int y, int w, int h );
- void draw_filled_rect( clr_t color, int x, int y, int w, int h );
- void draw_circle( clr_t color, int x, int y, int r, int steps = 48 );
- void draw_filled_circle( clr_t color, int x, int y, int r, int steps = 48 );
- void draw_gradient( clr_t start, clr_t end, int x, int y, int w, int h, GradientType_t type );
-
- void draw_text( ID3DXFont* font, clr_t color, int x, int y, FontAlign_t align, long font_flags, const char* msg );
-
- template < FontAlign_t align = ALIGN_CENTER >
- void draw_text( ID3DXFont* font, clr_t color, int x, int y, long font_flags, const char* msg, ... ) {
- char* buffer = ( char* )_alloca( 2048 );
- va_list list{ };
-
- memset( buffer, 0, 2048 );
-
- __crt_va_start( list, msg );
- vsprintf_s( buffer, 2048, msg, list );
- __crt_va_end( list );
-
- draw_text( font, color, x, y, align, font_flags, buffer );
- }
-
- int get_text_width( ID3DXFont* font, long font_flags, const char* msg, ... );
- int get_text_height( ID3DXFont* font, long font_flags, const char* msg, ... );
-
- private:
- void invalidate_objects( );
- void create_objects( );
- };
-
- extern d3d::d3d_fonts_t fonts;
-}
-
-extern d3d::c_renderer g_d3d;
-
-#endif
\ No newline at end of file diff --git a/tf2/d3d_sprite.cpp b/tf2/d3d_sprite.cpp deleted file mode 100644 index 37bbde1..0000000 --- a/tf2/d3d_sprite.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include "d3d_sprite.hpp"
-
-std::vector< d3d::c_sprite* > d3d::sprites;
-
-namespace icons
-{
- d3d::c_sprite sprite_legit;
- d3d::c_sprite sprite_rage;
- d3d::c_sprite sprite_visuals;
- d3d::c_sprite sprite_misc;
- d3d::c_sprite sprite_config;
-}
\ No newline at end of file diff --git a/tf2/d3d_sprite.hpp b/tf2/d3d_sprite.hpp deleted file mode 100644 index 0d26f4c..0000000 --- a/tf2/d3d_sprite.hpp +++ /dev/null @@ -1,159 +0,0 @@ -#pragma once
-#include "d3d.hpp"
-#include "console.hpp"
-
-
-namespace d3d
-{
- class c_sprite;
-
- extern std::vector< c_sprite* > sprites;
-
- class c_sprite {
- public:
- size_t m_width{ };
- size_t m_height{ };
-
- IDirect3DDevice9* m_device{ };
- ID3DXSprite* m_sprite{ };
- IDirect3DTexture9* m_texture{ };
- const byte* m_image{ };
- size_t m_image_size{ };
-
-
- public:
- c_sprite::c_sprite( ) {
- sprites.push_back( this );
- }
-
- c_sprite::~c_sprite( ) {
- on_reset( );
- }
-
- void init( IDirect3DDevice9* device, const byte* file, size_t img_size, size_t width, size_t height ) {
- m_width = width;
- m_height = height;
-
- m_device = device;
- m_image = file;
- m_image_size = img_size;
- }
-
- void begin( IDirect3DDevice9* device ) {
- m_device = device;
-
- if( !m_device ) {
- return;
- }
-
- if( !m_sprite )
- D3DXCreateSprite( m_device, &m_sprite );
-
- if( !m_texture ) {
- auto hr = D3DXCreateTextureFromFileInMemoryEx(
- m_device, m_image, m_image_size,
- m_width, m_height, D3DX_DEFAULT, 0, D3DFMT_A8B8G8R8,
- D3DPOOL_MANAGED, D3DX_DEFAULT, D3DX_DEFAULT, 0,
- 0, 0, &m_texture );
- }
-
- if( m_sprite )
- m_sprite->Begin( D3DXSPRITE_DONOTMODIFY_RENDERSTATE );
- }
-
- void end( ) {
- if( !m_device || !m_sprite || !m_texture ) return;
- m_sprite->End( );
- }
-
- void on_reset( ) {
- if( m_sprite && m_device && m_texture ) {
- m_sprite->OnLostDevice( );
- m_texture->Release( );
- m_texture = nullptr;
- }
- }
-
- void on_reset_end( ) {
- if( m_sprite && m_device )
- m_sprite->OnResetDevice( );
- }
-
- void draw( int x, int y, clr_t color ) {
- if( !m_device || !m_texture || !m_sprite ) {
- return;
- }
-
- const float scale = 0.8f;
-
- ulong_t
- fill_mode,
- adaptive_tess,
- dest_blend,
- cull,
- stencil,
- vertex_blend,
- alpha_test;
-
- m_device->GetRenderState( D3DRENDERSTATETYPE::D3DRS_FILLMODE, &fill_mode );
- m_device->GetRenderState( D3DRENDERSTATETYPE::D3DRS_ENABLEADAPTIVETESSELLATION, &adaptive_tess );
- m_device->GetRenderState( D3DRENDERSTATETYPE::D3DRS_DESTBLEND, &dest_blend );
- m_device->GetRenderState( D3DRENDERSTATETYPE::D3DRS_CULLMODE, &cull );
- m_device->GetRenderState( D3DRENDERSTATETYPE::D3DRS_STENCILENABLE, &stencil );
- m_device->GetRenderState( D3DRENDERSTATETYPE::D3DRS_VERTEXBLEND, &vertex_blend );
- m_device->GetRenderState( D3DRENDERSTATETYPE::D3DRS_ALPHATESTENABLE, &alpha_test );
-
- ulong_t mag_filter;
- ulong_t min_filter;
- m_device->GetSamplerState( 0, D3DSAMPLERSTATETYPE::D3DSAMP_MAGFILTER, &mag_filter );
- m_device->GetSamplerState( 0, D3DSAMPLERSTATETYPE::D3DSAMP_MINFILTER, &min_filter );
-
- m_device->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_ANISOTROPIC );
- m_device->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_ANISOTROPIC );
-
- m_device->SetRenderState( D3DRENDERSTATETYPE::D3DRS_FILLMODE, D3DFILL_SOLID );
- m_device->SetRenderState( D3DRENDERSTATETYPE::D3DRS_ENABLEADAPTIVETESSELLATION, false );
- m_device->SetRenderState( D3DRENDERSTATETYPE::D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
- m_device->SetRenderState( D3DRENDERSTATETYPE::D3DRS_CULLMODE, D3DCULL_NONE );
- m_device->SetRenderState( D3DRENDERSTATETYPE::D3DRS_STENCILENABLE, false );
- m_device->SetRenderState( D3DRENDERSTATETYPE::D3DRS_VERTEXBLEND, false );
- m_device->SetRenderState( D3DRENDERSTATETYPE::D3DRS_ALPHATESTENABLE, D3DLINECAPS_ALPHACMP );
- m_device->SetRenderState( D3DRENDERSTATETYPE::D3DRS_MULTISAMPLEANTIALIAS, D3DMULTISAMPLE_4_SAMPLES );
-
-
- ulong_t hr;
- D3DXVECTOR2 center = D3DXVECTOR2( ( m_width * scale ) * 0.5f, ( m_height * scale ) * 0.5f );
- D3DXVECTOR2 trans = D3DXVECTOR2( x - center.x, y - center.y );
- D3DXMATRIX matrix;
- D3DXVECTOR2 scale_vec( scale, scale );
- D3DXMatrixTransformation2D( &matrix, 0, 0.f, &scale_vec, ¢er, 0.f, &trans );
-
- hr = m_sprite->SetTransform( &matrix );
-
- auto d3dcolor = D3DCOLOR_RGBA( color.r( ),
- color.g( ), color.b( ), color.a( ) );
- hr = m_sprite->Draw( m_texture, 0, 0, 0, d3dcolor );
-
- m_device->SetRenderState( D3DRENDERSTATETYPE::D3DRS_MULTISAMPLEANTIALIAS, false );
- m_device->SetRenderState( D3DRENDERSTATETYPE::D3DRS_FILLMODE, fill_mode );
- m_device->SetRenderState( D3DRENDERSTATETYPE::D3DRS_ENABLEADAPTIVETESSELLATION, adaptive_tess );
- m_device->SetRenderState( D3DRENDERSTATETYPE::D3DRS_DESTBLEND, dest_blend );
- m_device->SetRenderState( D3DRENDERSTATETYPE::D3DRS_CULLMODE, cull );
- m_device->SetRenderState( D3DRENDERSTATETYPE::D3DRS_STENCILENABLE, stencil );
- m_device->SetRenderState( D3DRENDERSTATETYPE::D3DRS_VERTEXBLEND, vertex_blend );
- m_device->SetRenderState( D3DRENDERSTATETYPE::D3DRS_ALPHATESTENABLE, alpha_test );
-
- m_device->SetSamplerState( 0, D3DSAMPLERSTATETYPE::D3DSAMP_MAGFILTER, mag_filter );
- //m_device->SetSamplerState( 0, D3DSAMPLERSTATETYPE::D3DSAMP_MINFILTER, min_filter );
- }
- };
-}
-
-namespace icons
-{
- extern d3d::c_sprite sprite_legit;
- extern d3d::c_sprite sprite_rage;
- extern d3d::c_sprite sprite_visuals;
- extern d3d::c_sprite sprite_misc;
- extern d3d::c_sprite sprite_config;
-}
\ No newline at end of file diff --git a/tf2/directx.cpp b/tf2/directx.cpp deleted file mode 100644 index db2d62f..0000000 --- a/tf2/directx.cpp +++ /dev/null @@ -1,233 +0,0 @@ -#include <chrono>
-
-#include "settings.h"
-#include "hooks.h"
-#include "ui.h"
-#include "base_cheat.h"
-#include "ctx.hpp"
-#include "mem.hpp"
-
-//this shit prolly barely working rn like a toddler trying to walk but hes actually mentally slow and 25
-
-using namespace d3d;
-
-float ui::get_tf2_frametime( ) {
- return cl.m_frametime;
-}
-
-void on_d3d( IDirect3DDevice9* device ) {
- constexpr float step = 1.0f / 2.f;
- constexpr float fade_step = 1.0f / 7.f;
- static float anim_time{ };
- static bool flip{ };
- static int anim_progress{ };
-
- static bool sprites_init{ };
- if( !sprites_init ) {
- ui::setup_sprites( device );
- sprites_init = true;
- }
-
- if( g_settings.misc.hide_from_obs )
- g_cheat.visuals( );
-
- if( g_settings.menu.open ) {
- if( anim_time >= 0.95f ) {
- flip = true;
- }
- if( anim_time <= 0.05f ) {
- flip = false;
- }
-
- if( flip )
- anim_time -= fade_step * ui::ui_get_frametime( );
- else
- anim_time += fade_step * ui::ui_get_frametime( );
-
- anim_time = std::clamp( anim_time, 0.f, 1.0f );
-
- ui::set_animtime( anim_time );
-
- anim_progress += ui::ui_get_frametime( ) * step * 255;
- anim_progress = std::clamp( anim_progress, 0, 50 );
- g_d3d.draw_filled_rect( clr_t( 0, 0, 0, anim_progress ),
- 0, 0, g_d3d.m_width, g_d3d.m_height );
-
- ui::render( );
- }
- else {
- anim_progress = 0;
- }
-}
-
-long __stdcall hooks::d3d::draw( IDirect3DDevice9* device, D3DPRIMITIVETYPE type, int v_index, uint32_t min_index, uint32_t num_vert, uint32_t start_index, uint32_t prim_count ) {
- static auto draw_o = cl.m_d3d->get_old_function< decltype( &hooks::d3d::draw ) >( 82 );
-
- static auto ret_addr = pattern::first_code_match( GetModuleHandleA( xors( "studiorender.dll" ) ), xors( "EB 1F FF 75 F0" ), -8 );
-
- std::function< void*( void** ) > find_ent;
- find_ent = [ & ]( void** ebp ) -> void* {
- if( !ebp )
- return nullptr;
-
- void** next = *( void*** )( ebp );
- if( ( uintptr_t )( ebp[ 1 ] ) == ret_addr )
- return next[ 4 ];
-
- return find_ent( next );
- };
-
- c_base_player* ent = ( c_base_player* )( find_ent( ( void** )( get_baseptr( ) ) ) );
- if( g_ctx.m_local && !!ent && ent->m_iHealth( ) > 0 && ent->m_iTeamNum( ) > 1 && g_settings.visuals.chams.enabled( ) && g_settings.misc.hide_from_obs ) {
- //g_cheat.chams.d3d_render_chams( ent, type, v_index, min_index, num_vert, start_index, prim_count );
- return true;
- }
-
- auto result = draw_o( device, type, v_index, min_index, num_vert, start_index, prim_count );
- return result;
-}
-
-long __stdcall hooks::d3d::end_scene( IDirect3DDevice9* device ) {
- static auto end_scene_o = cl.m_d3d->get_old_function< decltype( &hooks::d3d::end_scene ) >( 42 );
- if( cl.m_panic ) return end_scene_o( device );
-
- static uintptr_t return_address = 0;
- static uintptr_t gameoverlay_return_address = 0;
-
- if( !return_address ) {
- return_address = ( uintptr_t )( _ReturnAddress( ) );
- }
-
- if( !gameoverlay_return_address ) {
- MEMORY_BASIC_INFORMATION info;
- VirtualQuery( _ReturnAddress( ), &info, sizeof( MEMORY_BASIC_INFORMATION ) );
-
- char mod[ MAX_PATH ];
- GetModuleFileNameA( ( HMODULE )info.AllocationBase, mod, MAX_PATH );
-
- if( strstr( mod, xors( "gameoverlay" ) ) )
- gameoverlay_return_address = ( uintptr_t )( _ReturnAddress( ) );
- }
-
- if( return_address != ( uintptr_t )( _ReturnAddress( ) ) && !g_settings.misc.hide_from_obs )
- return end_scene_o( device );
-
- if( gameoverlay_return_address != ( uintptr_t )( _ReturnAddress( ) ) && g_settings.misc.hide_from_obs )
- return end_scene_o( device );
-
- if( !cl.m_panic && g_d3d.run_frame( device ) ) {
- for( auto& it : ::d3d::sprites )
- it->begin( device );
- g_d3d.begin( );
-
- //if( g_settings.misc.hide_from_obs )
- //g_cheat.m_chams.d3d_render_textures( );
-
- on_d3d( device );
-
- std::chrono::high_resolution_clock timer;
- static auto last = timer.now( );
- auto now = timer.now( );
-
- std::chrono::duration< double > delta = now - last;
- last = timer.now( );
-
- cl.m_frametime = delta.count( );
-
- if( !g_con->m_logs.empty( ) && g_settings.menu.logs_enable ) {
- auto& logs = g_con->m_logs;
- float time = ( float )GetTickCount( ) * 0.001f;
-
- auto data = logs.data( );
-
- int cur_pos = 2;
- for( int i = logs.size( ) - 1; i >= 0; --i ) {
- if( cur_pos > g_d3d.m_height - 200 ) {
- cur_pos -= 8;
- break;
- }
-
- float delta = time - data[ i ].m_time;
- if( delta >= 5.0f ) {
- break;
- }
-
- clr_t col( 255, 255, 255 );
- if( delta > 4.f ) col.a( ) *= ( 6.f - delta );
-
- g_d3d.draw_text< ALIGN_RIGHT >( fonts.f_con, col, g_d3d.m_width - 5, cur_pos, D3DFONTFLAG_DROPSHADOW, data[ i ].m_msg );
- cur_pos += 10;
- }
- }
-
- if( g_settings.menu.open || g_con->m_open ) {
- ui::ui_draw_cursor( );
- }
-
- for( auto& it : ::d3d::sprites )
- it->end( );
- g_d3d.end( );
- }
-
- return end_scene_o( device );
-}
-
-long __stdcall hooks::d3d::present( IDirect3DDevice9* device, RECT* source, RECT* dest, HWND wnd_override, RGNDATA* reg ) {
- static auto present_o = cl.m_d3d->get_old_function< decltype( &hooks::d3d::present ) >( 17 );
-
- static uintptr_t return_address = 0;
- if( !return_address ) {
- return_address = ( uintptr_t )( _ReturnAddress( ) );
- }
-
- if( return_address && return_address != ( uintptr_t )( _ReturnAddress( ) ) )
- return present_o( device, source, dest, wnd_override, reg );
-
- if( g_d3d.run_frame( device ) ) {
- g_d3d.begin( );
- if( g_settings.misc.watermark ) {
- static std::string str( xors( "moneybot | " ) );
- static bool transform = false;
- if( !transform ) {
- str += __DATE__;
- str += ", ";
- str += __TIME__;
-
- std::transform( str.begin( ), str.end( ), str.begin( ),
- [ ]( char c ) { return ::tolower( c ); } );
- transform = true;
- }
-
- g_d3d.draw_text< ALIGN_RIGHT >( ::d3d::fonts.f_menu,
- ui::ui_get_text_col( ), g_d3d.m_width - 10, 8,
- D3DFONTFLAG_DROPSHADOW, str.c_str( ) );
- }
-
- g_con->draw( );
- if( ( g_settings.menu.open || g_con->m_open ) && !g_settings.misc.hide_from_obs ) {
- ui::ui_draw_cursor( );
- }
- g_d3d.end( );
- }
-
- return present_o( device, source, dest, wnd_override, reg );
-}
-
-long __stdcall hooks::d3d::reset( IDirect3DDevice9* device, D3DPRESENT_PARAMETERS* params ) {
- static auto reset_o = cl.m_d3d->get_old_function< decltype( &hooks::d3d::reset ) >( 16 );
- if( cl.m_panic ) {
- return reset_o( device, params );
- }
-
- for( auto& sprite : ::d3d::sprites )
- sprite->on_reset( );
-
- g_d3d.on_device_lost( );
- long result = reset_o( device, params );
- g_d3d.on_device_reset( );
-
- for( auto& sprite : ::d3d::sprites )
- sprite->on_reset_end( );
-
- return result;
-}
\ No newline at end of file diff --git a/tf2/do_post_screen_space_effects.cpp b/tf2/do_post_screen_space_effects.cpp deleted file mode 100644 index 401b05e..0000000 --- a/tf2/do_post_screen_space_effects.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "hooks.h"
-#include "base_cheat.h"
-#include "ctx.hpp"
-//whore?
-bool __fastcall hooks::do_post_screen_space_effects( void* ecx_, void* edx_, CViewSetup* setup ) {
- static auto old_fn = cl.m_clientmode->get_old_function< decltype( &do_post_screen_space_effects ) >( 39 );
-
- g_ctx.m_drawing_postscreenspace = true;
- if( cl.m_engine( )->IsInGame( ) && g_ctx.m_local ) {
- }
-
- bool ret = old_fn( ecx_, 0, setup );
- g_ctx.m_drawing_postscreenspace = false;
-
- return ret;
-}
\ No newline at end of file diff --git a/tf2/draw_model_execute.cpp b/tf2/draw_model_execute.cpp deleted file mode 100644 index 1191a90..0000000 --- a/tf2/draw_model_execute.cpp +++ /dev/null @@ -1,125 +0,0 @@ -#include "hooks.h"
-#include "base_cheat.h"
-#include "ctx.hpp"
-#include "util.hpp"
-#include "settings.h"
-//this is so ugly dont even look at it
-
-//gets called once per frame for every entity
-void __fastcall hooks::draw_model_execute( IVModelInfo* ecx_, void* edx_, void* render_ctx, const DrawModelState_t& state, const ModelRenderInfo_t& info, matrix3x4* bone_to_world ) {
- static auto dme_o = cl.m_model_render->get_old_function< decltype( &hooks::draw_model_execute ) >( 19 );
-
- if( cl.m_panic || g_ctx.m_drawing_postscreenspace || g_settings.misc.hide_from_obs )
- return dme_o( ecx_, edx_, render_ctx, state, info, bone_to_world );
-
- bool draw = true;
- IMaterial* mat = g_settings.visuals.chams.flat( ) ? g_cheat.chams.m_materials.m_chams_flat : g_cheat.chams.m_materials.m_chams;
- auto model_name = cl.m_modelinfo( )->GetModelName( info.m_model );
- auto local_index = cl.m_engine( )->GetLocalPlayer( );
- int local_team = 0;
- if( g_ctx.m_local )
- local_team = g_ctx.m_local->m_iTeamNum( );
- int team = 0;
- bool is_player = false;
-
- if( strstr( model_name, xors( "models/player" ) ) && info.m_entity_index == local_index ) {
- if( g_settings.misc.thirdperson( ) && g_ctx.m_local && g_ctx.m_local->is_valid( )
- && g_ctx.m_local->m_bIsScoped( ) ) {
- float clr[ ] = { 1.0f, 1.0f, 1.0f };
- cl.m_render_view( )->SetColorModulation( clr );
- cl.m_render_view( )->SetBlend( 0.5f );
- return dme_o( ecx_, edx_, render_ctx, state, info, bone_to_world );
- }
- }
-
- if( strstr( model_name, xors( "models/player" ) ) && info.m_entity_index ) {
- auto player = cl.m_entlist( )->get_client_entity< c_base_player >( info.m_entity_index );
-
- if( player && player->is_valid( ) ) {
- is_player = true;
- team = player->m_iTeamNum( );
-
- if( g_settings.visuals.chams.enabled ) {
- if( g_settings.visuals.chams.ignore_z && !g_ctx.m_drawing_screneend && ( team != local_team || g_settings.visuals.chams.friendlies( ) ) )
- draw = false;
- else if( !g_settings.visuals.chams.ignore_z && ( team != local_team || g_settings.visuals.chams.friendlies( ) ) ) {
- fclr_t clr = team != local_team ? g_settings.visuals.chams.color_visible_enemy( ) : g_settings.visuals.chams.color_visible_friendly( );
-
- mat->SetMaterialVarFlag( MATERIAL_VAR_IGNOREZ, false );
- g_cheat.chams.m_materials.force_material( mat, clr );
- dme_o( ecx_, 0, render_ctx, state, info, bone_to_world );
- cl.m_model_render( )->ForcedMaterialOverride( nullptr );
- cl.m_render_view( )->SetBlend( 1.0f );
- draw = false;
- }
- }
-
- }
- }
-
- if( g_settings.misc.transparent_vm && strstr( model_name, xors( "weapon" ) ) ) {
- if( strstr( model_name, xors( "arms" ) ) ) {
- cl.m_render_view( )->SetBlend( 0.6f );
- }
- }
-
- if( is_player ) {
-
- if( g_settings.legit.backtracking_visualize( ) && ( team != local_team || g_settings.legit.friendlies( ) ) ) {
- auto ent = cl.m_entlist( )->get_client_entity< c_base_player >( info.m_entity_index );
- auto record = g_cheat.aim.m_lagcomp.find_best_record( info.m_entity_index );
- { //idk
- auto records = g_cheat.aim.m_lagcomp.get_records( info.m_entity_index );
- if( records.size( ) ) {
- for( auto& it : util::reverse_iterator( records ) ) {
- if( it.is_valid( ) ) {
- record = ⁢
- break;
- }
- }
- }
- }
-
- if( record && record->is_valid( ) && record->m_position.dist_to( ent->get_hitbox_position( 0 ) ) > 5.f ) {
- fclr_t clr_hid = team != local_team ? g_settings.visuals.chams.color_hidden_enemy( ).to_fclr( ) : g_settings.visuals.chams.color_hidden_friendly( ).to_fclr( );
-
- float backup_modulation[ 3 ]{ };
- bool backup_ignorez = false;
- float backup_blend = 1.0f;
-
- backup_blend = cl.m_render_view( )->GetBlend( );
- cl.m_render_view( )->GetColorModulation( backup_modulation );
-
- //BIG ROFL
- if( backup_modulation[ 0 ] == clr_hid.r( ) && backup_modulation[ 1 ] == clr_hid.g( ) && backup_modulation[ 2 ] == clr_hid.b( )
- && backup_blend == clr_hid.a( ) ) {
- backup_ignorez = true;
- }
-
- if( !backup_ignorez ) {
- auto flat_mat = g_cheat.chams.m_materials.m_chams_flat.m_mat;
- flat_mat->SetMaterialVarFlag( MATERIAL_VAR_IGNOREZ, g_settings.visuals.chams.ignore_z && g_settings.visuals.chams.enabled );
- g_cheat.chams.m_materials.force_material( g_cheat.chams.m_materials.m_chams_flat, g_settings.legit.backtracking_col( ) );
- dme_o( ecx_, edx_, render_ctx, state, info, record->m_matrix );
- flat_mat->SetMaterialVarFlag( MATERIAL_VAR_IGNOREZ, false );
- }
-
- cl.m_render_view( )->SetBlend( backup_blend );
- cl.m_render_view( )->SetColorModulation( backup_modulation );
- cl.m_model_render( )->ForcedMaterialOverride( g_settings.visuals.chams.enabled( ) &&
- ( team != local_team || g_settings.visuals.chams.friendlies( ) ) ? mat : nullptr );
-
- if( draw ) {
- dme_o( ecx_, edx_, render_ctx, state, info, bone_to_world );
- draw = false;
- }
- }
- }
- }
-
- if( draw ) {
- dme_o( ecx_, 0, render_ctx, state, info, bone_to_world );
- }
-
- cl.m_model_render( )->ForcedMaterialOverride( nullptr );
-}
\ No newline at end of file diff --git a/tf2/dt_common.h b/tf2/dt_common.h deleted file mode 100644 index 7f86418..0000000 --- a/tf2/dt_common.h +++ /dev/null @@ -1,127 +0,0 @@ -#pragma once
-
-#define MAX_DATATABLES 1024 // must be a power of 2.
-#define MAX_DATATABLE_PROPS 4096
-#define MAX_ARRAY_ELEMENTS 2048 // a network array should have more that 1024 elements
-
-#define HIGH_DEFAULT -121121.121121f
-
-#define BITS_FULLRES -1 // Use the full resolution of the type being encoded.
-#define BITS_WORLDCOORD -2 // Encode as a world coordinate.
-
-#define DT_MAX_STRING_BITS 9
-#define DT_MAX_STRING_BUFFERSIZE (1 << DT_MAX_STRING_BITS) // Maximum length of a string that can be sent.
-
-#define STRINGBUFSIZE(className, varName) sizeof(((className*)0)->varName)
-
-// Gets the size of a variable in a class.
-#define PROPSIZEOF(className, varName) sizeof(((className*)0)->varName)
-
-// SendProp::m_Flags.
-enum SPROP_FLAGS
-{
- SPROP_UNSIGNED = (1<<0), // Unsigned integer data.
- SPROP_COORD = (1<<1), // If this is set, the float/vector is treated like a world coordinate.
- // Note that the bit count is ignored in this case.
- SPROP_NOSCALE = (1<<2), // For floating point, don't scale into range, just take value as is.
- SPROP_ROUNDDOWN = (1<<3), // For floating point, limit high value to range minus one bit unit
- SPROP_ROUNDUP = (1<<4), // For floating point, limit low value to range minus one bit unit
- SPROP_NORMAL = (1<<5), // If this is set, the vector is treated like a normal (only valid for vectors),
- SPROP_EXCLUDE = (1<<6), // This is an exclude prop (not excludED, but it points at another prop to be excluded),.
- SPROP_XYZE = (1<<7), // Use XYZ/Exponent encoding for vectors.
- SPROP_INSIDEARRAY = (1<<8), // This tells us that the property is inside an array, so it shouldn't be put into the
- // flattened property list. Its array will point at it when it needs to.
- SPROP_PROXY_ALWAYS_YES = (1<<9), // Set for datatable props using one of the default datatable proxies like
- // SendProxy_DataTableToDataTable that always send the data to all clients.
- SPROP_CHANGES_OFTEN = (1<<10), // this is an often changed field, moved to head of sendtable so it gets a small index
- SPROP_IS_A_VECTOR_ELEM = (1<<11), // Set automatically if SPROP_VECTORELEM is used.
- SPROP_COLLAPSIBLE = (1<<12), // Set automatically if it's a datatable with an offset of 0 that doesn't change the pointer
- // (ie: for all automatically-chained base classes),.
- // In this case, it can get rid of this SendPropDataTable altogether and spare the
- // trouble of walking the hierarchy more than necessary.
- SPROP_COORD_MP = (1<<13), // Like SPROP_COORD, but special handling for multiplayer games
- SPROP_COORD_MP_LOWPRECISION = (1<<14), // Like SPROP_COORD, but special handling for multiplayer games where the fractional component only gets a 3 bits instead of 5
- SPROP_COORD_MP_INTEGRAL = (1<<15), // SPROP_COORD_MP, but coordinates are rounded to integral boundaries
-
- // This is server side only, it's used to mark properties whose SendProxy_* functions encode against gpGlobals->tickcount (the only ones that currently do this are
- // m_flAnimTime and m_flSimulationTime. MODs shouldn't need to mess with this probably
- SPROP_ENCODED_AGAINST_TICKCOUNT = (1<<16),
-};
-
-#define SPROP_NUMFLAGBITS_NETWORKED 16
-
-#define SPROP_NUMFLAGBITS 17
-
-// Used by the SendProp and RecvProp functions to disable debug checks on type sizes.
-#define SIZEOF_IGNORE -1
-
-// Use this to extern send and receive datatables, and reference them.
-#define EXTERN_SEND_TABLE(tableName) namespace tableName {extern SendTable g_SendTable;}
-#define EXTERN_RECV_TABLE(tableName) namespace tableName {extern RecvTable g_RecvTable;}
-
-#define REFERENCE_SEND_TABLE(tableName) tableName::g_SendTable
-#define REFERENCE_RECV_TABLE(tableName) tableName::g_RecvTable
-
-class SendProp;
-
-typedef enum
-{
- DPT_Int = 0,
- DPT_Float,
- DPT_Vector,
- DPT_VectorXY,
- DPT_String,
- DPT_Array, // An array of the base types (can't be of datatables).
- DPT_DataTable,
- DPT_NUMSendPropTypes
-} SendPropType;
-
-/*
-class DVariant
-{
-public:
- union
- {
- float m_Float;
- long m_Int;
- char* m_pString;
- void* m_pData; // For DataTables.
- float m_Vector[3];
- };
-
- SendPropType m_Type;
-
- DVariant() { m_Type = DPT_Float; }
-
- DVariant(float val)
- {
- m_Type = DPT_Float;
- m_Float = val;
- }
-};
-*/
-
-struct DVariant {
- union {
- float m_Float;
- long m_Int;
- char* m_pString;
- void* m_pData;
- float m_Vector[3];
- __int64 m_Int64;
- };
-
- int m_Type;
-};
-
-// This can be used to set the # of bits used to transmit a number between 0 and nMaxElements-1.
-inline int NumBitsForCount(int nMaxElements)
-{
- int nBits = 0;
- while(nMaxElements > 0)
- {
- ++nBits;
- nMaxElements >>= 1;
- }
- return nBits;
-}
diff --git a/tf2/dt_recv.h b/tf2/dt_recv.h deleted file mode 100644 index 47f945b..0000000 --- a/tf2/dt_recv.h +++ /dev/null @@ -1,479 +0,0 @@ -#pragma once
-
-#include "dt_common.h"
-
-#define ADDRESSPROXY_NONE -1
-
-class RecvTable;
-class RecvProp;
-
-/*
-// This is passed into RecvProxy functions.
-class CRecvProxyData
-{
-public:
- const RecvProp* m_pRecvProp; // The property it's receiving.
- DVariant m_Value; // The value given to you to store.
- int m_iElement; // Which array element you're getting.
- int m_ObjectID; // The object being referred to.
-};
-*/
-
-struct CRecvProxyData {
- const RecvProp* m_pRecvProp;
- DVariant m_Value;
- int m_iElement;
- int m_ObjectID;
-};
-
-//-----------------------------------------------------------------------------
-// pStruct = the base structure of the datatable this variable is in (like C_BaseEntity)
-// pOut = the variable that this this proxy represents (like C_BaseEntity::m_SomeValue).
-//
-// Convert the network-standard-type value in m_Value into your own format in pStruct/pOut.
-//-----------------------------------------------------------------------------
-typedef void (*RecvVarProxyFn)(const CRecvProxyData* pData, void* pStruct, void* pOut);
-
-// ------------------------------------------------------------------------ //
-// ArrayLengthRecvProxies are optionally used to get the length of the
-// incoming array when it changes.
-// ------------------------------------------------------------------------ //
-typedef void (*ArrayLengthRecvProxyFn)(void* pStruct, int objectID, int currentArrayLength);
-
-// NOTE: DataTable receive proxies work differently than the other proxies.
-// pData points at the object + the recv table's offset.
-// pOut should be set to the location of the object to unpack the data table into.
-// If the parent object just contains the child object, the default proxy just does *pOut = pData.
-// If the parent object points at the child object, you need to dereference the pointer here.
-// NOTE: don't ever return null from a DataTable receive proxy function. Bad things will happen.
-typedef void (*DataTableRecvVarProxyFn)(const RecvProp* pProp, void** pOut, void* pData, int objectID);
-
-// This is used to fork over the standard proxy functions to the engine so it can
-// make some optimizations.
-class CStandardRecvProxies
-{
-public:
- CStandardRecvProxies();
-
- RecvVarProxyFn m_Int32ToInt8;
- RecvVarProxyFn m_Int32ToInt16;
- RecvVarProxyFn m_Int32ToInt32;
- RecvVarProxyFn m_FloatToFloat;
- RecvVarProxyFn m_VectorTovec3_t;
-};
-
-extern CStandardRecvProxies g_StandardRecvProxies;
-
-class CRecvDecoder;
-
-class RecvProp
-{
- // This info comes from the receive data table.
-public:
- RecvProp();
-
- void InitArray(int nElements, int elementStride);
-
- int GetNumElements() const;
- void SetNumElements(int nElements);
-
- int GetElementStride() const;
- void SetElementStride(int stride);
-
- int GetFlags() const;
-
- const char* GetName() const;
- SendPropType GetType() const;
-
- RecvTable* GetDataTable() const;
- void SetDataTable(RecvTable* pTable);
-
- RecvVarProxyFn GetProxyFn() const;
- void SetProxyFn(RecvVarProxyFn fn);
-
- DataTableRecvVarProxyFn GetDataTableProxyFn() const;
- void SetDataTableProxyFn(DataTableRecvVarProxyFn fn);
-
- int GetOffset() const;
- void SetOffset(int o);
-
- // Arrays only.
- RecvProp* GetArrayProp() const;
- void SetArrayProp(RecvProp* pProp);
-
- // Arrays only.
- void SetArrayLengthProxy(ArrayLengthRecvProxyFn proxy);
- ArrayLengthRecvProxyFn GetArrayLengthProxy() const;
-
- bool IsInsideArray() const;
- void SetInsideArray();
-
- // Some property types bind more data to the prop in here.
- const void* GetExtraData() const;
- void SetExtraData(const void* pData);
-
- // If it's one of the numbered "000", "001", etc properties in an array, then
- // these can be used to get its array property name for debugging.
- const char* GetParentArrayPropName();
- void SetParentArrayPropName(const char* pArrayPropName);
-
-public:
- const char* m_pVarName;
- SendPropType m_RecvType;
- int m_Flags;
- int m_StringBufferSize;
-
- bool m_bInsideArray; // Set to true by the engine if this property sits inside an array.
-
- // Extra data that certain special property types bind to the property here.
- const void* m_pExtraData;
-
- // If this is an array (DPT_Array).
- RecvProp* m_pArrayProp;
- ArrayLengthRecvProxyFn m_ArrayLengthProxy;
-
- RecvVarProxyFn m_ProxyFn;
- DataTableRecvVarProxyFn m_DataTableProxyFn; // For RDT_DataTable.
-
- RecvTable* m_pDataTable; // For RDT_DataTable.
- int m_Offset;
-
- int m_ElementStride;
- int m_nElements;
-
- // If it's one of the numbered "000", "001", etc properties in an array, then
- // these can be used to get its array property name for debugging.
- const char* m_pParentArrayPropName;
-};
-
-class RecvTable
-{
-public:
- using PropType = RecvProp;
-
- RecvTable();
- RecvTable(RecvProp* pProps, int nProps, const char* pNetTableName);
- ~RecvTable();
-
- void Construct(RecvProp* pProps, int nProps, const char* pNetTableName);
-
- int GetNumProps();
- RecvProp* GetProp(int i);
-
- const char* GetName();
-
- // Used by the engine while initializing array props.
- void SetInitialized(bool bInitialized);
- bool IsInitialized() const;
-
- // Used by the engine.
- void SetInMainList(bool bInList);
- bool IsInMainList() const;
-
-public:
- // Properties described in a table.
- RecvProp* m_pProps;
- int m_nProps;
-
- // The decoder. NOTE: this covers each RecvTable AND all its children (ie: its children
- // will have their own decoders that include props for all their children).
- CRecvDecoder* m_pDecoder;
-
- const char* m_pNetTableName; // The name matched between client and server.
-
-private:
- bool m_bInitialized;
- bool m_bInMainList;
-};
-
-inline int RecvTable::GetNumProps()
-{
- return m_nProps;
-}
-
-inline RecvProp* RecvTable::GetProp(int i)
-{
- // Assert( i >= 0 && i < m_nProps );
- return &m_pProps[i];
-}
-
-inline const char* RecvTable::GetName()
-{
- return m_pNetTableName;
-}
-
-inline void RecvTable::SetInitialized(bool bInitialized)
-{
- m_bInitialized = bInitialized;
-}
-
-inline bool RecvTable::IsInitialized() const
-{
- return m_bInitialized;
-}
-
-inline void RecvTable::SetInMainList(bool bInList)
-{
- m_bInMainList = bInList;
-}
-
-inline bool RecvTable::IsInMainList() const
-{
- return m_bInMainList;
-}
-
-#define RECVINFO(varName) #varName, offsetof(currentRecvDTClass, varName), sizeof(((currentRecvDTClass*)0)->varName)
-#define RECVINFO_NAME(varName, remoteVarName) #remoteVarName, offsetof(currentRecvDTClass, varName), sizeof(((currentRecvDTClass*)0)->varName)
-#define RECVINFO_STRING(varName) #varName, offsetof(currentRecvDTClass, varName), STRINGBUFSIZE(currentRecvDTClass, varName)
-#define RECVINFO_BASECLASS(tableName) RecvPropDataTable("this", 0, 0, &REFERENCE_RECV_TABLE(tableName))
-#define RECVINFO_ARRAY(varName) #varName, offsetof(currentRecvDTClass, varName), sizeof(((currentRecvDTClass*)0)->varName[0]), sizeof(((currentRecvDTClass*)0)->varName)/sizeof(((currentRecvDTClass*)0)->varName[0])
-
-// Just specify the name and offset. Used for strings and data tables.
-#define RECVINFO_NOSIZE(varName) #varName, offsetof(currentRecvDTClass, varName)
-#define RECVINFO_DT(varName) RECVINFO_NOSIZE(varName)
-#define RECVINFO_DTNAME(varName,remoteVarName) #remoteVarName, offsetof(currentRecvDTClass, varName)
-
-void RecvProxy_FloatToFloat(const CRecvProxyData* pData, void* pStruct, void* pOut);
-void RecvProxy_VectorToVector(const CRecvProxyData* pData, void* pStruct, void* pOut);
-void RecvProxy_QuaternionToQuaternion(const CRecvProxyData* pData, void* pStruct, void* pOut);
-void RecvProxy_Int32ToInt8(const CRecvProxyData* pData, void* pStruct, void* pOut);
-void RecvProxy_Int32ToInt16(const CRecvProxyData* pData, void* pStruct, void* pOut);
-void RecvProxy_StringToString(const CRecvProxyData* pData, void* pStruct, void* pOut);
-void RecvProxy_Int32ToInt32(const CRecvProxyData* pData, void* pStruct, void* pOut);
-
-// StaticDataTable does *pOut = pData.
-void DataTableRecvProxy_StaticDataTable(const RecvProp* pProp, void** pOut, void* pData, int objectID);
-
-// PointerDataTable does *pOut = *((void**)pData) (ie: pData is a pointer to the object to decode into).
-void DataTableRecvProxy_PointerDataTable(const RecvProp* pProp, void** pOut, void* pData, int objectID);
-
-RecvProp RecvPropFloat(
- const char* pVarName,
- int offset,
- int sizeofVar = SIZEOF_IGNORE, // Handled by RECVINFO macro, but set to SIZEOF_IGNORE if you don't want to bother.
- int flags = 0,
- RecvVarProxyFn varProxy = RecvProxy_FloatToFloat
-);
-
-RecvProp RecvPropVector(
- const char* pVarName,
- int offset,
- int sizeofVar = SIZEOF_IGNORE, // Handled by RECVINFO macro, but set to SIZEOF_IGNORE if you don't want to bother.
- int flags = 0,
- RecvVarProxyFn varProxy = RecvProxy_VectorToVector
-);
-
-// This is here so the RecvTable can look more like the SendTable.
-#define RecvPropQAngles RecvPropVector
-
-RecvProp RecvPropInt(
- const char* pVarName,
- int offset,
- int sizeofVar = SIZEOF_IGNORE, // Handled by RECVINFO macro, but set to SIZEOF_IGNORE if you don't want to bother.
- int flags = 0,
- RecvVarProxyFn varProxy = 0
-);
-
-RecvProp RecvPropString(
- const char* pVarName,
- int offset,
- int bufferSize,
- int flags = 0,
- RecvVarProxyFn varProxy = RecvProxy_StringToString
-);
-
-RecvProp RecvPropDataTable(
- const char* pVarName,
- int offset,
- int flags,
- RecvTable* pTable,
- DataTableRecvVarProxyFn varProxy = DataTableRecvProxy_StaticDataTable
-);
-
-RecvProp RecvPropArray3(
- const char* pVarName,
- int offset,
- int sizeofVar,
- int elements,
- RecvProp pArrayProp,
- DataTableRecvVarProxyFn varProxy = DataTableRecvProxy_StaticDataTable
-);
-
-// Use the macro to let it automatically generate a table name. You shouldn't
-// ever need to reference the table name. If you want to exclude this array, then
-// reference the name of the variable in varTemplate.
-RecvProp InternalRecvPropArray(
- const int elementCount,
- const int elementStride,
- const char* pName,
- ArrayLengthRecvProxyFn proxy
-);
-
-//
-// Use this if you want to completely manage the way the array data is stored.
-// You'll need to provide a proxy inside varTemplate that looks for 'iElement'
-// to figure out where to store the specified element.
-//
-#define RecvPropVirtualArray( arrayLengthProxy, maxArrayLength, varTemplate, propertyName ) \
- varTemplate, \
- InternalRecvPropArray( \
- maxArrayLength, \
- 0, \
- #propertyName, \
- arrayLengthProxy \
- )
-
-// Use this and pass the array name and it will figure out the count and stride automatically.
-#define RecvPropVariableLengthArray( arrayLengthProxy, varTemplate, arrayName ) \
- varTemplate, \
- InternalRecvPropArray( \
- sizeof(((currentRecvDTClass*)0)->arrayName) / PROPSIZEOF(currentRecvDTClass, arrayName[0]), \
- PROPSIZEOF(currentRecvDTClass, arrayName[0]), \
- #arrayName, \
- arrayLengthProxy \
- )
-
-// Use this and pass the array name and it will figure out the count and stride automatically.
-#define RecvPropArray( varTemplate, arrayName ) \
- RecvPropVariableLengthArray( 0, varTemplate, arrayName )
-
-// Use this one to specify the element count and stride manually.
-#define RecvPropArray2( arrayLengthProxy, varTemplate, elementCount, elementStride, arrayName ) \
- varTemplate, \
- InternalRecvPropArray( elementCount, elementStride, #arrayName, arrayLengthProxy )
-
-// ---------------------------------------------------------------------------------------- //
-// Inlines.
-// ---------------------------------------------------------------------------------------- //
-
-inline void RecvProp::InitArray(int nElements, int elementStride)
-{
- m_RecvType = DPT_Array;
- m_nElements = nElements;
- m_ElementStride = elementStride;
-}
-
-inline int RecvProp::GetNumElements() const
-{
- return m_nElements;
-}
-
-inline void RecvProp::SetNumElements(int nElements)
-{
- m_nElements = nElements;
-}
-
-inline int RecvProp::GetElementStride() const
-{
- return m_ElementStride;
-}
-
-inline void RecvProp::SetElementStride(int stride)
-{
- m_ElementStride = stride;
-}
-
-inline int RecvProp::GetFlags() const
-{
- return m_Flags;
-}
-
-inline const char* RecvProp::GetName() const
-{
- return m_pVarName;
-}
-
-inline SendPropType RecvProp::GetType() const
-{
- return m_RecvType;
-}
-
-inline RecvTable* RecvProp::GetDataTable() const
-{
- return m_pDataTable;
-}
-
-inline void RecvProp::SetDataTable(RecvTable* pTable)
-{
- m_pDataTable = pTable;
-}
-
-inline RecvVarProxyFn RecvProp::GetProxyFn() const
-{
- return m_ProxyFn;
-}
-
-inline void RecvProp::SetProxyFn(RecvVarProxyFn fn)
-{
- m_ProxyFn = fn;
-}
-
-inline DataTableRecvVarProxyFn RecvProp::GetDataTableProxyFn() const
-{
- return m_DataTableProxyFn;
-}
-
-inline void RecvProp::SetDataTableProxyFn(DataTableRecvVarProxyFn fn)
-{
- m_DataTableProxyFn = fn;
-}
-
-inline int RecvProp::GetOffset() const
-{
- return m_Offset;
-}
-
-inline void RecvProp::SetOffset(int o)
-{
- m_Offset = o;
-}
-
-inline RecvProp* RecvProp::GetArrayProp() const
-{
- return m_pArrayProp;
-}
-
-inline void RecvProp::SetArrayProp(RecvProp* pProp)
-{
- m_pArrayProp = pProp;
-}
-
-inline void RecvProp::SetArrayLengthProxy(ArrayLengthRecvProxyFn proxy)
-{
- m_ArrayLengthProxy = proxy;
-}
-
-inline ArrayLengthRecvProxyFn RecvProp::GetArrayLengthProxy() const
-{
- return m_ArrayLengthProxy;
-}
-
-inline bool RecvProp::IsInsideArray() const
-{
- return m_bInsideArray;
-}
-
-inline void RecvProp::SetInsideArray()
-{
- m_bInsideArray = true;
-}
-
-inline const void* RecvProp::GetExtraData() const
-{
- return m_pExtraData;
-}
-
-inline void RecvProp::SetExtraData(const void* pData)
-{
- m_pExtraData = pData;
-}
-
-inline const char* RecvProp::GetParentArrayPropName()
-{
- return m_pParentArrayPropName;
-}
-
-inline void RecvProp::SetParentArrayPropName(const char* pArrayPropName)
-{
- m_pParentArrayPropName = pArrayPropName;
-}
diff --git a/tf2/emit_sound.cpp b/tf2/emit_sound.cpp deleted file mode 100644 index b311b84..0000000 --- a/tf2/emit_sound.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#include "base_cheat.h"
-#include "hooks.h"
-#include "settings.h"
-
-//eenie meenie miney moe i kepy this in here incase i wanted to ever do something with it i could fix it to match tf2's emitsound but yknow what? i prolly wont watadearhiugaer sorry i spilt water on my desk and smashed my face into the keyboard
-
-void __fastcall hooks::emit_sound( void* ecx_, void* edx_, void* filter, int ent, int channel, const char* sound, uint32_t hash,
- const char* sample, float volume, float attenuation, int seed, int flags, int pitch, const vec3_t* origin,
- const vec3_t* direction, vec3_t* origins, bool update_pos, float sound_time, int speaker_entry ) {
- static auto emit_sound_o = cl.m_engine_sound->get_old_function< decltype( &hooks::emit_sound ) >( 5 );
-
- if( !cl.m_panic && origin ) {
- auto entity = cl.m_entlist( )->get_client_entity< c_base_player >( ent );
- if( entity && entity->is_player( ) && entity->ce( )->is_dormant( ) &&
- ent >= 0 && ent <= 64 )
- g_cheat.visuals.update_position( ent, *origin );
- }
-
- if( strstr( sample, xors( "weapon" ) ) && g_settings.misc.no_sound )
- volume = 0.f;
-
- emit_sound_o( ecx_, 0, filter, ent, channel, sound, hash, sample,
- volume, attenuation, seed, flags, pitch, origin, direction,
- origins, update_pos, sound_time, speaker_entry );
-}
\ No newline at end of file diff --git a/tf2/extra.cpp b/tf2/extra.cpp deleted file mode 100644 index 894c957..0000000 --- a/tf2/extra.cpp +++ /dev/null @@ -1,91 +0,0 @@ -#include "base_cheat.h"
-#include "ctx.hpp"
-#include "input_system.hpp"
-#include "math.h"
-#include "hooks.h"
-#include "interfaces.h"
-#undef min
-#include "extra.h"
-#include "settings.h"
-
-namespace features
-{
- //crash too lazy to fix rn will do , who wants to fly out of their body and become their own guardian angel anyway?
- void c_extra::thirdperson( ) {
- if( !g_ctx.m_local )
- return;
-
- static bool enabled = false;
- static bool toggle = true;
- static bool key_held = false;
-
-
- if( g_input.is_key_pressed( ( VirtualKeys_t )g_settings.misc.thirdperson_key( ) ) ) {
- if( !key_held ) {
- toggle ^= 1;
- }
- key_held = true;
- }
- else {
- key_held = false;
- }
-
- if( !g_settings.misc.thirdperson || !toggle ) {
- if( enabled ) {
- cl.m_hl_input->m_fCameraInThirdPerson = false;
- enabled = false;
- }
-
- return;
- }
-
- vec3_t viewangles{ };
- if( g_ctx.m_local->is_alive( ) ) {
- cl.m_engine( )->GetViewAngles( viewangles );
- cl.m_hl_input->m_fCameraInThirdPerson = true;
- cl.m_hl_input->m_vecCameraOffset = vec3_t( viewangles.x, viewangles.y, 150.0f );
-
- float cam_hull_offset{ 16.f };
-
- vec3_t cam_hull_min( -cam_hull_offset, -cam_hull_offset, -cam_hull_offset );
- vec3_t cam_hull_max( cam_hull_offset, cam_hull_offset, cam_hull_offset );
- vec3_t cam_forward, origin = g_ctx.m_local->get_eye_pos( );
-
- cam_forward = math::angle_vectors( vec3_t( viewangles.x, viewangles.y, 0.f ) );
-
- CTraceFilterWorldAndPropsOnly filter;
- Ray_t ray;
- CGameTrace tr;
-
- ray.Init( origin, origin - ( cam_forward * 150.f ), cam_hull_min, cam_hull_max );
-
- cl.m_trace( )->trace_ray( ray, MASK_SOLID & ~CONTENTS_MONSTER, &filter, &tr );
- cl.m_hl_input->m_vecCameraOffset.z = 150.f * tr.fraction;
-
- enabled = true;
- }
- else if( cl.m_entlist( )->get_entity_from_handle< c_base_player >( g_ctx.m_local->m_hObserverTarget( ) ) ) {
- cl.m_hl_input->m_fCameraInThirdPerson = false;
- g_ctx.m_local->m_iObserverMode( ) = 5;
- }
- }
-
- //hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
- void c_extra::float_ragdolls( ) {
- for( int i{ }; i < cl.m_entlist( )->get_highest_entity_index( ); ++i ) {
- auto ent = cl.m_entlist( )->get_client_entity< IClientEntity >( i );
- if( !ent ) continue;
-
- auto client_class = ent->get_client_class( );
- if( !client_class ) continue;
-
- int class_id = client_class->m_class_id;
- if( class_id != CTFRagdoll )
- return;
-
- ent->as< c_base_player >( )->m_vecRagdollVelocity( ) *= -1;
- }
- }
-
-
-}
\ No newline at end of file diff --git a/tf2/extra.h b/tf2/extra.h deleted file mode 100644 index d25131c..0000000 --- a/tf2/extra.h +++ /dev/null @@ -1,21 +0,0 @@ -#pragma once
-#include <vector>
-#include <deque>
-#include "IVEngineClient.h"
-#include "vector.hpp"
-#include "IClientMode.h"
-namespace features
-{
- class c_extra {
-
- public:
- void thirdperson( );
-
- void float_ragdolls( );
-
- void disable_post_processing( );
-
- private:
-
- };
-}
\ No newline at end of file diff --git a/tf2/factory.cpp b/tf2/factory.cpp deleted file mode 100644 index f8dfd42..0000000 --- a/tf2/factory.cpp +++ /dev/null @@ -1,110 +0,0 @@ -#include "factory.h"
-#ifndef IFACE_DLLMAIN
-#include "fnv.hpp"
-
-#include <algorithm>
-
-NAMESPACE_REGION( tf2 )
-NAMESPACE_REGION( interfaces )
-
-//iterate all exports inside of a module and find createinterface
-uintptr_t c_interface_manager::find_createinterface( void* module_ ) {
- IMAGE_DOS_HEADER* dos_header;
- IMAGE_NT_HEADERS* nt_headers;
- uintptr_t export_address;
- IMAGE_EXPORT_DIRECTORY* export_dir;
- const char* export_name;
- uintptr_t* names;
- uintptr_t* funcs;
- uint16_t* ords;
- uint32_t export_hash;
-
- dos_header = reinterpret_cast< decltype( dos_header ) >( uintptr_t( module_ ) );
- nt_headers = reinterpret_cast< decltype( nt_headers ) >( uintptr_t( module_ ) + dos_header->e_lfanew );
-
- //find addresses of functions from nt headers
- export_address = nt_headers->OptionalHeader.DataDirectory[ 0 ].VirtualAddress;
- export_dir = reinterpret_cast< decltype( export_dir ) >( uintptr_t( module_ ) + export_address );
-
- if( !export_dir->NumberOfFunctions )
- return uintptr_t{ };
-
- names = reinterpret_cast< uintptr_t* >( uintptr_t( module_ ) + export_dir->AddressOfNames );
- funcs = reinterpret_cast< uintptr_t* >( uintptr_t( module_ ) + export_dir->AddressOfFunctions );
-
- ords = reinterpret_cast< uint16_t* >( uintptr_t( module_ ) + export_dir->AddressOfNameOrdinals );
-
- if( names && funcs && ords ) {
- //iterate the exports
- for( size_t i{ }; i < export_dir->NumberOfNames; ++i ) {
- export_name = reinterpret_cast< const char* >( uintptr_t( module_ ) + names[ i ] );
- export_hash = hash::fnv1a( export_name );
-
- if( export_hash == fnv( "CreateInterface" ) ) {
- return uintptr_t( module_ ) + funcs[ ords[ i ] ];
- }
- }
- }
-
- return uintptr_t{ };
-}
-
-c_interface_manager::c_interface_manager( ) {
- auto teb = reinterpret_cast< PTEB >( __readfsdword( uintptr_t( &static_cast< NT_TIB* >( nullptr )->Self ) ) );
- auto peb = teb->ProcessEnvironmentBlock;
-
- auto root = &peb->Ldr->InMemoryOrderModuleList;
- //iterate module list
- for( auto entry = root->Flink->Flink->Flink->Flink; entry != root; entry = entry->Flink ) {
- PLDR_DATA_TABLE_ENTRY data_table;
- HMODULE module_base;
- uintptr_t create_interface_export;
- uintptr_t create_interface_;
- uintptr_t* list_iterator_ptr;
- interface_iterator_t* list_iterator;
-
- data_table = reinterpret_cast< PLDR_DATA_TABLE_ENTRY >( entry );
- module_base = reinterpret_cast< HMODULE >( data_table->Reserved2[ 0 ] );
- create_interface_export = find_createinterface( module_base );
-
- if( !create_interface_export || !is_createinterface_export( create_interface_export ) ) {
- continue;
- }
-
- //find the createinterface function
- create_interface_ = follow_createinterface_export( create_interface_export );
- if( !is_createinterface_fn( create_interface_ ) ) {
- continue;
- }
-
- //find the list iterator
- list_iterator_ptr = find_list_ptr( create_interface_ );
-
- //iterate the interface list
- for( list_iterator = reinterpret_cast< interface_iterator_t* >(
- list_iterator_ptr );
- !!list_iterator;
- list_iterator = list_iterator->m_next
- ) {
- std::string name( list_iterator->m_name );
- std::string module_name( util::unicode_to_ascii(
- std::wstring( data_table->FullDllName.Buffer, data_table->FullDllName.Length ) ) );
-
- uintptr_t ptr = static_cast< uintptr_t( *)( ) >( list_iterator->m_create_fn )( );
-
- size_t version = [ & ]( ) {
- std::string ret( name );
- ret.erase( std::remove_if( ret.begin( ), ret.end( ),
- [ & ]( int i ) { return !::isdigit( i ); }
- ), ret.end( ) );
- return atoi( ret.c_str( ) );
- }( );
-
- m_interfaces.emplace_back( interface_data_t{ name, module_name, version, ptr } );
- }
- }
-}
-
-END_REGION
-END_REGION
-#endif
\ No newline at end of file diff --git a/tf2/factory.h b/tf2/factory.h deleted file mode 100644 index d1e8027..0000000 --- a/tf2/factory.h +++ /dev/null @@ -1,155 +0,0 @@ -#pragma once
-#include <memory>
-#include <Windows.h>
-#include <winternl.h>
-#include <fstream>
-#include "vmt.h"
-#include "util.hpp"
-#include "x86.hpp"
-#include "console.hpp"
-#include "strings.hpp"
-//IFACE_DLLMAIN - interfaces are passed through dllmain and below code doesnt need to be ran
-#ifndef _DEBUG
-#define IFACE_DLLMAIN
-#endif
-
-#ifdef IFACE_DLLMAIN
-#include "iface_dllmain_impl.hpp"
-#else
-
-NAMESPACE_REGION( tf2 )
-
-namespace interfaces
-{
- struct interface_iterator_t {
- void* m_create_fn;
- char* m_name;
-
- interface_iterator_t* m_next;
- };
-
- inline auto follow_createinterface_export( uintptr_t export_ ) {
- /*
- .text:006F5F00 CreateInterface proc near
- .text:006F5F00 push ebp
- .text:006F5F01 mov ebp, esp
- .text:006F5F03 pop ebp
- .text:006F5F04 jmp sub_6F5E90
- */
- uintptr_t jmp = export_ + 0x4;
- uintptr_t jmp_target = jmp + *( uintptr_t* )( jmp + 0x1 ) + 0x5;
-
- return jmp_target;
- }
-
- inline auto find_list_ptr( uintptr_t createinterface ) {
- /*
- .text:006F5E90 push ebp
- .text:006F5E91 mov ebp, esp
- .text:006F5E93 push esi
- .text:006F5E94 mov esi, dword_2EEFDE4
- .text:006F5E9A push edi
- */
- auto iterator_ptr = **( uintptr_t*** )( createinterface + 0x6 );
-
- return iterator_ptr;
- }
-
- inline bool is_createinterface_export( uintptr_t export_ ) {
- return *( uint8_t* )( export_ ) == x86::encode_push_reg( x86::reg::ebp )
- && *( uint8_t* )( export_ + 4 ) == 0xe9
- && *( uint8_t* )( export_ + 9 ) == 0xcc
- && *( uint8_t* )( export_ + 10 ) == 0xcc;
- }
-
- inline bool is_createinterface_fn( uintptr_t fn_ ) {
- return *( uint8_t* )( fn_ ) == x86::encode_push_reg( x86::reg::ebp )
- && *( uint8_t* )( fn_ + 4 ) == 0x8b
- && *( uint8_t* )( fn_ + 10 ) == x86::encode_push_reg( x86::reg::edi );
- }
-
- class c_interface_manager {
- public:
- struct interface_data_t {
- std::string m_name;
- std::string m_module;
- size_t m_version;
- uintptr_t m_ptr;
-
- template < typename t > __forceinline t get( ) {
- return reinterpret_cast< t >( m_ptr );
- }
- };
-
- c_interface_manager( );
-
- //iterate the interface list to find our desired version
- template < typename t = void* >
- t find_interface( const std::string& module_, std::string name ) {
- //avoid finding interfaces with matching names
- if( !::isdigit( name[ name.length( ) - 1 ] ) )
- name += "0";
-
- for( auto& it : m_interfaces ) {
- if( !it.m_module.compare( module_ )
- && !it.m_name.compare( name ) ) {
- g_con->print( xors( "%s version %u found in %s at 0x%08x\n" ),
- name.c_str( ),
- it.m_version,
- it.m_module.c_str( ),
- it.m_ptr );
-
- return it.get< t >( );
- }
- }
-
- g_con->print( xors( "%s not found\n" ), name.c_str( ) );
-
- return t{ };
- }
-
- template < typename t = void* >
- t find_interface( std::string name ) {
- //avoid finding interfaces with matching names
- if( !::isdigit( name[ name.length( ) - 1 ] ) )
- name += '0';
-
- for( auto& it : m_interfaces ) {
- if( strstr( it.m_name.c_str( ), name.c_str( ) ) ) {
- g_con->print( xors( "%s version %u found in %s at 0x%08x\n" ),
- name.c_str( ),
- it.m_version,
- it.m_module.c_str( ),
- it.m_ptr );
-
- return it.get< t >( );
- }
- }
-
- g_con->print( xors( "%s not found\n" ), name.c_str( ) );
-
- return t{ };
- }
-
- void dump_interface_list( ) {
- for( auto& it : m_interfaces ) {
- g_con->print( xors( "%s version %u in %s at 0x%08x\n" ),
- it.m_name.c_str( ),
- it.m_version,
- it.m_module.c_str( ),
- it.m_ptr );
- }
- }
-
- private:
- uintptr_t find_createinterface( void* module_ );
-
- std::vector< interface_data_t > m_interfaces;
- };
-}
-
-END_REGION
-#endif
-
-extern HMODULE g_dll;
-extern tf2::interfaces::c_interface_manager g_factory;
\ No newline at end of file diff --git a/tf2/factory.hpp b/tf2/factory.hpp deleted file mode 100644 index 4615c34..0000000 --- a/tf2/factory.hpp +++ /dev/null @@ -1,190 +0,0 @@ -#pragma once
-
-#include <Windows.h>
-#include <winternl.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <Psapi.h>
-#include <vector>
-#include <iostream>
-#include <string>
-#include <sstream>
-#include <algorithm>
-#include <iterator>
-#include <functional>
-
-namespace tf2
-{
- namespace interfaces
- {
- // this interface linked list iteration code is tf2 specific !
- // in the future i will write it game/engine version independent
- // using a disassembly engine
-
- struct regs {
- void *( *m_CreateFn )( );
- const char *m_pName;
- regs *m_pNext;
- };
-
- static inline bool is_create_fn( uintptr_t m_createfn ) {
- return( *( uint8_t * )( m_createfn ) == 0xB8
- && *( uint8_t * )( m_createfn + 5 ) == 0xC3 );
- }
-
- static inline bool is_createinterface_fn( uintptr_t m_createfn ) {
- return( *( uint8_t * )( m_createfn + 4 ) == 0xE9
- && *( uint8_t * )( m_createfn + 9 ) == 0xCC );
- }
-
- static inline uintptr_t follow_createinterface_export( uintptr_t export_ ) {
- if ( *( uint8_t * )( export_ + 4 ) != 0xE9 ) return 0;
-
- return( export_ + 4 + *( uintptr_t * )( export_ + 5 ) + 5 );
- }
-
- static inline regs *reg_from_createinterface( uintptr_t ci ) {
- if ( *( short * )( ci + 4 ) != 0x358B ) return nullptr;
-
- return( **( regs *** )( ci + 6 ) );
- }
-
- static inline uintptr_t interface_from_reg( regs *reg ) {
- uintptr_t reg_func = *( uintptr_t * )reg;
-
- if ( is_create_fn( reg_func ) ) {
- return( *( uintptr_t * )( reg_func + 1 ) );
- }
-
- return( 0 );
- }
-
-
- class interface_manager {
- public:
- struct interface_data {
- public:
- std::string name;
- std::string module;
- int version;
- void *ptr;
-
- template< typename T > inline T get( ) { return reinterpret_cast< T >( ptr ); }
-
- interface_data( std::string name_T, std::string module_T, void *ptr_T, int version_T = 0 )
- : name( name_T ), module( module_T ), ptr( ptr_T ), version( version_T ) {}
- };
-
- interface_manager() {
- auto root = &get_peb( )->Ldr->InMemoryOrderModuleList;
-
- for ( auto entry = root->Flink->Flink->Flink->Flink; entry != root; entry = entry->Flink ) {
- auto data_table = reinterpret_cast< PLDR_DATA_TABLE_ENTRY >( entry );
- auto module_base = reinterpret_cast< HMODULE >( data_table->Reserved2[ 0 ] );
- auto export_ = reinterpret_cast< uintptr_t >( ::GetProcAddress( module_base, "CreateInterface" ) );
-
- if ( !export_ || !interfaces::is_createinterface_fn( export_ ) ) {
- continue;
- }
-
- auto CreateInterface = interfaces::follow_createinterface_export( export_ );
-
- if ( !CreateInterface ) {
- continue;
- }
-
- auto regs = interfaces::reg_from_createinterface( CreateInterface );
-
- while ( regs ) {
- std::string name( regs->m_pName ), temp_version( name );
-
- name.erase( std::remove_if( name.begin( ), name.end( ), &isdigit ), name.end( ) );
-
- temp_version.erase(
- std::remove_if( temp_version.begin( ), temp_version.end( ),
- [ ]( int i ) { return !isdigit( i ); }
- ), temp_version.end( )
- );
-
- unsigned int version{ };
- std::stringstream( temp_version ) >> version;
-
- sorted_list.push_back( interface_data( name, unicode_to_string( data_table->FullDllName ), reinterpret_cast< void * >( interfaces::interface_from_reg( regs ) ), version ) );
-
- regs = regs->m_pNext;
- }
- }
-
- std::sort( sorted_list.begin( ), sorted_list.end( ), [ ]( const interface_data &lhs, const interface_data &rhs ) {
- return( lhs.version > rhs.version );
- } );
- }
- public:
- template< typename T = void * > T create( std::string name ) {
- std::vector< interface_data >::iterator it = std::find_if( sorted_list.begin( ), sorted_list.end( ), [ & ]( const interface_data &data ) {
- return ( !data.name.compare( name ) );
- } );
-
- if ( it == sorted_list.end( ) || !it->ptr ) {
- return T{ };
- }
-
- printf( "%s\n -> 0x%X\n -> module: %s \n", name.c_str( ), reinterpret_cast< uintptr_t >( it->ptr ), it->module.c_str( ) );
-
- return( ( T )( it->ptr ) );
- }
-
- template< typename T = void* > T create( std::string name, std::string module ) {
- std::vector< interface_data >::iterator it = std::find_if( sorted_list.begin( ), sorted_list.end( ), [ & ]( const interface_data &data ) {
- return ( !data.name.compare( name ) && data.module.find( module ) != std::string::npos );
- } );
-
-
- if ( it == sorted_list.end( ) || !it->ptr ) {
- return T{ };
- }
-
- //#ifdef DEBUG_PRINT
- printf( "%s\n -> 0x%x\n -> module: %s \n", name.c_str( ), reinterpret_cast< uintptr_t >( it->ptr ), it->module.c_str( ) );
- //#endif
-
- return( static_cast< T >( it->ptr ) );
- }
-
- template< typename T = void * > T create_from_hash( uint32_t hash ) {
- std::vector< interface_data >::iterator it = std::find_if( sorted_list.begin( ), sorted_list.end( ), [ & ]( const interface_data &data )
- {
- return ( !data.name.compare( name ) );
- } );
-
- if ( it == sorted_list.end( ) || !it->ptr ) {
- return T{ };
- }
-
- return( ( T )( it->ptr ) );
- }
- protected:
- static inline PTEB get_teb( ) {
-#if defined( _M_X64 )
- auto teb = reinterpret_cast< PTEB >( __readgsqword( reinterpret_cast< uintptr_t >( &static_cast< NT_TIB * >( nullptr )->Self ) ) );
-#else
- auto teb = reinterpret_cast< PTEB >( __readfsdword( reinterpret_cast< uintptr_t >( &static_cast< NT_TIB * >( nullptr )->Self ) ) );
-#endif
-
-
- return teb;
- }
-
- static inline PPEB get_peb( ) {
- return( get_teb( )->ProcessEnvironmentBlock );
- }
-
- static inline std::string unicode_to_string( UNICODE_STRING wide ) {
- std::wstring wide_str( wide.Buffer, wide.Length );
- return std::string( wide_str.begin( ), wide_str.end( ) );
- }
-
- std::vector< interface_data > sorted_list{ };
- };
- };
-}
\ No newline at end of file diff --git a/tf2/fnv.hpp b/tf2/fnv.hpp deleted file mode 100644 index a3f2dc9..0000000 --- a/tf2/fnv.hpp +++ /dev/null @@ -1,64 +0,0 @@ -#pragma once
-
-#pragma warning( disable : 4307 ) // '*': integral constant overflow
-#pragma warning( disable : 4244 ) // possible loss of data
-
-#include <cstdint>
-#include <string>
-
-using hash_t = unsigned int;
-
-// used for compile-time FNV-1a 32bit hashes.
-#define fnv( str ) \
- [&]() { \
- constexpr hash_t out = hash::fnv1a( str ); \
- \
- return out; \
- }()
-
-// used for compile-time FNV-1a 32bit hashes when above macro cant be used for constexpr variables.
-#define fnv_const( str ) Hash::fnv1a_32( str )
-
-namespace hash // FNV-1a ( Fowler-Noll-Vo hash ).
-{
- // FNV-1a constants.
- enum : hash_t {
- FNV1A_PRIME = 0x1000193,
- FNV1A_BASIS = 0x811C9DC5
- };
-
- // compile-time strlen.
- __forceinline constexpr size_t ct_strlen( const char *str ) {
- size_t out = 1;
-
- for( ; str[ out ] != '\0'; ++out );
-
- return out;
- }
-
- // hash data.
- __forceinline constexpr hash_t fnv1a( const uint8_t *data, const size_t len ) {
- hash_t out = FNV1A_BASIS;
-
- for( size_t i = 0; i < len; ++i )
- out = ( out ^ data[ i ] ) * FNV1A_PRIME;
-
- return out;
- }
-
- // hash c-style string.
- __forceinline constexpr hash_t fnv1a( const char *str ) {
- hash_t out = FNV1A_BASIS;
- size_t len = ct_strlen( str );
-
- for( size_t i = 0; i < len; ++i )
- out = ( out ^ str[ i ] ) * FNV1A_PRIME;
-
- return out;
- }
-
- // hash C++-style string ( runtime only ).
- __forceinline hash_t fnv1a( const std::string &str ) {
- return fnv1a( ( uint8_t* )str.c_str( ), str.length( ) );
- }
-}
\ No newline at end of file diff --git a/tf2/framestagenotify.cpp b/tf2/framestagenotify.cpp deleted file mode 100644 index 87e91d9..0000000 --- a/tf2/framestagenotify.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include "hooks.h"
-#include "interfaces.h"
-#include "base_cheat.h"
-
-void __fastcall hooks::frame_stage_notify( void* ecx_, void* edx_, frame_stages_t stage ) {
- static auto fsn_o = cl.m_chl->get_old_function< decltype( hooks::frame_stage_notify )* >( 35 ); //35
-
- g_ctx.m_stage = stage;
-
- if ( cl.m_panic ) {
- return fsn_o( ecx_, edx_, stage );
- }
-
- switch( stage ) {
- case FRAME_NET_UPDATE_START:
- g_ctx.run_frame( );
- fsn_o( ecx_, 0, stage );
-
- return;
-
- case FRAME_NET_UPDATE_POSTDATAUPDATE_START:
- g_cheat.extra.float_ragdolls( );
- //g_cheat.m_skins( );
- g_cheat.visuals.update_glow( );
- fsn_o( ecx_, 0, stage );
-
- return;
-
- case FRAME_RENDER_START:
- //g_cheat.extra.disable_post_processing( );
- util::disable_pvs( );
- break;
-
- case FRAME_RENDER_END:
- fsn_o( ecx_, 0, stage );
- //g_cheat.chams.m_materials.update_materials( );
- return;
- }
-
- return fsn_o( ecx_, edx_, stage );
-}
diff --git a/tf2/get_viewmodel_fov.cpp b/tf2/get_viewmodel_fov.cpp deleted file mode 100644 index 96c4a1e..0000000 --- a/tf2/get_viewmodel_fov.cpp +++ /dev/null @@ -1,8 +0,0 @@ -#include "hooks.h"
-#include "settings.h"
-
-float __fastcall hooks::get_viewmodel_fov( void* ecx, void* edx ) {
- static auto get_viewmodel_fov_o = cl.m_clientmode->get_old_function< decltype( &hooks::get_viewmodel_fov ) >( 32 );
-
- return get_viewmodel_fov_o( ecx, nullptr ) + float( g_settings.misc.viewmodel_fov );
-}
diff --git a/tf2/graphics.cpp b/tf2/graphics.cpp deleted file mode 100644 index 9670bf9..0000000 --- a/tf2/graphics.cpp +++ /dev/null @@ -1,107 +0,0 @@ -#include "graphics.h"
-
-tf2::c_fonts fonts;
-tf2::c_graphics graphics;
-
-namespace tf2
-{
- void c_graphics::draw_line( int x, int y, int x1, int y1, clr_t clr ) {
- cl.m_surface( )->DrawSetColor( clr );
- cl.m_surface( )->DrawLine( x, y, x1, y1 );
- }
-
- void c_graphics::draw_string( HFont font, int x, int y, clr_t clr, alignment f_alignment, std::string msg ) {
- std::wstring a( msg.begin( ), msg.end( ) );
- const wchar_t* wbuf = a.c_str( );
-
- int w, h; get_text_size( font, msg, w, h );
-
- if ( f_alignment == alignment::right ) x -= w;
-
- if ( f_alignment == alignment::center ) x -= w / 2;
-
- cl.m_surface( )->DrawSetTextFont( font );
- cl.m_surface( )->DrawSetTextColor( clr );
- cl.m_surface( )->DrawSetTextPos( x, y - h / 2 );
- cl.m_surface( )->DrawPrintText( ( wchar_t* )wbuf, wcslen( wbuf ) );
- }
-
- void c_graphics::draw_string( HFont font, int x, int y, clr_t clr, alignment f_alignment, std::wstring msg ) {
- int w, h; get_text_size( font, msg, w, h );
-
- if ( f_alignment == alignment::right ) x -= w;
-
- if ( f_alignment == alignment::center ) x -= w / 2;
-
- cl.m_surface( )->DrawSetTextFont( font );
- cl.m_surface( )->DrawSetTextColor( clr );
- cl.m_surface( )->DrawSetTextPos( x, y - h / 2 );
- cl.m_surface( )->DrawPrintText( ( wchar_t* )msg.c_str( ), wcslen( msg.c_str( ) ) );
- }
-
- void c_graphics::draw_rect( int x, int y, int w, int h, clr_t clr ) {
- cl.m_surface( )->DrawSetColor( clr );
- cl.m_surface( )->DrawFilledRect( x, y, x + w, y + h );
- }
-
- void c_graphics::draw_rect_outlined( int x, int y, int w, int h, clr_t clr ) {
- cl.m_surface( )->DrawSetColor( clr );
- cl.m_surface( )->DrawOutlinedRect( x, y, x + w, y + h );
- }
-
- void c_graphics::draw_circle_outlined( int x, int y, int r, clr_t clr ) {
- cl.m_surface( )->DrawSetColor( clr );
- cl.m_surface( )->DrawOutlinedCircle( x, y, r, 48 );
- }
-
- void c_graphics::get_text_size( HFont font, std::string text, int& w, int& h ) {
- std::wstring a( text.begin( ), text.end( ) );
- const wchar_t* wstr = a.c_str( );
-
- cl.m_surface( )->GetTextSize( font, wstr, w, h );
- }
-
- void c_graphics::get_text_size( HFont font, std::wstring text, int& w, int& h ) {
- const wchar_t* wstr = text.c_str( );
-
- cl.m_surface( )->GetTextSize( font, wstr, w, h );
- }
-
- void c_graphics::draw_polygon( int count, vertex_t* vertexs, clr_t clr_t ) {
- static int texture = cl.m_surface( )->CreateNewTextureID( true );
- if ( !texture ) texture = cl.m_surface( )->CreateNewTextureID( true );
-
- byte buffer[ 4 ] = { 255, 255, 255, 255 };
-
- cl.m_surface( )->DrawSetTextureRGBA( texture, buffer, 1, 1 );
- cl.m_surface( )->DrawSetColor( clr_t );
- cl.m_surface( )->DrawSetTexture( texture );
-
- cl.m_surface( )->DrawTexturedPolygon( count, vertexs );
- }
-
- void c_graphics::draw_filled_circle( int x, int y, int r, clr_t clr_t ) {
- static vertex_t shape[ 24 ];
- static float step = M_PI * 2.0f / 24;
-
- for ( int i{ }; i < 24; i++ ) {
- float theta = i * step;
- float x1 = x + r * cos( theta );
- float y1 = y + r * sin( theta );
- shape[ i ].init( x1, y1 );
- }
- draw_polygon( 24, shape, clr_t );
- }
-
- vec2_t c_graphics::world_to_screen( vec3_t world_pos ) {
- vec3_t tmp; cl.m_overlay( )->ScreenPosition( world_pos, tmp );
- const matrix3x4& w2s_matrix = cl.m_engine( )->GetWorldToScreenMatrix( );
- float w = w2s_matrix[ 3 ][ 3 ];
- for ( int i{ }; i < 3; i++ ) {
- w += w2s_matrix[ 3 ][ i ] * world_pos[ i ];
- }
- if ( w < 0.001f ) return{ 10000.f, 10000.f };
-
- return{ tmp.x, tmp.y };
- }
-}
\ No newline at end of file diff --git a/tf2/graphics.h b/tf2/graphics.h deleted file mode 100644 index c9c2ef7..0000000 --- a/tf2/graphics.h +++ /dev/null @@ -1,80 +0,0 @@ -#pragma once
-#include "color.hpp"
-#include "interfaces.h"
-#include "math.h"
-typedef unsigned long HFont;
-
-enum alignment {
- left,
- right,
- center
-};
-
-enum alignment_vertical {
- top,
- bottom
-};
-
-enum fontflag : long {
- none,
- italic = 0x001,
- underline = 0x002,
- strikeout = 0x004,
- symbol = 0x008,
- antialias = 0x010,
- blur = 0x020,
- rotary = 0x040,
- dropshadow = 0x080,
- additive = 0x100,
- outline = 0x200,
- custom = 0x400,
- bitmap = 0x800,
-};
-
-namespace tf2
-{
- class c_fonts {
- public:
- c_fonts( ) {
- }
-
- void init( ) {
- f_12 = cl.m_surface( )->CreateFnt( );
- f_14 = cl.m_surface( )->CreateFnt( );
- f_16 = cl.m_surface( )->CreateFnt( );
- f_18 = cl.m_surface( )->CreateFnt( );
- f_esp = cl.m_surface( )->CreateFnt( );
-
- cl.m_surface( )->SetFontGlyphSet( f_12, "Tahoma", 12, 300, 0, 0, fontflag::outline );
- cl.m_surface( )->SetFontGlyphSet( f_14, "Tahoma", 14, 300, 0, 0, fontflag::outline );
- cl.m_surface( )->SetFontGlyphSet( f_16, "Tahoma", 16, 300, 0, 0, fontflag::outline );
- cl.m_surface( )->SetFontGlyphSet( f_18, "Tahoma", 18, 300, 0, 0, fontflag::outline );
- cl.m_surface( )->SetFontGlyphSet( f_esp, "Verdana", 13, 550, 0, 0, fontflag::dropshadow );
- }
-
- HFont f_12;
- HFont f_14;
- HFont f_16;
- HFont f_18;
-
- HFont f_esp;
- };
-
- class c_graphics {
- public:
- void draw_line( int x, int y, int x1, int y1, clr_t clr );
- void draw_string( HFont font, int x, int y, clr_t clr, alignment f_alignment, std::string msg );
- void draw_string( HFont font, int x, int y, clr_t clr, alignment f_alignment, std::wstring msg );
- void draw_rect( int x, int y, int w, int h, clr_t clr );
- void draw_rect_outlined( int x, int y, int w, int h, clr_t clr );
- void draw_circle_outlined( int x, int y, int r, clr_t clr );
- void get_text_size( HFont font, std::string text, int& w, int& h );
- void get_text_size( HFont font, std::wstring text, int& w, int& h );
- void draw_polygon( int count, vertex_t* vertexs, clr_t clr_t );
- void draw_filled_circle( int x, int y, int r, clr_t clr_t );
- vec2_t world_to_screen( vec3_t world_pos );
- };
-}
-
-extern tf2::c_graphics graphics;
-extern tf2::c_fonts fonts;
\ No newline at end of file diff --git a/tf2/hooks.cpp b/tf2/hooks.cpp deleted file mode 100644 index 0472c6e..0000000 --- a/tf2/hooks.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include "hooks.h"
-#include "interfaces.h"
-#include "netvars.h"
-
-
-bool hooks::commit( tf2::client* instance ) {
- while( !( instance->m_hwnd = FindWindowA( xors( "Valve001" ), 0 ) ) )
- Sleep( 100 );
-
- window_procedure_o = reinterpret_cast< decltype( window_procedure_o ) >(
- SetWindowLongA( instance->m_hwnd, GWLP_WNDPROC,
- ( long )window_procedure )
- );
-
- instance->m_clientmode->hook( 20, &hooks::override_mouse_input );//n
- instance->m_clientmode->hook( 32, &hooks::get_viewmodel_fov );//n
- instance->m_clientmode->hook( 39, &hooks::do_post_screen_space_effects ); //n
- instance->m_clientmode->hook( 16, &hooks::override_view ); //n
- instance->m_clientmode->hook( 21, &hooks::create_move ); //y
- instance->m_chl->hook( 35, &hooks::frame_stage_notify ); //y
- instance->m_chl->hook( 3, &hooks::shut_down ); //n
-
- //honestly fuck chams and keyvalues they can lick my mothers toes
-
- //instance->m_model_render->hook( 19, &hooks::draw_model_execute ); //n
- //instance->m_render_view->hook( 9, &hooks::scene_end ); //n
-
-
- instance->m_movement->hook( 1, &hooks::process_movement ); //y
- instance->m_d3d->hook( 42, &hooks::d3d::end_scene ); //y
- instance->m_d3d->hook( 16, &hooks::d3d::reset );//y
- instance->m_d3d->hook( 17, &hooks::d3d::present );//y
- instance->m_panel->hook( 41, &hooks::paint_traverse ); //y
-
- instance->m_vgui->hook( 13, &hooks::paint ); //y
-
- instance->m_surface->hook( 116, &hooks::on_screen_size_changed ); //n
- //instance->m_engine_sound->hook( 5, &hooks::emit_sound ); //n
-
- return true;
-}
diff --git a/tf2/hooks.h b/tf2/hooks.h deleted file mode 100644 index c34d71f..0000000 --- a/tf2/hooks.h +++ /dev/null @@ -1,50 +0,0 @@ -#pragma once
-#include <windows.h>
-
-#include "util.hpp"
-#include "d3d.hpp"
-#include "interfaces.h"
-#include "netvar_proxy.hpp"
-
-namespace hooks
-{
- //hook like the hooker that u are
-
- void __fastcall paint( void* ecx_, void* edx_, int mode );
- long __stdcall window_procedure( HWND, uint32_t, uint32_t, long );
- extern decltype( &window_procedure ) window_procedure_o;
- void __fastcall process_movement( void*, void*, c_base_player*, CMoveData* );
- void __fastcall paint_traverse( void*, void*, unsigned int, bool, bool );
- bool __fastcall create_move( void*, void*, float, user_cmd_t* );
- void __stdcall hl_create_move_gate( int sequence_number, float input_sample_time, bool active );
- void __fastcall hl_create_move( void*, void*, int, float, bool, byte& );
- void __fastcall frame_stage_notify( void*, void*, frame_stages_t );
- void __fastcall override_mouse_input( void*, void*, float*, float* );
- void __fastcall draw_model_execute( IVModelInfo*, void*, void*, const DrawModelState_t&, const ModelRenderInfo_t&, matrix3x4* );
- void __fastcall scene_end( void*, void* );
- float __fastcall get_viewmodel_fov( void*, void* );
- void __fastcall override_view( void* ecx_, void* edx_, CViewSetup* setup );
- void __fastcall emit_sound( void* ecx_, void* edx_, void* filter, int ent, int channel, const char* sound, uint32_t hash,
- const char* sample, float volume, float attenuation, int seed, int flags, int pitch, const vec3_t* origin,
- const vec3_t* direction, vec3_t* origins, bool update_pos, float sound_time, int speaker_entry );
- void __fastcall shut_down( void* ecx_, void* edx_ );
-
- bool __fastcall is_connected( void* ecx_, void* edx_ );
-
- bool __fastcall in_prediction( void* ecx_, void* edx_ );
- int __fastcall send_datagram( INetChannel* channel, void* edx, void* datagram );
- bool __fastcall do_post_screen_space_effects( void* ecx_, void* edx_, CViewSetup* setup );
- void __fastcall on_screen_size_changed( void* ecx_, void* edx_, int old_h, int old_w );
-
-
-
- //do we wanna only run menu in d3d or visuals too?
- namespace d3d {
- long __stdcall end_scene( IDirect3DDevice9* );
- long __stdcall reset( IDirect3DDevice9*, D3DPRESENT_PARAMETERS* );
- long __stdcall present( IDirect3DDevice9*, RECT*, RECT*, HWND, RGNDATA* );
- long __stdcall draw( IDirect3DDevice9*, D3DPRIMITIVETYPE, int, uint32_t, uint32_t, uint32_t, uint32_t );
- }
-
- extern bool commit( tf2::client* );
-}
\ No newline at end of file diff --git a/tf2/icons.hpp b/tf2/icons.hpp deleted file mode 100644 index bffd94e..0000000 --- a/tf2/icons.hpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "icons/legit.hpp"
-#include "icons/rage.hpp"
-#include "icons/visuals.hpp"
-#include "icons/misc.hpp"
-#include "icons/config.hpp"
\ No newline at end of file diff --git a/tf2/icons/config.hpp b/tf2/icons/config.hpp deleted file mode 100644 index e47c75b..0000000 --- a/tf2/icons/config.hpp +++ /dev/null @@ -1,1297 +0,0 @@ -/* E:\Users\admin\Desktop\stuff\icons\config.png (1/26/2018 4:19:12 AM)
- StartOffset: 00000000, EndOffset: 00003C3C, Length: 00003C3D */
-
-namespace icons {
-static const size_t config_size = 15421;
-namespace raw {
-static const unsigned char config_raw[15421] = {
- 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, 0x0D,
- 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x42,
- 0x08, 0x06, 0x00, 0x00, 0x00, 0xE3, 0x54, 0x00, 0xE8, 0x00, 0x00, 0x00,
- 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0B, 0x13, 0x00, 0x00, 0x0B,
- 0x13, 0x01, 0x00, 0x9A, 0x9C, 0x18, 0x00, 0x00, 0x39, 0xEC, 0x69, 0x54,
- 0x58, 0x74, 0x58, 0x4D, 0x4C, 0x3A, 0x63, 0x6F, 0x6D, 0x2E, 0x61, 0x64,
- 0x6F, 0x62, 0x65, 0x2E, 0x78, 0x6D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3C, 0x3F, 0x78, 0x70, 0x61, 0x63, 0x6B, 0x65, 0x74, 0x20, 0x62, 0x65,
- 0x67, 0x69, 0x6E, 0x3D, 0x22, 0xEF, 0xBB, 0xBF, 0x22, 0x20, 0x69, 0x64,
- 0x3D, 0x22, 0x57, 0x35, 0x4D, 0x30, 0x4D, 0x70, 0x43, 0x65, 0x68, 0x69,
- 0x48, 0x7A, 0x72, 0x65, 0x53, 0x7A, 0x4E, 0x54, 0x63, 0x7A, 0x6B, 0x63,
- 0x39, 0x64, 0x22, 0x3F, 0x3E, 0x0A, 0x3C, 0x78, 0x3A, 0x78, 0x6D, 0x70,
- 0x6D, 0x65, 0x74, 0x61, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x78,
- 0x3D, 0x22, 0x61, 0x64, 0x6F, 0x62, 0x65, 0x3A, 0x6E, 0x73, 0x3A, 0x6D,
- 0x65, 0x74, 0x61, 0x2F, 0x22, 0x20, 0x78, 0x3A, 0x78, 0x6D, 0x70, 0x74,
- 0x6B, 0x3D, 0x22, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x20, 0x58, 0x4D, 0x50,
- 0x20, 0x43, 0x6F, 0x72, 0x65, 0x20, 0x35, 0x2E, 0x36, 0x2D, 0x63, 0x31,
- 0x33, 0x38, 0x20, 0x37, 0x39, 0x2E, 0x31, 0x35, 0x39, 0x38, 0x32, 0x34,
- 0x2C, 0x20, 0x32, 0x30, 0x31, 0x36, 0x2F, 0x30, 0x39, 0x2F, 0x31, 0x34,
- 0x2D, 0x30, 0x31, 0x3A, 0x30, 0x39, 0x3A, 0x30, 0x31, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x3C,
- 0x72, 0x64, 0x66, 0x3A, 0x52, 0x44, 0x46, 0x20, 0x78, 0x6D, 0x6C, 0x6E,
- 0x73, 0x3A, 0x72, 0x64, 0x66, 0x3D, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A,
- 0x2F, 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x77, 0x33, 0x2E, 0x6F, 0x72, 0x67,
- 0x2F, 0x31, 0x39, 0x39, 0x39, 0x2F, 0x30, 0x32, 0x2F, 0x32, 0x32, 0x2D,
- 0x72, 0x64, 0x66, 0x2D, 0x73, 0x79, 0x6E, 0x74, 0x61, 0x78, 0x2D, 0x6E,
- 0x73, 0x23, 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C,
- 0x72, 0x64, 0x66, 0x3A, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
- 0x69, 0x6F, 0x6E, 0x20, 0x72, 0x64, 0x66, 0x3A, 0x61, 0x62, 0x6F, 0x75,
- 0x74, 0x3D, 0x22, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x78,
- 0x6D, 0x70, 0x3D, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E,
- 0x73, 0x2E, 0x61, 0x64, 0x6F, 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F,
- 0x78, 0x61, 0x70, 0x2F, 0x31, 0x2E, 0x30, 0x2F, 0x22, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D,
- 0x6C, 0x6E, 0x73, 0x3A, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3D, 0x22, 0x68,
- 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64, 0x6F,
- 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x78, 0x61, 0x70, 0x2F, 0x31,
- 0x2E, 0x30, 0x2F, 0x6D, 0x6D, 0x2F, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E,
- 0x73, 0x3A, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3D, 0x22, 0x68, 0x74, 0x74,
- 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64, 0x6F, 0x62, 0x65,
- 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x78, 0x61, 0x70, 0x2F, 0x31, 0x2E, 0x30,
- 0x2F, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2F, 0x52, 0x65, 0x73, 0x6F, 0x75,
- 0x72, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6E, 0x74, 0x23, 0x22, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78,
- 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x64, 0x63, 0x3D, 0x22, 0x68, 0x74, 0x74,
- 0x70, 0x3A, 0x2F, 0x2F, 0x70, 0x75, 0x72, 0x6C, 0x2E, 0x6F, 0x72, 0x67,
- 0x2F, 0x64, 0x63, 0x2F, 0x65, 0x6C, 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x73,
- 0x2F, 0x31, 0x2E, 0x31, 0x2F, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73,
- 0x3A, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x3D, 0x22,
- 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64,
- 0x6F, 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x70, 0x68, 0x6F, 0x74,
- 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x2F, 0x31, 0x2E, 0x30, 0x2F, 0x22, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x78, 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x74, 0x69, 0x66, 0x66, 0x3D, 0x22,
- 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64,
- 0x6F, 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x74, 0x69, 0x66, 0x66,
- 0x2F, 0x31, 0x2E, 0x30, 0x2F, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73,
- 0x3A, 0x65, 0x78, 0x69, 0x66, 0x3D, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A,
- 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64, 0x6F, 0x62, 0x65, 0x2E, 0x63,
- 0x6F, 0x6D, 0x2F, 0x65, 0x78, 0x69, 0x66, 0x2F, 0x31, 0x2E, 0x30, 0x2F,
- 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6F, 0x72,
- 0x54, 0x6F, 0x6F, 0x6C, 0x3E, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x20, 0x50,
- 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x20, 0x43, 0x43, 0x20,
- 0x32, 0x30, 0x31, 0x37, 0x20, 0x28, 0x57, 0x69, 0x6E, 0x64, 0x6F, 0x77,
- 0x73, 0x29, 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x3A, 0x43, 0x72, 0x65, 0x61,
- 0x74, 0x6F, 0x72, 0x54, 0x6F, 0x6F, 0x6C, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x43,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x3E, 0x32, 0x30,
- 0x31, 0x38, 0x2D, 0x30, 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A,
- 0x31, 0x39, 0x3A, 0x30, 0x39, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C,
- 0x2F, 0x78, 0x6D, 0x70, 0x3A, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44,
- 0x61, 0x74, 0x65, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x4D, 0x65, 0x74, 0x61, 0x64,
- 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x65, 0x3E, 0x32, 0x30, 0x31, 0x38,
- 0x2D, 0x30, 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31, 0x39,
- 0x3A, 0x30, 0x39, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F, 0x78,
- 0x6D, 0x70, 0x3A, 0x4D, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44,
- 0x61, 0x74, 0x65, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x4D, 0x6F, 0x64, 0x69, 0x66,
- 0x79, 0x44, 0x61, 0x74, 0x65, 0x3E, 0x32, 0x30, 0x31, 0x38, 0x2D, 0x30,
- 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31, 0x39, 0x3A, 0x30,
- 0x39, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F, 0x78, 0x6D, 0x70,
- 0x3A, 0x4D, 0x6F, 0x64, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x65, 0x3E,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x78,
- 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x49, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x63,
- 0x65, 0x49, 0x44, 0x3E, 0x78, 0x6D, 0x70, 0x2E, 0x69, 0x69, 0x64, 0x3A,
- 0x34, 0x30, 0x32, 0x65, 0x31, 0x36, 0x64, 0x39, 0x2D, 0x37, 0x38, 0x63,
- 0x30, 0x2D, 0x61, 0x32, 0x34, 0x33, 0x2D, 0x39, 0x63, 0x63, 0x62, 0x2D,
- 0x37, 0x32, 0x66, 0x30, 0x65, 0x38, 0x35, 0x36, 0x33, 0x65, 0x62, 0x33,
- 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x49, 0x6E, 0x73, 0x74,
- 0x61, 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A,
- 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x49, 0x44, 0x3E, 0x61,
- 0x64, 0x6F, 0x62, 0x65, 0x3A, 0x64, 0x6F, 0x63, 0x69, 0x64, 0x3A, 0x70,
- 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x3A, 0x61, 0x63, 0x34,
- 0x61, 0x35, 0x32, 0x38, 0x31, 0x2D, 0x30, 0x32, 0x34, 0x37, 0x2D, 0x31,
- 0x31, 0x65, 0x38, 0x2D, 0x61, 0x33, 0x38, 0x37, 0x2D, 0x38, 0x65, 0x34,
- 0x32, 0x36, 0x32, 0x63, 0x35, 0x34, 0x30, 0x63, 0x32, 0x3C, 0x2F, 0x78,
- 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E,
- 0x74, 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x4F, 0x72, 0x69,
- 0x67, 0x69, 0x6E, 0x61, 0x6C, 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E,
- 0x74, 0x49, 0x44, 0x3E, 0x78, 0x6D, 0x70, 0x2E, 0x64, 0x69, 0x64, 0x3A,
- 0x61, 0x30, 0x31, 0x35, 0x36, 0x63, 0x64, 0x31, 0x2D, 0x34, 0x62, 0x37,
- 0x62, 0x2D, 0x36, 0x31, 0x34, 0x37, 0x2D, 0x62, 0x33, 0x31, 0x64, 0x2D,
- 0x35, 0x36, 0x63, 0x33, 0x63, 0x36, 0x64, 0x31, 0x34, 0x38, 0x66, 0x32,
- 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x4F, 0x72, 0x69, 0x67,
- 0x69, 0x6E, 0x61, 0x6C, 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74,
- 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x48, 0x69, 0x73, 0x74,
- 0x6F, 0x72, 0x79, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x72, 0x64, 0x66, 0x3A, 0x53, 0x65,
- 0x71, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x72, 0x64, 0x66, 0x3A, 0x6C,
- 0x69, 0x20, 0x72, 0x64, 0x66, 0x3A, 0x70, 0x61, 0x72, 0x73, 0x65, 0x54,
- 0x79, 0x70, 0x65, 0x3D, 0x22, 0x52, 0x65, 0x73, 0x6F, 0x75, 0x72, 0x63,
- 0x65, 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73,
- 0x74, 0x45, 0x76, 0x74, 0x3A, 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x3E,
- 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x3C, 0x2F, 0x73, 0x74, 0x45,
- 0x76, 0x74, 0x3A, 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A,
- 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x78,
- 0x6D, 0x70, 0x2E, 0x69, 0x69, 0x64, 0x3A, 0x61, 0x30, 0x31, 0x35, 0x36,
- 0x63, 0x64, 0x31, 0x2D, 0x34, 0x62, 0x37, 0x62, 0x2D, 0x36, 0x31, 0x34,
- 0x37, 0x2D, 0x62, 0x33, 0x31, 0x64, 0x2D, 0x35, 0x36, 0x63, 0x33, 0x63,
- 0x36, 0x64, 0x31, 0x34, 0x38, 0x66, 0x32, 0x3C, 0x2F, 0x73, 0x74, 0x45,
- 0x76, 0x74, 0x3A, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x63, 0x65, 0x49,
- 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74,
- 0x45, 0x76, 0x74, 0x3A, 0x77, 0x68, 0x65, 0x6E, 0x3E, 0x32, 0x30, 0x31,
- 0x38, 0x2D, 0x30, 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31,
- 0x39, 0x3A, 0x30, 0x39, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F,
- 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x77, 0x68, 0x65, 0x6E, 0x3E, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74,
- 0x3A, 0x73, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x41, 0x67, 0x65,
- 0x6E, 0x74, 0x3E, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x20, 0x50, 0x68, 0x6F,
- 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x20, 0x43, 0x43, 0x20, 0x32, 0x30,
- 0x31, 0x37, 0x20, 0x28, 0x57, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x73, 0x29,
- 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x73, 0x6F, 0x66, 0x74,
- 0x77, 0x61, 0x72, 0x65, 0x41, 0x67, 0x65, 0x6E, 0x74, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x6C, 0x69, 0x3E, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x3C, 0x72, 0x64, 0x66, 0x3A, 0x6C, 0x69, 0x20, 0x72,
- 0x64, 0x66, 0x3A, 0x70, 0x61, 0x72, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65,
- 0x3D, 0x22, 0x52, 0x65, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x22, 0x3E,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76,
- 0x74, 0x3A, 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x73, 0x61, 0x76,
- 0x65, 0x64, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x61, 0x63,
- 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x69, 0x6E, 0x73, 0x74, 0x61,
- 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x78, 0x6D, 0x70, 0x2E, 0x69, 0x69,
- 0x64, 0x3A, 0x34, 0x30, 0x32, 0x65, 0x31, 0x36, 0x64, 0x39, 0x2D, 0x37,
- 0x38, 0x63, 0x30, 0x2D, 0x61, 0x32, 0x34, 0x33, 0x2D, 0x39, 0x63, 0x63,
- 0x62, 0x2D, 0x37, 0x32, 0x66, 0x30, 0x65, 0x38, 0x35, 0x36, 0x33, 0x65,
- 0x62, 0x33, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x69, 0x6E,
- 0x73, 0x74, 0x61, 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x77,
- 0x68, 0x65, 0x6E, 0x3E, 0x32, 0x30, 0x31, 0x38, 0x2D, 0x30, 0x31, 0x2D,
- 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31, 0x39, 0x3A, 0x30, 0x39, 0x2B,
- 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74,
- 0x3A, 0x77, 0x68, 0x65, 0x6E, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x73, 0x6F, 0x66, 0x74,
- 0x77, 0x61, 0x72, 0x65, 0x41, 0x67, 0x65, 0x6E, 0x74, 0x3E, 0x41, 0x64,
- 0x6F, 0x62, 0x65, 0x20, 0x50, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F,
- 0x70, 0x20, 0x43, 0x43, 0x20, 0x32, 0x30, 0x31, 0x37, 0x20, 0x28, 0x57,
- 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x73, 0x29, 0x3C, 0x2F, 0x73, 0x74, 0x45,
- 0x76, 0x74, 0x3A, 0x73, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x41,
- 0x67, 0x65, 0x6E, 0x74, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x63, 0x68, 0x61, 0x6E, 0x67,
- 0x65, 0x64, 0x3E, 0x2F, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A,
- 0x63, 0x68, 0x61, 0x6E, 0x67, 0x65, 0x64, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x6C, 0x69, 0x3E, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x2F,
- 0x72, 0x64, 0x66, 0x3A, 0x53, 0x65, 0x71, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x4D,
- 0x4D, 0x3A, 0x48, 0x69, 0x73, 0x74, 0x6F, 0x72, 0x79, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x64, 0x63, 0x3A,
- 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x3E, 0x69, 0x6D, 0x61, 0x67, 0x65,
- 0x2F, 0x70, 0x6E, 0x67, 0x3C, 0x2F, 0x64, 0x63, 0x3A, 0x66, 0x6F, 0x72,
- 0x6D, 0x61, 0x74, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70,
- 0x3A, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x4D, 0x6F, 0x64, 0x65, 0x3E, 0x33,
- 0x3C, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x3A,
- 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x4D, 0x6F, 0x64, 0x65, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66,
- 0x66, 0x3A, 0x4F, 0x72, 0x69, 0x65, 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F,
- 0x6E, 0x3E, 0x31, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x4F, 0x72,
- 0x69, 0x65, 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66,
- 0x66, 0x3A, 0x58, 0x52, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F,
- 0x6E, 0x3E, 0x37, 0x32, 0x30, 0x30, 0x30, 0x30, 0x2F, 0x31, 0x30, 0x30,
- 0x30, 0x30, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x58, 0x52, 0x65,
- 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66, 0x66,
- 0x3A, 0x59, 0x52, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E,
- 0x3E, 0x37, 0x32, 0x30, 0x30, 0x30, 0x30, 0x2F, 0x31, 0x30, 0x30, 0x30,
- 0x30, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x59, 0x52, 0x65, 0x73,
- 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66, 0x66, 0x3A,
- 0x52, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x55, 0x6E,
- 0x69, 0x74, 0x3E, 0x32, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x52,
- 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x55, 0x6E, 0x69,
- 0x74, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x53,
- 0x70, 0x61, 0x63, 0x65, 0x3E, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3C, 0x2F,
- 0x65, 0x78, 0x69, 0x66, 0x3A, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x53, 0x70,
- 0x61, 0x63, 0x65, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78, 0x65,
- 0x6C, 0x58, 0x44, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x3E,
- 0x36, 0x36, 0x3C, 0x2F, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78,
- 0x65, 0x6C, 0x58, 0x44, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E,
- 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C,
- 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x59, 0x44,
- 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x3E, 0x36, 0x36, 0x3C,
- 0x2F, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x59,
- 0x44, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x44,
- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A,
- 0x20, 0x20, 0x20, 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x52, 0x44, 0x46,
- 0x3E, 0x0A, 0x3C, 0x2F, 0x78, 0x3A, 0x78, 0x6D, 0x70, 0x6D, 0x65, 0x74,
- 0x61, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x3C, 0x3F, 0x78, 0x70, 0x61, 0x63, 0x6B, 0x65, 0x74,
- 0x20, 0x65, 0x6E, 0x64, 0x3D, 0x22, 0x77, 0x22, 0x3F, 0x3E, 0x8F, 0x3F,
- 0x33, 0x69, 0x00, 0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00,
- 0x7A, 0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xF9, 0xFF, 0x00, 0x00,
- 0x80, 0xE9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xEA, 0x60, 0x00, 0x00,
- 0x3A, 0x98, 0x00, 0x00, 0x17, 0x6F, 0x92, 0x5F, 0xC5, 0x46, 0x00, 0x00,
- 0x01, 0xCB, 0x49, 0x44, 0x41, 0x54, 0x78, 0xDA, 0xEC, 0xD9, 0x3F, 0x4A,
- 0x03, 0x41, 0x14, 0xC7, 0xF1, 0xEF, 0xC6, 0x44, 0x08, 0x98, 0x28, 0x2A,
- 0xA6, 0xB1, 0xB1, 0x13, 0x8B, 0x94, 0xA2, 0x17, 0xB0, 0x14, 0x2C, 0xBC,
- 0x82, 0xB5, 0x8D, 0x37, 0xB0, 0x14, 0x53, 0xD8, 0x08, 0xE2, 0x01, 0xB4,
- 0x50, 0x04, 0x2F, 0x60, 0x23, 0x01, 0x0B, 0x49, 0x29, 0xD6, 0x16, 0xDA,
- 0x28, 0x0A, 0x2A, 0x89, 0x1A, 0x8B, 0xAC, 0x10, 0x06, 0x12, 0x77, 0xB3,
- 0x33, 0xC9, 0xCE, 0xF2, 0x7B, 0xB0, 0x84, 0xB7, 0xB0, 0x84, 0xF9, 0xEC,
- 0xCC, 0x9B, 0x3F, 0x1B, 0xB4, 0xDB, 0x6D, 0x14, 0x90, 0x13, 0x81, 0x20,
- 0x04, 0x21, 0x08, 0x41, 0x08, 0x42, 0x10, 0x82, 0x10, 0x84, 0x20, 0x04,
- 0x21, 0x08, 0x41, 0x08, 0x42, 0x10, 0xC3, 0x8A, 0x7C, 0x82, 0x67, 0xA7,
- 0x80, 0x95, 0xF0, 0xB7, 0x57, 0x3C, 0x00, 0x75, 0xA0, 0x95, 0x45, 0x88,
- 0x6D, 0xA0, 0x36, 0xC0, 0x73, 0xF3, 0x21, 0x4C, 0x2A, 0x23, 0x88, 0x79,
- 0x42, 0x75, 0x0A, 0x6C, 0x26, 0xF8, 0xBF, 0x45, 0xE0, 0x2E, 0x0B, 0x10,
- 0x36, 0xCE, 0xF5, 0x02, 0xDF, 0x8B, 0xE5, 0xB1, 0x91, 0xDF, 0x84, 0x8D,
- 0xEA, 0x77, 0xE5, 0x80, 0x17, 0xE3, 0xB9, 0x1A, 0x50, 0x70, 0x78, 0x8D,
- 0xB9, 0xEE, 0x11, 0x8F, 0xC0, 0xDC, 0x80, 0x6F, 0x76, 0x54, 0x27, 0xC4,
- 0x5B, 0xC0, 0x91, 0x6D, 0x88, 0x67, 0x63, 0x86, 0xF0, 0x01, 0x02, 0xE0,
- 0x09, 0xA8, 0x68, 0x1D, 0xD1, 0xE9, 0xC5, 0x7B, 0x69, 0xE9, 0x11, 0xB3,
- 0x43, 0x6C, 0xF8, 0x04, 0x70, 0x01, 0x54, 0xE3, 0x14, 0xE9, 0x61, 0x41,
- 0x8C, 0x22, 0xCE, 0x80, 0x8D, 0xAE, 0xBC, 0x00, 0x7C, 0xB9, 0x58, 0x59,
- 0x36, 0x80, 0xE9, 0x94, 0x22, 0xB4, 0x80, 0xB2, 0x71, 0x6F, 0x01, 0xB8,
- 0x77, 0x01, 0x51, 0xF5, 0xAC, 0x56, 0x94, 0x6C, 0x15, 0xCB, 0x62, 0x06,
- 0x8A, 0xA6, 0x95, 0x1A, 0xE1, 0xFB, 0xD7, 0xE2, 0xBE, 0xD3, 0x68, 0x54,
- 0x88, 0x22, 0xF0, 0x6E, 0xDC, 0x3B, 0x04, 0x4E, 0x80, 0x66, 0x0A, 0x1B,
- 0x5D, 0x01, 0x76, 0x81, 0xA5, 0xA8, 0x33, 0x47, 0xD4, 0x1A, 0xB1, 0xEF,
- 0xC3, 0x7E, 0xC1, 0x88, 0xF3, 0x70, 0x1A, 0x5D, 0xB7, 0xB9, 0xB2, 0x6C,
- 0x18, 0xC5, 0x31, 0xF0, 0x64, 0x38, 0x94, 0x80, 0xD7, 0xAE, 0x7C, 0xBC,
- 0xD7, 0xD9, 0x48, 0xD4, 0x62, 0x99, 0xF7, 0xB4, 0x2E, 0x7C, 0xBA, 0xD8,
- 0x7D, 0x66, 0x3A, 0x04, 0x21, 0x08, 0x41, 0x08, 0x42, 0x10, 0x16, 0x21,
- 0x3E, 0x3C, 0x6D, 0xDF, 0xA4, 0x91, 0xFF, 0x24, 0x85, 0xB8, 0x34, 0xF2,
- 0xB2, 0x27, 0x10, 0xD7, 0x46, 0xFE, 0xED, 0x62, 0xD3, 0xB5, 0x03, 0x1C,
- 0xF4, 0x53, 0x1E, 0x71, 0x4F, 0xB8, 0x8A, 0xB3, 0xD7, 0x88, 0x03, 0xF1,
- 0x46, 0xE7, 0x18, 0xCC, 0xD7, 0x58, 0xA6, 0xF3, 0x09, 0x22, 0x31, 0xC4,
- 0xDF, 0x18, 0x0B, 0x3C, 0x44, 0xA8, 0x03, 0xAB, 0x36, 0x67, 0x8D, 0x1C,
- 0x70, 0xEB, 0x19, 0xC2, 0xDA, 0x7F, 0x08, 0x83, 0xF4, 0x08, 0x73, 0xBC,
- 0xCD, 0xA4, 0xB4, 0xF1, 0x4D, 0x63, 0xD7, 0x89, 0x4B, 0x08, 0x2D, 0xA8,
- 0x04, 0x21, 0x08, 0x41, 0x08, 0x42, 0x10, 0x82, 0x10, 0x84, 0x42, 0x10,
- 0x82, 0x10, 0x84, 0x20, 0x04, 0x21, 0x08, 0x41, 0x08, 0x42, 0x10, 0x82,
- 0xB0, 0x16, 0xBF, 0x03, 0x00, 0xF4, 0xAF, 0x63, 0xB0, 0x6A, 0xED, 0xB9,
- 0x23, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60,
- 0x82
-};
-}
-static const unsigned char* config_icon = raw::config_raw;
-}
\ No newline at end of file diff --git a/tf2/icons/legit.hpp b/tf2/icons/legit.hpp deleted file mode 100644 index 8e5523e..0000000 --- a/tf2/icons/legit.hpp +++ /dev/null @@ -1,1316 +0,0 @@ -/* E:\Users\admin\Desktop\stuff\icons\legit.png (1/26/2018 4:18:16 AM)
- StartOffset: 00000000, EndOffset: 00003D23, Length: 00003D24 */
-
-namespace icons {
-static const size_t legit_size = 15652;
-namespace raw {
-static const unsigned char legit_raw[15652] = {
- 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, 0x0D,
- 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x42,
- 0x08, 0x06, 0x00, 0x00, 0x00, 0xE3, 0x54, 0x00, 0xE8, 0x00, 0x00, 0x00,
- 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0B, 0x13, 0x00, 0x00, 0x0B,
- 0x13, 0x01, 0x00, 0x9A, 0x9C, 0x18, 0x00, 0x00, 0x39, 0xEC, 0x69, 0x54,
- 0x58, 0x74, 0x58, 0x4D, 0x4C, 0x3A, 0x63, 0x6F, 0x6D, 0x2E, 0x61, 0x64,
- 0x6F, 0x62, 0x65, 0x2E, 0x78, 0x6D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3C, 0x3F, 0x78, 0x70, 0x61, 0x63, 0x6B, 0x65, 0x74, 0x20, 0x62, 0x65,
- 0x67, 0x69, 0x6E, 0x3D, 0x22, 0xEF, 0xBB, 0xBF, 0x22, 0x20, 0x69, 0x64,
- 0x3D, 0x22, 0x57, 0x35, 0x4D, 0x30, 0x4D, 0x70, 0x43, 0x65, 0x68, 0x69,
- 0x48, 0x7A, 0x72, 0x65, 0x53, 0x7A, 0x4E, 0x54, 0x63, 0x7A, 0x6B, 0x63,
- 0x39, 0x64, 0x22, 0x3F, 0x3E, 0x0A, 0x3C, 0x78, 0x3A, 0x78, 0x6D, 0x70,
- 0x6D, 0x65, 0x74, 0x61, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x78,
- 0x3D, 0x22, 0x61, 0x64, 0x6F, 0x62, 0x65, 0x3A, 0x6E, 0x73, 0x3A, 0x6D,
- 0x65, 0x74, 0x61, 0x2F, 0x22, 0x20, 0x78, 0x3A, 0x78, 0x6D, 0x70, 0x74,
- 0x6B, 0x3D, 0x22, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x20, 0x58, 0x4D, 0x50,
- 0x20, 0x43, 0x6F, 0x72, 0x65, 0x20, 0x35, 0x2E, 0x36, 0x2D, 0x63, 0x31,
- 0x33, 0x38, 0x20, 0x37, 0x39, 0x2E, 0x31, 0x35, 0x39, 0x38, 0x32, 0x34,
- 0x2C, 0x20, 0x32, 0x30, 0x31, 0x36, 0x2F, 0x30, 0x39, 0x2F, 0x31, 0x34,
- 0x2D, 0x30, 0x31, 0x3A, 0x30, 0x39, 0x3A, 0x30, 0x31, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x3C,
- 0x72, 0x64, 0x66, 0x3A, 0x52, 0x44, 0x46, 0x20, 0x78, 0x6D, 0x6C, 0x6E,
- 0x73, 0x3A, 0x72, 0x64, 0x66, 0x3D, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A,
- 0x2F, 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x77, 0x33, 0x2E, 0x6F, 0x72, 0x67,
- 0x2F, 0x31, 0x39, 0x39, 0x39, 0x2F, 0x30, 0x32, 0x2F, 0x32, 0x32, 0x2D,
- 0x72, 0x64, 0x66, 0x2D, 0x73, 0x79, 0x6E, 0x74, 0x61, 0x78, 0x2D, 0x6E,
- 0x73, 0x23, 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C,
- 0x72, 0x64, 0x66, 0x3A, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
- 0x69, 0x6F, 0x6E, 0x20, 0x72, 0x64, 0x66, 0x3A, 0x61, 0x62, 0x6F, 0x75,
- 0x74, 0x3D, 0x22, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x78,
- 0x6D, 0x70, 0x3D, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E,
- 0x73, 0x2E, 0x61, 0x64, 0x6F, 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F,
- 0x78, 0x61, 0x70, 0x2F, 0x31, 0x2E, 0x30, 0x2F, 0x22, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D,
- 0x6C, 0x6E, 0x73, 0x3A, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3D, 0x22, 0x68,
- 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64, 0x6F,
- 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x78, 0x61, 0x70, 0x2F, 0x31,
- 0x2E, 0x30, 0x2F, 0x6D, 0x6D, 0x2F, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E,
- 0x73, 0x3A, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3D, 0x22, 0x68, 0x74, 0x74,
- 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64, 0x6F, 0x62, 0x65,
- 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x78, 0x61, 0x70, 0x2F, 0x31, 0x2E, 0x30,
- 0x2F, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2F, 0x52, 0x65, 0x73, 0x6F, 0x75,
- 0x72, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6E, 0x74, 0x23, 0x22, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78,
- 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x64, 0x63, 0x3D, 0x22, 0x68, 0x74, 0x74,
- 0x70, 0x3A, 0x2F, 0x2F, 0x70, 0x75, 0x72, 0x6C, 0x2E, 0x6F, 0x72, 0x67,
- 0x2F, 0x64, 0x63, 0x2F, 0x65, 0x6C, 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x73,
- 0x2F, 0x31, 0x2E, 0x31, 0x2F, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73,
- 0x3A, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x3D, 0x22,
- 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64,
- 0x6F, 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x70, 0x68, 0x6F, 0x74,
- 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x2F, 0x31, 0x2E, 0x30, 0x2F, 0x22, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x78, 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x74, 0x69, 0x66, 0x66, 0x3D, 0x22,
- 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64,
- 0x6F, 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x74, 0x69, 0x66, 0x66,
- 0x2F, 0x31, 0x2E, 0x30, 0x2F, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73,
- 0x3A, 0x65, 0x78, 0x69, 0x66, 0x3D, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A,
- 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64, 0x6F, 0x62, 0x65, 0x2E, 0x63,
- 0x6F, 0x6D, 0x2F, 0x65, 0x78, 0x69, 0x66, 0x2F, 0x31, 0x2E, 0x30, 0x2F,
- 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6F, 0x72,
- 0x54, 0x6F, 0x6F, 0x6C, 0x3E, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x20, 0x50,
- 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x20, 0x43, 0x43, 0x20,
- 0x32, 0x30, 0x31, 0x37, 0x20, 0x28, 0x57, 0x69, 0x6E, 0x64, 0x6F, 0x77,
- 0x73, 0x29, 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x3A, 0x43, 0x72, 0x65, 0x61,
- 0x74, 0x6F, 0x72, 0x54, 0x6F, 0x6F, 0x6C, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x43,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x3E, 0x32, 0x30,
- 0x31, 0x38, 0x2D, 0x30, 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A,
- 0x31, 0x38, 0x3A, 0x31, 0x34, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C,
- 0x2F, 0x78, 0x6D, 0x70, 0x3A, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44,
- 0x61, 0x74, 0x65, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x4D, 0x65, 0x74, 0x61, 0x64,
- 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x65, 0x3E, 0x32, 0x30, 0x31, 0x38,
- 0x2D, 0x30, 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31, 0x38,
- 0x3A, 0x31, 0x34, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F, 0x78,
- 0x6D, 0x70, 0x3A, 0x4D, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44,
- 0x61, 0x74, 0x65, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x4D, 0x6F, 0x64, 0x69, 0x66,
- 0x79, 0x44, 0x61, 0x74, 0x65, 0x3E, 0x32, 0x30, 0x31, 0x38, 0x2D, 0x30,
- 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31, 0x38, 0x3A, 0x31,
- 0x34, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F, 0x78, 0x6D, 0x70,
- 0x3A, 0x4D, 0x6F, 0x64, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x65, 0x3E,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x78,
- 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x49, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x63,
- 0x65, 0x49, 0x44, 0x3E, 0x78, 0x6D, 0x70, 0x2E, 0x69, 0x69, 0x64, 0x3A,
- 0x65, 0x39, 0x33, 0x64, 0x37, 0x33, 0x38, 0x37, 0x2D, 0x31, 0x30, 0x36,
- 0x39, 0x2D, 0x35, 0x64, 0x34, 0x32, 0x2D, 0x38, 0x66, 0x38, 0x63, 0x2D,
- 0x63, 0x33, 0x34, 0x33, 0x37, 0x39, 0x35, 0x36, 0x35, 0x65, 0x30, 0x63,
- 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x49, 0x6E, 0x73, 0x74,
- 0x61, 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A,
- 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x49, 0x44, 0x3E, 0x61,
- 0x64, 0x6F, 0x62, 0x65, 0x3A, 0x64, 0x6F, 0x63, 0x69, 0x64, 0x3A, 0x70,
- 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x3A, 0x38, 0x62, 0x66,
- 0x62, 0x37, 0x35, 0x37, 0x35, 0x2D, 0x30, 0x32, 0x34, 0x37, 0x2D, 0x31,
- 0x31, 0x65, 0x38, 0x2D, 0x61, 0x33, 0x38, 0x37, 0x2D, 0x38, 0x65, 0x34,
- 0x32, 0x36, 0x32, 0x63, 0x35, 0x34, 0x30, 0x63, 0x32, 0x3C, 0x2F, 0x78,
- 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E,
- 0x74, 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x4F, 0x72, 0x69,
- 0x67, 0x69, 0x6E, 0x61, 0x6C, 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E,
- 0x74, 0x49, 0x44, 0x3E, 0x78, 0x6D, 0x70, 0x2E, 0x64, 0x69, 0x64, 0x3A,
- 0x32, 0x35, 0x33, 0x61, 0x62, 0x33, 0x39, 0x61, 0x2D, 0x33, 0x37, 0x31,
- 0x31, 0x2D, 0x35, 0x64, 0x34, 0x64, 0x2D, 0x62, 0x63, 0x33, 0x38, 0x2D,
- 0x62, 0x36, 0x66, 0x30, 0x34, 0x36, 0x62, 0x62, 0x30, 0x31, 0x66, 0x34,
- 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x4F, 0x72, 0x69, 0x67,
- 0x69, 0x6E, 0x61, 0x6C, 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74,
- 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x48, 0x69, 0x73, 0x74,
- 0x6F, 0x72, 0x79, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x72, 0x64, 0x66, 0x3A, 0x53, 0x65,
- 0x71, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x72, 0x64, 0x66, 0x3A, 0x6C,
- 0x69, 0x20, 0x72, 0x64, 0x66, 0x3A, 0x70, 0x61, 0x72, 0x73, 0x65, 0x54,
- 0x79, 0x70, 0x65, 0x3D, 0x22, 0x52, 0x65, 0x73, 0x6F, 0x75, 0x72, 0x63,
- 0x65, 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73,
- 0x74, 0x45, 0x76, 0x74, 0x3A, 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x3E,
- 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x3C, 0x2F, 0x73, 0x74, 0x45,
- 0x76, 0x74, 0x3A, 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A,
- 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x78,
- 0x6D, 0x70, 0x2E, 0x69, 0x69, 0x64, 0x3A, 0x32, 0x35, 0x33, 0x61, 0x62,
- 0x33, 0x39, 0x61, 0x2D, 0x33, 0x37, 0x31, 0x31, 0x2D, 0x35, 0x64, 0x34,
- 0x64, 0x2D, 0x62, 0x63, 0x33, 0x38, 0x2D, 0x62, 0x36, 0x66, 0x30, 0x34,
- 0x36, 0x62, 0x62, 0x30, 0x31, 0x66, 0x34, 0x3C, 0x2F, 0x73, 0x74, 0x45,
- 0x76, 0x74, 0x3A, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x63, 0x65, 0x49,
- 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74,
- 0x45, 0x76, 0x74, 0x3A, 0x77, 0x68, 0x65, 0x6E, 0x3E, 0x32, 0x30, 0x31,
- 0x38, 0x2D, 0x30, 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31,
- 0x38, 0x3A, 0x31, 0x34, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F,
- 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x77, 0x68, 0x65, 0x6E, 0x3E, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74,
- 0x3A, 0x73, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x41, 0x67, 0x65,
- 0x6E, 0x74, 0x3E, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x20, 0x50, 0x68, 0x6F,
- 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x20, 0x43, 0x43, 0x20, 0x32, 0x30,
- 0x31, 0x37, 0x20, 0x28, 0x57, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x73, 0x29,
- 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x73, 0x6F, 0x66, 0x74,
- 0x77, 0x61, 0x72, 0x65, 0x41, 0x67, 0x65, 0x6E, 0x74, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x6C, 0x69, 0x3E, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x3C, 0x72, 0x64, 0x66, 0x3A, 0x6C, 0x69, 0x20, 0x72,
- 0x64, 0x66, 0x3A, 0x70, 0x61, 0x72, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65,
- 0x3D, 0x22, 0x52, 0x65, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x22, 0x3E,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76,
- 0x74, 0x3A, 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x73, 0x61, 0x76,
- 0x65, 0x64, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x61, 0x63,
- 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x69, 0x6E, 0x73, 0x74, 0x61,
- 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x78, 0x6D, 0x70, 0x2E, 0x69, 0x69,
- 0x64, 0x3A, 0x65, 0x39, 0x33, 0x64, 0x37, 0x33, 0x38, 0x37, 0x2D, 0x31,
- 0x30, 0x36, 0x39, 0x2D, 0x35, 0x64, 0x34, 0x32, 0x2D, 0x38, 0x66, 0x38,
- 0x63, 0x2D, 0x63, 0x33, 0x34, 0x33, 0x37, 0x39, 0x35, 0x36, 0x35, 0x65,
- 0x30, 0x63, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x69, 0x6E,
- 0x73, 0x74, 0x61, 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x77,
- 0x68, 0x65, 0x6E, 0x3E, 0x32, 0x30, 0x31, 0x38, 0x2D, 0x30, 0x31, 0x2D,
- 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31, 0x38, 0x3A, 0x31, 0x34, 0x2B,
- 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74,
- 0x3A, 0x77, 0x68, 0x65, 0x6E, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x73, 0x6F, 0x66, 0x74,
- 0x77, 0x61, 0x72, 0x65, 0x41, 0x67, 0x65, 0x6E, 0x74, 0x3E, 0x41, 0x64,
- 0x6F, 0x62, 0x65, 0x20, 0x50, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F,
- 0x70, 0x20, 0x43, 0x43, 0x20, 0x32, 0x30, 0x31, 0x37, 0x20, 0x28, 0x57,
- 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x73, 0x29, 0x3C, 0x2F, 0x73, 0x74, 0x45,
- 0x76, 0x74, 0x3A, 0x73, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x41,
- 0x67, 0x65, 0x6E, 0x74, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x63, 0x68, 0x61, 0x6E, 0x67,
- 0x65, 0x64, 0x3E, 0x2F, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A,
- 0x63, 0x68, 0x61, 0x6E, 0x67, 0x65, 0x64, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x6C, 0x69, 0x3E, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x2F,
- 0x72, 0x64, 0x66, 0x3A, 0x53, 0x65, 0x71, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x4D,
- 0x4D, 0x3A, 0x48, 0x69, 0x73, 0x74, 0x6F, 0x72, 0x79, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x64, 0x63, 0x3A,
- 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x3E, 0x69, 0x6D, 0x61, 0x67, 0x65,
- 0x2F, 0x70, 0x6E, 0x67, 0x3C, 0x2F, 0x64, 0x63, 0x3A, 0x66, 0x6F, 0x72,
- 0x6D, 0x61, 0x74, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70,
- 0x3A, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x4D, 0x6F, 0x64, 0x65, 0x3E, 0x33,
- 0x3C, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x3A,
- 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x4D, 0x6F, 0x64, 0x65, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66,
- 0x66, 0x3A, 0x4F, 0x72, 0x69, 0x65, 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F,
- 0x6E, 0x3E, 0x31, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x4F, 0x72,
- 0x69, 0x65, 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66,
- 0x66, 0x3A, 0x58, 0x52, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F,
- 0x6E, 0x3E, 0x37, 0x32, 0x30, 0x30, 0x30, 0x30, 0x2F, 0x31, 0x30, 0x30,
- 0x30, 0x30, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x58, 0x52, 0x65,
- 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66, 0x66,
- 0x3A, 0x59, 0x52, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E,
- 0x3E, 0x37, 0x32, 0x30, 0x30, 0x30, 0x30, 0x2F, 0x31, 0x30, 0x30, 0x30,
- 0x30, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x59, 0x52, 0x65, 0x73,
- 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66, 0x66, 0x3A,
- 0x52, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x55, 0x6E,
- 0x69, 0x74, 0x3E, 0x32, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x52,
- 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x55, 0x6E, 0x69,
- 0x74, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x53,
- 0x70, 0x61, 0x63, 0x65, 0x3E, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3C, 0x2F,
- 0x65, 0x78, 0x69, 0x66, 0x3A, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x53, 0x70,
- 0x61, 0x63, 0x65, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78, 0x65,
- 0x6C, 0x58, 0x44, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x3E,
- 0x36, 0x36, 0x3C, 0x2F, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78,
- 0x65, 0x6C, 0x58, 0x44, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E,
- 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C,
- 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x59, 0x44,
- 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x3E, 0x36, 0x36, 0x3C,
- 0x2F, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x59,
- 0x44, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x44,
- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A,
- 0x20, 0x20, 0x20, 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x52, 0x44, 0x46,
- 0x3E, 0x0A, 0x3C, 0x2F, 0x78, 0x3A, 0x78, 0x6D, 0x70, 0x6D, 0x65, 0x74,
- 0x61, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x3C, 0x3F, 0x78, 0x70, 0x61, 0x63, 0x6B, 0x65, 0x74,
- 0x20, 0x65, 0x6E, 0x64, 0x3D, 0x22, 0x77, 0x22, 0x3F, 0x3E, 0x56, 0x82,
- 0xD6, 0xC2, 0x00, 0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00,
- 0x7A, 0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xF9, 0xFF, 0x00, 0x00,
- 0x80, 0xE9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xEA, 0x60, 0x00, 0x00,
- 0x3A, 0x98, 0x00, 0x00, 0x17, 0x6F, 0x92, 0x5F, 0xC5, 0x46, 0x00, 0x00,
- 0x02, 0xB2, 0x49, 0x44, 0x41, 0x54, 0x78, 0xDA, 0xEC, 0x9B, 0x3D, 0x68,
- 0x14, 0x41, 0x14, 0x80, 0xBF, 0x4D, 0x2E, 0xE4, 0x40, 0x51, 0x8C, 0x10,
- 0x83, 0x0A, 0x11, 0xB4, 0x51, 0x2C, 0x44, 0xAB, 0xA4, 0x31, 0x9D, 0xD8,
- 0x89, 0x60, 0x61, 0x44, 0xC4, 0x46, 0x6B, 0x8B, 0x34, 0x22, 0xD8, 0x88,
- 0x82, 0x60, 0x2F, 0xDA, 0x58, 0x18, 0x41, 0x2C, 0x44, 0x84, 0x80, 0x9D,
- 0x29, 0x4C, 0xA9, 0x85, 0x28, 0x41, 0x2D, 0xD4, 0xA8, 0x10, 0x11, 0x7F,
- 0x88, 0x62, 0x40, 0x93, 0xB5, 0xB8, 0x39, 0x0C, 0xC3, 0xDB, 0xDC, 0xCE,
- 0xDE, 0xEC, 0xEE, 0x8C, 0xBE, 0x07, 0x03, 0xB7, 0x6F, 0x6F, 0x96, 0xD9,
- 0x6F, 0xDF, 0x7B, 0xF3, 0xDE, 0xDB, 0xBB, 0x24, 0x4D, 0x53, 0x54, 0xA0,
- 0x47, 0x11, 0x28, 0x08, 0x05, 0xA1, 0x20, 0x14, 0x84, 0x82, 0x50, 0x10,
- 0x0A, 0x42, 0x41, 0x28, 0x08, 0x05, 0xA1, 0x20, 0x14, 0x84, 0x82, 0x50,
- 0x10, 0xFF, 0x1B, 0x88, 0x8B, 0xC0, 0x1D, 0x20, 0xA9, 0x6B, 0x01, 0x8D,
- 0x00, 0x20, 0xFC, 0x04, 0x9A, 0xE6, 0xF3, 0x72, 0x5D, 0x30, 0x92, 0x00,
- 0x3A, 0x54, 0xF6, 0x02, 0x12, 0x8D, 0x11, 0x91, 0xC7, 0x88, 0x8D, 0xC0,
- 0x4B, 0xF3, 0x64, 0x8B, 0x0C, 0xC9, 0x42, 0x8A, 0x8C, 0x2B, 0x75, 0xB9,
- 0xC6, 0x0E, 0x03, 0x20, 0x34, 0x79, 0x03, 0x6C, 0xAB, 0xCA, 0x22, 0xDE,
- 0x07, 0x0A, 0x01, 0x60, 0xD8, 0x58, 0xC8, 0x48, 0xD9, 0x20, 0x52, 0x60,
- 0x73, 0x04, 0x6E, 0x3F, 0x03, 0x5C, 0x2E, 0x0B, 0xC4, 0x6A, 0x7E, 0xF4,
- 0xC8, 0x98, 0x64, 0x52, 0xE1, 0x68, 0x00, 0x47, 0x80, 0xC5, 0x8C, 0x35,
- 0x4D, 0x00, 0x67, 0x7C, 0xC7, 0x88, 0x4F, 0x26, 0x30, 0xDA, 0x72, 0x09,
- 0x38, 0x1B, 0x80, 0x05, 0x34, 0x0C, 0x90, 0x5E, 0xE1, 0xDC, 0x16, 0xE0,
- 0x83, 0x0F, 0x10, 0x7B, 0x80, 0x27, 0x82, 0x7E, 0x1D, 0xB0, 0x10, 0x98,
- 0x4B, 0x4C, 0x02, 0xE3, 0xD2, 0xBD, 0xFA, 0x70, 0x0D, 0x09, 0xC2, 0x5A,
- 0x4F, 0x10, 0x3A, 0x6D, 0xA7, 0xAE, 0x72, 0x0C, 0x98, 0x16, 0xF4, 0xE7,
- 0xBB, 0xB5, 0x88, 0x5D, 0xC0, 0x33, 0x4B, 0x77, 0x1C, 0xB8, 0x19, 0x78,
- 0x66, 0x99, 0xBA, 0x58, 0x45, 0x1E, 0x10, 0x0B, 0xE6, 0xE9, 0x97, 0x95,
- 0x06, 0x97, 0x05, 0x62, 0x2B, 0x30, 0x67, 0xE9, 0x06, 0x80, 0x2F, 0x45,
- 0x5D, 0xC3, 0x86, 0x70, 0x2E, 0x92, 0xAC, 0xF9, 0x5D, 0x46, 0xFC, 0x28,
- 0x6C, 0x11, 0xA9, 0x00, 0x2F, 0xCD, 0x28, 0xA5, 0xF7, 0x16, 0x58, 0xF0,
- 0x01, 0xEB, 0xF8, 0x81, 0xE3, 0xFC, 0x5F, 0x66, 0x9B, 0x9C, 0x15, 0xCE,
- 0x3D, 0x05, 0x76, 0xAF, 0x38, 0xFE, 0x0D, 0xF4, 0x15, 0x01, 0xB1, 0x01,
- 0xF8, 0x9C, 0xC3, 0x74, 0x43, 0xF8, 0x91, 0xC5, 0x29, 0xE0, 0xBA, 0xA5,
- 0x3B, 0x01, 0xDC, 0xC8, 0xE3, 0x7A, 0x9D, 0x5C, 0xA3, 0x19, 0x51, 0x01,
- 0x79, 0x55, 0xD0, 0xBD, 0xF0, 0x95, 0x59, 0x2E, 0x45, 0x04, 0xE2, 0xBE,
- 0xA0, 0x1B, 0xF4, 0x59, 0x7D, 0xE6, 0x89, 0xEA, 0x6B, 0x80, 0xD7, 0xC6,
- 0x95, 0x5C, 0xA5, 0xB7, 0x4B, 0xF8, 0xCB, 0x26, 0x08, 0x9E, 0x14, 0xCE,
- 0x3D, 0x04, 0xF6, 0x5B, 0xF7, 0xD2, 0xE3, 0x0B, 0xC4, 0x21, 0xE0, 0x5E,
- 0x04, 0xDB, 0xA7, 0x74, 0xED, 0xC7, 0xC0, 0xBE, 0xA2, 0x20, 0xA4, 0x3E,
- 0x62, 0x0C, 0x79, 0x44, 0x93, 0x56, 0x3F, 0x74, 0xA5, 0xEC, 0xCC, 0xD8,
- 0x5D, 0x72, 0xE5, 0x11, 0x47, 0x05, 0xDD, 0xF6, 0x08, 0x62, 0xC6, 0x57,
- 0x41, 0x37, 0xDB, 0x4D, 0xAD, 0x71, 0x5B, 0xD0, 0xBD, 0x0A, 0x1C, 0xC2,
- 0x38, 0xD0, 0x6F, 0xE9, 0xA6, 0x7D, 0x54, 0x9F, 0x13, 0x19, 0x4D, 0x0E,
- 0x1F, 0x66, 0x3C, 0x60, 0x25, 0x39, 0xF3, 0x5D, 0x5E, 0x6F, 0xC4, 0x34,
- 0x65, 0x9C, 0xD6, 0xEA, 0xD2, 0x8F, 0xC8, 0xFA, 0xE2, 0x30, 0xF0, 0x36,
- 0x10, 0x4B, 0x98, 0x02, 0x0E, 0x0A, 0xFA, 0xC3, 0xC0, 0x5D, 0x1F, 0x65,
- 0x38, 0x59, 0xA9, 0x29, 0xAD, 0x66, 0xE9, 0x12, 0x30, 0x56, 0x63, 0x43,
- 0x66, 0xD2, 0x3C, 0x28, 0x09, 0xC2, 0xF3, 0x4E, 0x10, 0x5C, 0x2D, 0xA2,
- 0x9D, 0x2F, 0x7C, 0x8F, 0x28, 0xC9, 0x9A, 0x07, 0x86, 0x7C, 0x64, 0x96,
- 0xB6, 0xFC, 0x58, 0xC5, 0x32, 0x42, 0x93, 0x5B, 0x79, 0x21, 0x14, 0x01,
- 0xD1, 0xAE, 0xE0, 0x12, 0xE0, 0x5A, 0xC0, 0x10, 0x36, 0xD1, 0xEA, 0x54,
- 0x51, 0x26, 0x88, 0xB6, 0x9C, 0x36, 0x40, 0x2E, 0x04, 0x72, 0xF3, 0xDF,
- 0xF8, 0xDB, 0x45, 0xFF, 0xE8, 0x3A, 0xD9, 0xF7, 0x4B, 0xE0, 0x7E, 0x93,
- 0x6C, 0xAD, 0x77, 0x98, 0x63, 0x6F, 0x75, 0xA3, 0x0E, 0x73, 0xE7, 0x32,
- 0x1A, 0x30, 0xD4, 0x0D, 0x22, 0xB4, 0x5A, 0xA3, 0x12, 0xD7, 0xF8, 0xA7,
- 0x24, 0x04, 0x10, 0x7D, 0xB4, 0x1A, 0xAA, 0x8B, 0xC8, 0x2F, 0x90, 0x2A,
- 0x91, 0x44, 0xFF, 0xCA, 0xA4, 0xAE, 0xA1, 0x20, 0x14, 0x84, 0x82, 0x50,
- 0x10, 0x0A, 0x42, 0x41, 0x28, 0x08, 0x05, 0xA1, 0x20, 0x14, 0x84, 0x82,
- 0x50, 0x10, 0x0A, 0xA2, 0x2A, 0xF9, 0x33, 0x00, 0x85, 0x3D, 0xBB, 0x66,
- 0xA5, 0x18, 0xA1, 0xED, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44,
- 0xAE, 0x42, 0x60, 0x82
-};
-}
-static const unsigned char* legit_icon = raw::legit_raw;
-}
\ No newline at end of file diff --git a/tf2/icons/misc.hpp b/tf2/icons/misc.hpp deleted file mode 100644 index d15e736..0000000 --- a/tf2/icons/misc.hpp +++ /dev/null @@ -1,1313 +0,0 @@ -/* E:\Users\admin\Desktop\stuff\icons\misc.png (1/26/2018 4:19:00 AM)
- StartOffset: 00000000, EndOffset: 00003CFF, Length: 00003D00 */
-
-namespace icons {
-static const size_t misc_size = 15616;
-namespace raw {
-static const unsigned char misc_raw[15616] = {
- 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, 0x0D,
- 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x42,
- 0x08, 0x06, 0x00, 0x00, 0x00, 0xE3, 0x54, 0x00, 0xE8, 0x00, 0x00, 0x00,
- 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0B, 0x13, 0x00, 0x00, 0x0B,
- 0x13, 0x01, 0x00, 0x9A, 0x9C, 0x18, 0x00, 0x00, 0x39, 0xEC, 0x69, 0x54,
- 0x58, 0x74, 0x58, 0x4D, 0x4C, 0x3A, 0x63, 0x6F, 0x6D, 0x2E, 0x61, 0x64,
- 0x6F, 0x62, 0x65, 0x2E, 0x78, 0x6D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3C, 0x3F, 0x78, 0x70, 0x61, 0x63, 0x6B, 0x65, 0x74, 0x20, 0x62, 0x65,
- 0x67, 0x69, 0x6E, 0x3D, 0x22, 0xEF, 0xBB, 0xBF, 0x22, 0x20, 0x69, 0x64,
- 0x3D, 0x22, 0x57, 0x35, 0x4D, 0x30, 0x4D, 0x70, 0x43, 0x65, 0x68, 0x69,
- 0x48, 0x7A, 0x72, 0x65, 0x53, 0x7A, 0x4E, 0x54, 0x63, 0x7A, 0x6B, 0x63,
- 0x39, 0x64, 0x22, 0x3F, 0x3E, 0x0A, 0x3C, 0x78, 0x3A, 0x78, 0x6D, 0x70,
- 0x6D, 0x65, 0x74, 0x61, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x78,
- 0x3D, 0x22, 0x61, 0x64, 0x6F, 0x62, 0x65, 0x3A, 0x6E, 0x73, 0x3A, 0x6D,
- 0x65, 0x74, 0x61, 0x2F, 0x22, 0x20, 0x78, 0x3A, 0x78, 0x6D, 0x70, 0x74,
- 0x6B, 0x3D, 0x22, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x20, 0x58, 0x4D, 0x50,
- 0x20, 0x43, 0x6F, 0x72, 0x65, 0x20, 0x35, 0x2E, 0x36, 0x2D, 0x63, 0x31,
- 0x33, 0x38, 0x20, 0x37, 0x39, 0x2E, 0x31, 0x35, 0x39, 0x38, 0x32, 0x34,
- 0x2C, 0x20, 0x32, 0x30, 0x31, 0x36, 0x2F, 0x30, 0x39, 0x2F, 0x31, 0x34,
- 0x2D, 0x30, 0x31, 0x3A, 0x30, 0x39, 0x3A, 0x30, 0x31, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x3C,
- 0x72, 0x64, 0x66, 0x3A, 0x52, 0x44, 0x46, 0x20, 0x78, 0x6D, 0x6C, 0x6E,
- 0x73, 0x3A, 0x72, 0x64, 0x66, 0x3D, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A,
- 0x2F, 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x77, 0x33, 0x2E, 0x6F, 0x72, 0x67,
- 0x2F, 0x31, 0x39, 0x39, 0x39, 0x2F, 0x30, 0x32, 0x2F, 0x32, 0x32, 0x2D,
- 0x72, 0x64, 0x66, 0x2D, 0x73, 0x79, 0x6E, 0x74, 0x61, 0x78, 0x2D, 0x6E,
- 0x73, 0x23, 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C,
- 0x72, 0x64, 0x66, 0x3A, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
- 0x69, 0x6F, 0x6E, 0x20, 0x72, 0x64, 0x66, 0x3A, 0x61, 0x62, 0x6F, 0x75,
- 0x74, 0x3D, 0x22, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x78,
- 0x6D, 0x70, 0x3D, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E,
- 0x73, 0x2E, 0x61, 0x64, 0x6F, 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F,
- 0x78, 0x61, 0x70, 0x2F, 0x31, 0x2E, 0x30, 0x2F, 0x22, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D,
- 0x6C, 0x6E, 0x73, 0x3A, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3D, 0x22, 0x68,
- 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64, 0x6F,
- 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x78, 0x61, 0x70, 0x2F, 0x31,
- 0x2E, 0x30, 0x2F, 0x6D, 0x6D, 0x2F, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E,
- 0x73, 0x3A, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3D, 0x22, 0x68, 0x74, 0x74,
- 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64, 0x6F, 0x62, 0x65,
- 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x78, 0x61, 0x70, 0x2F, 0x31, 0x2E, 0x30,
- 0x2F, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2F, 0x52, 0x65, 0x73, 0x6F, 0x75,
- 0x72, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6E, 0x74, 0x23, 0x22, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78,
- 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x64, 0x63, 0x3D, 0x22, 0x68, 0x74, 0x74,
- 0x70, 0x3A, 0x2F, 0x2F, 0x70, 0x75, 0x72, 0x6C, 0x2E, 0x6F, 0x72, 0x67,
- 0x2F, 0x64, 0x63, 0x2F, 0x65, 0x6C, 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x73,
- 0x2F, 0x31, 0x2E, 0x31, 0x2F, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73,
- 0x3A, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x3D, 0x22,
- 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64,
- 0x6F, 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x70, 0x68, 0x6F, 0x74,
- 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x2F, 0x31, 0x2E, 0x30, 0x2F, 0x22, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x78, 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x74, 0x69, 0x66, 0x66, 0x3D, 0x22,
- 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64,
- 0x6F, 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x74, 0x69, 0x66, 0x66,
- 0x2F, 0x31, 0x2E, 0x30, 0x2F, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73,
- 0x3A, 0x65, 0x78, 0x69, 0x66, 0x3D, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A,
- 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64, 0x6F, 0x62, 0x65, 0x2E, 0x63,
- 0x6F, 0x6D, 0x2F, 0x65, 0x78, 0x69, 0x66, 0x2F, 0x31, 0x2E, 0x30, 0x2F,
- 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6F, 0x72,
- 0x54, 0x6F, 0x6F, 0x6C, 0x3E, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x20, 0x50,
- 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x20, 0x43, 0x43, 0x20,
- 0x32, 0x30, 0x31, 0x37, 0x20, 0x28, 0x57, 0x69, 0x6E, 0x64, 0x6F, 0x77,
- 0x73, 0x29, 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x3A, 0x43, 0x72, 0x65, 0x61,
- 0x74, 0x6F, 0x72, 0x54, 0x6F, 0x6F, 0x6C, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x43,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x3E, 0x32, 0x30,
- 0x31, 0x38, 0x2D, 0x30, 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A,
- 0x31, 0x38, 0x3A, 0x35, 0x37, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C,
- 0x2F, 0x78, 0x6D, 0x70, 0x3A, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44,
- 0x61, 0x74, 0x65, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x4D, 0x65, 0x74, 0x61, 0x64,
- 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x65, 0x3E, 0x32, 0x30, 0x31, 0x38,
- 0x2D, 0x30, 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31, 0x38,
- 0x3A, 0x35, 0x37, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F, 0x78,
- 0x6D, 0x70, 0x3A, 0x4D, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44,
- 0x61, 0x74, 0x65, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x4D, 0x6F, 0x64, 0x69, 0x66,
- 0x79, 0x44, 0x61, 0x74, 0x65, 0x3E, 0x32, 0x30, 0x31, 0x38, 0x2D, 0x30,
- 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31, 0x38, 0x3A, 0x35,
- 0x37, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F, 0x78, 0x6D, 0x70,
- 0x3A, 0x4D, 0x6F, 0x64, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x65, 0x3E,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x78,
- 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x49, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x63,
- 0x65, 0x49, 0x44, 0x3E, 0x78, 0x6D, 0x70, 0x2E, 0x69, 0x69, 0x64, 0x3A,
- 0x63, 0x36, 0x30, 0x66, 0x62, 0x37, 0x34, 0x35, 0x2D, 0x30, 0x38, 0x61,
- 0x63, 0x2D, 0x35, 0x64, 0x34, 0x38, 0x2D, 0x38, 0x65, 0x39, 0x33, 0x2D,
- 0x39, 0x65, 0x62, 0x38, 0x39, 0x65, 0x31, 0x32, 0x30, 0x63, 0x64, 0x35,
- 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x49, 0x6E, 0x73, 0x74,
- 0x61, 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A,
- 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x49, 0x44, 0x3E, 0x61,
- 0x64, 0x6F, 0x62, 0x65, 0x3A, 0x64, 0x6F, 0x63, 0x69, 0x64, 0x3A, 0x70,
- 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x3A, 0x39, 0x61, 0x63,
- 0x30, 0x38, 0x39, 0x32, 0x64, 0x2D, 0x30, 0x32, 0x34, 0x37, 0x2D, 0x31,
- 0x31, 0x65, 0x38, 0x2D, 0x61, 0x33, 0x38, 0x37, 0x2D, 0x38, 0x65, 0x34,
- 0x32, 0x36, 0x32, 0x63, 0x35, 0x34, 0x30, 0x63, 0x32, 0x3C, 0x2F, 0x78,
- 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E,
- 0x74, 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x4F, 0x72, 0x69,
- 0x67, 0x69, 0x6E, 0x61, 0x6C, 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E,
- 0x74, 0x49, 0x44, 0x3E, 0x78, 0x6D, 0x70, 0x2E, 0x64, 0x69, 0x64, 0x3A,
- 0x38, 0x30, 0x61, 0x38, 0x30, 0x31, 0x39, 0x38, 0x2D, 0x30, 0x62, 0x66,
- 0x32, 0x2D, 0x37, 0x64, 0x34, 0x62, 0x2D, 0x39, 0x65, 0x32, 0x36, 0x2D,
- 0x62, 0x66, 0x39, 0x36, 0x37, 0x34, 0x36, 0x39, 0x63, 0x65, 0x34, 0x66,
- 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x4F, 0x72, 0x69, 0x67,
- 0x69, 0x6E, 0x61, 0x6C, 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74,
- 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x48, 0x69, 0x73, 0x74,
- 0x6F, 0x72, 0x79, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x72, 0x64, 0x66, 0x3A, 0x53, 0x65,
- 0x71, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x72, 0x64, 0x66, 0x3A, 0x6C,
- 0x69, 0x20, 0x72, 0x64, 0x66, 0x3A, 0x70, 0x61, 0x72, 0x73, 0x65, 0x54,
- 0x79, 0x70, 0x65, 0x3D, 0x22, 0x52, 0x65, 0x73, 0x6F, 0x75, 0x72, 0x63,
- 0x65, 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73,
- 0x74, 0x45, 0x76, 0x74, 0x3A, 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x3E,
- 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x3C, 0x2F, 0x73, 0x74, 0x45,
- 0x76, 0x74, 0x3A, 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A,
- 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x78,
- 0x6D, 0x70, 0x2E, 0x69, 0x69, 0x64, 0x3A, 0x38, 0x30, 0x61, 0x38, 0x30,
- 0x31, 0x39, 0x38, 0x2D, 0x30, 0x62, 0x66, 0x32, 0x2D, 0x37, 0x64, 0x34,
- 0x62, 0x2D, 0x39, 0x65, 0x32, 0x36, 0x2D, 0x62, 0x66, 0x39, 0x36, 0x37,
- 0x34, 0x36, 0x39, 0x63, 0x65, 0x34, 0x66, 0x3C, 0x2F, 0x73, 0x74, 0x45,
- 0x76, 0x74, 0x3A, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x63, 0x65, 0x49,
- 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74,
- 0x45, 0x76, 0x74, 0x3A, 0x77, 0x68, 0x65, 0x6E, 0x3E, 0x32, 0x30, 0x31,
- 0x38, 0x2D, 0x30, 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31,
- 0x38, 0x3A, 0x35, 0x37, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F,
- 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x77, 0x68, 0x65, 0x6E, 0x3E, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74,
- 0x3A, 0x73, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x41, 0x67, 0x65,
- 0x6E, 0x74, 0x3E, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x20, 0x50, 0x68, 0x6F,
- 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x20, 0x43, 0x43, 0x20, 0x32, 0x30,
- 0x31, 0x37, 0x20, 0x28, 0x57, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x73, 0x29,
- 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x73, 0x6F, 0x66, 0x74,
- 0x77, 0x61, 0x72, 0x65, 0x41, 0x67, 0x65, 0x6E, 0x74, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x6C, 0x69, 0x3E, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x3C, 0x72, 0x64, 0x66, 0x3A, 0x6C, 0x69, 0x20, 0x72,
- 0x64, 0x66, 0x3A, 0x70, 0x61, 0x72, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65,
- 0x3D, 0x22, 0x52, 0x65, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x22, 0x3E,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76,
- 0x74, 0x3A, 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x73, 0x61, 0x76,
- 0x65, 0x64, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x61, 0x63,
- 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x69, 0x6E, 0x73, 0x74, 0x61,
- 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x78, 0x6D, 0x70, 0x2E, 0x69, 0x69,
- 0x64, 0x3A, 0x63, 0x36, 0x30, 0x66, 0x62, 0x37, 0x34, 0x35, 0x2D, 0x30,
- 0x38, 0x61, 0x63, 0x2D, 0x35, 0x64, 0x34, 0x38, 0x2D, 0x38, 0x65, 0x39,
- 0x33, 0x2D, 0x39, 0x65, 0x62, 0x38, 0x39, 0x65, 0x31, 0x32, 0x30, 0x63,
- 0x64, 0x35, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x69, 0x6E,
- 0x73, 0x74, 0x61, 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x77,
- 0x68, 0x65, 0x6E, 0x3E, 0x32, 0x30, 0x31, 0x38, 0x2D, 0x30, 0x31, 0x2D,
- 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31, 0x38, 0x3A, 0x35, 0x37, 0x2B,
- 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74,
- 0x3A, 0x77, 0x68, 0x65, 0x6E, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x73, 0x6F, 0x66, 0x74,
- 0x77, 0x61, 0x72, 0x65, 0x41, 0x67, 0x65, 0x6E, 0x74, 0x3E, 0x41, 0x64,
- 0x6F, 0x62, 0x65, 0x20, 0x50, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F,
- 0x70, 0x20, 0x43, 0x43, 0x20, 0x32, 0x30, 0x31, 0x37, 0x20, 0x28, 0x57,
- 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x73, 0x29, 0x3C, 0x2F, 0x73, 0x74, 0x45,
- 0x76, 0x74, 0x3A, 0x73, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x41,
- 0x67, 0x65, 0x6E, 0x74, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x63, 0x68, 0x61, 0x6E, 0x67,
- 0x65, 0x64, 0x3E, 0x2F, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A,
- 0x63, 0x68, 0x61, 0x6E, 0x67, 0x65, 0x64, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x6C, 0x69, 0x3E, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x2F,
- 0x72, 0x64, 0x66, 0x3A, 0x53, 0x65, 0x71, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x4D,
- 0x4D, 0x3A, 0x48, 0x69, 0x73, 0x74, 0x6F, 0x72, 0x79, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x64, 0x63, 0x3A,
- 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x3E, 0x69, 0x6D, 0x61, 0x67, 0x65,
- 0x2F, 0x70, 0x6E, 0x67, 0x3C, 0x2F, 0x64, 0x63, 0x3A, 0x66, 0x6F, 0x72,
- 0x6D, 0x61, 0x74, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70,
- 0x3A, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x4D, 0x6F, 0x64, 0x65, 0x3E, 0x33,
- 0x3C, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x3A,
- 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x4D, 0x6F, 0x64, 0x65, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66,
- 0x66, 0x3A, 0x4F, 0x72, 0x69, 0x65, 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F,
- 0x6E, 0x3E, 0x31, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x4F, 0x72,
- 0x69, 0x65, 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66,
- 0x66, 0x3A, 0x58, 0x52, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F,
- 0x6E, 0x3E, 0x37, 0x32, 0x30, 0x30, 0x30, 0x30, 0x2F, 0x31, 0x30, 0x30,
- 0x30, 0x30, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x58, 0x52, 0x65,
- 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66, 0x66,
- 0x3A, 0x59, 0x52, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E,
- 0x3E, 0x37, 0x32, 0x30, 0x30, 0x30, 0x30, 0x2F, 0x31, 0x30, 0x30, 0x30,
- 0x30, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x59, 0x52, 0x65, 0x73,
- 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66, 0x66, 0x3A,
- 0x52, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x55, 0x6E,
- 0x69, 0x74, 0x3E, 0x32, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x52,
- 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x55, 0x6E, 0x69,
- 0x74, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x53,
- 0x70, 0x61, 0x63, 0x65, 0x3E, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3C, 0x2F,
- 0x65, 0x78, 0x69, 0x66, 0x3A, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x53, 0x70,
- 0x61, 0x63, 0x65, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78, 0x65,
- 0x6C, 0x58, 0x44, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x3E,
- 0x36, 0x36, 0x3C, 0x2F, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78,
- 0x65, 0x6C, 0x58, 0x44, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E,
- 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C,
- 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x59, 0x44,
- 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x3E, 0x36, 0x36, 0x3C,
- 0x2F, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x59,
- 0x44, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x44,
- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A,
- 0x20, 0x20, 0x20, 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x52, 0x44, 0x46,
- 0x3E, 0x0A, 0x3C, 0x2F, 0x78, 0x3A, 0x78, 0x6D, 0x70, 0x6D, 0x65, 0x74,
- 0x61, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x3C, 0x3F, 0x78, 0x70, 0x61, 0x63, 0x6B, 0x65, 0x74,
- 0x20, 0x65, 0x6E, 0x64, 0x3D, 0x22, 0x77, 0x22, 0x3F, 0x3E, 0xE2, 0x3E,
- 0xB4, 0x34, 0x00, 0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00,
- 0x7A, 0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xF9, 0xFF, 0x00, 0x00,
- 0x80, 0xE9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xEA, 0x60, 0x00, 0x00,
- 0x3A, 0x98, 0x00, 0x00, 0x17, 0x6F, 0x92, 0x5F, 0xC5, 0x46, 0x00, 0x00,
- 0x02, 0x8E, 0x49, 0x44, 0x41, 0x54, 0x78, 0xDA, 0xEC, 0xDB, 0xBF, 0x6B,
- 0x14, 0x41, 0x18, 0xC6, 0xF1, 0xEF, 0xC6, 0x5C, 0xCE, 0xC3, 0x93, 0xA0,
- 0x48, 0xF0, 0x07, 0x6A, 0x0A, 0x15, 0x31, 0x8D, 0x55, 0x40, 0xB0, 0xB4,
- 0xD0, 0x42, 0xD0, 0xCE, 0x7F, 0x40, 0x41, 0x11, 0x04, 0x5B, 0x7B, 0x3B,
- 0x11, 0xC4, 0x42, 0x05, 0xB1, 0x13, 0x04, 0x1B, 0x41, 0xAC, 0x6D, 0xAD,
- 0x04, 0x41, 0xC4, 0x46, 0xB0, 0x88, 0x12, 0x41, 0xD0, 0x80, 0x07, 0x31,
- 0xB9, 0x5B, 0x8B, 0x4C, 0x40, 0xD6, 0x99, 0xDD, 0xD9, 0x99, 0x59, 0xDD,
- 0x95, 0x67, 0xE0, 0x8A, 0x5B, 0xDE, 0xEC, 0xED, 0x7C, 0xF6, 0x9D, 0x99,
- 0x77, 0xF6, 0x72, 0x59, 0x9E, 0xE7, 0xA8, 0xC1, 0x94, 0x08, 0x04, 0x21,
- 0x08, 0x41, 0x08, 0x42, 0x10, 0x82, 0x10, 0x84, 0x20, 0x04, 0x21, 0x08,
- 0x41, 0x08, 0x42, 0x10, 0x82, 0x10, 0x84, 0x20, 0x04, 0x21, 0x88, 0xFF,
- 0x09, 0xE2, 0x3C, 0xB0, 0x02, 0xE4, 0xFF, 0xE8, 0xB5, 0x0A, 0xDC, 0x88,
- 0xE9, 0x40, 0x16, 0xF9, 0xF0, 0xF6, 0x15, 0xB0, 0xD8, 0xB2, 0x9B, 0xFB,
- 0x09, 0x38, 0x00, 0x8C, 0xFF, 0x46, 0x46, 0x1C, 0x37, 0x77, 0x62, 0xB1,
- 0x85, 0x59, 0xBE, 0x17, 0x58, 0x07, 0x2E, 0x36, 0x0D, 0x71, 0x0B, 0x78,
- 0xDD, 0x81, 0x61, 0xFF, 0x00, 0x78, 0xD7, 0x14, 0xC4, 0x4D, 0xE0, 0x7A,
- 0xC5, 0x87, 0x1F, 0x06, 0xB6, 0x02, 0x7D, 0x8F, 0xD7, 0x7C, 0xC9, 0xB9,
- 0x06, 0x85, 0xD8, 0x61, 0x49, 0xAC, 0x6B, 0x7C, 0x1F, 0x05, 0xDE, 0xA7,
- 0x9E, 0x23, 0x8E, 0x94, 0x9C, 0x74, 0x1B, 0x30, 0xAA, 0x89, 0xDA, 0x03,
- 0x7E, 0xBA, 0xAE, 0xAB, 0x46, 0x67, 0x67, 0x80, 0x35, 0x60, 0x1A, 0xF8,
- 0x02, 0xEC, 0xB0, 0xC4, 0x5C, 0x03, 0xEE, 0xA4, 0x82, 0xB0, 0x05, 0x3E,
- 0x01, 0x2E, 0x04, 0xA4, 0x6D, 0x2A, 0x84, 0x21, 0xF0, 0xC3, 0x33, 0xB6,
- 0x67, 0xE6, 0x8E, 0xA8, 0xA1, 0xF1, 0xC2, 0x72, 0xEC, 0x69, 0x87, 0x10,
- 0x00, 0xBE, 0xA5, 0xC8, 0x88, 0xDC, 0xF3, 0xA2, 0xDB, 0x8A, 0xB0, 0xD9,
- 0xB6, 0x00, 0x93, 0xD0, 0x8C, 0x38, 0xE1, 0x98, 0x13, 0xBA, 0x86, 0x00,
- 0xF0, 0x38, 0x26, 0x23, 0x96, 0xCC, 0xDA, 0x1C, 0x93, 0x0D, 0x53, 0x25,
- 0x05, 0x4E, 0x53, 0x08, 0x43, 0xB3, 0x7C, 0xEE, 0xF7, 0xB9, 0x76, 0x9F,
- 0x8C, 0x28, 0x22, 0xDC, 0x4D, 0x88, 0x60, 0xFB, 0xFC, 0x89, 0x23, 0x76,
- 0xA7, 0x05, 0x61, 0x52, 0x01, 0x76, 0x3A, 0x65, 0x89, 0x5D, 0x0C, 0xD8,
- 0x67, 0xCA, 0xD8, 0x58, 0x04, 0xDB, 0x78, 0x9D, 0x38, 0xEE, 0xD8, 0x2E,
- 0xE0, 0x6B, 0x60, 0x6C, 0xEE, 0x93, 0x11, 0x21, 0x10, 0xFD, 0x92, 0xB1,
- 0xDE, 0x36, 0x04, 0x6F, 0x88, 0x90, 0x12, 0xBB, 0xD7, 0x21, 0x84, 0x46,
- 0xF7, 0x1A, 0xA7, 0x3A, 0x84, 0xD0, 0x4F, 0x09, 0x51, 0xEC, 0xD4, 0xBD,
- 0x9A, 0xF1, 0x65, 0x08, 0xAB, 0x35, 0x3A, 0xB6, 0x1E, 0x90, 0x09, 0xB7,
- 0x53, 0x42, 0x3C, 0x2C, 0xBC, 0xDF, 0x1D, 0xB0, 0xF9, 0x99, 0xB1, 0x20,
- 0x8C, 0xCC, 0xF1, 0x62, 0x9B, 0xB7, 0x74, 0x6C, 0x64, 0x20, 0x7D, 0x62,
- 0x7F, 0x6F, 0x97, 0x0B, 0xEF, 0x97, 0x63, 0x20, 0xAE, 0x58, 0x8E, 0x3D,
- 0x0A, 0xD8, 0x14, 0x15, 0x3B, 0x36, 0x70, 0x74, 0xEC, 0x63, 0x44, 0x6C,
- 0x55, 0x21, 0x78, 0x32, 0xB6, 0xC4, 0x1E, 0x5B, 0xD0, 0x66, 0xD9, 0x78,
- 0x3C, 0xD7, 0x46, 0x84, 0xCC, 0x51, 0x63, 0x64, 0xB1, 0x93, 0xE5, 0x9C,
- 0xE5, 0xD8, 0x77, 0x53, 0x6A, 0xB7, 0x0D, 0xC1, 0x55, 0x68, 0x9D, 0x4B,
- 0xB5, 0x0D, 0x7F, 0x0B, 0x1C, 0xF3, 0x8C, 0xB5, 0x21, 0xAC, 0x00, 0xDB,
- 0x1B, 0x46, 0x98, 0x73, 0xCC, 0x03, 0x79, 0xD5, 0x4D, 0xAF, 0xB3, 0x7C,
- 0x2E, 0x78, 0xC6, 0x0D, 0x2C, 0x08, 0x4B, 0x0E, 0x84, 0x05, 0x4B, 0xC7,
- 0x3E, 0x3B, 0x10, 0x0E, 0x95, 0x20, 0xEC, 0x31, 0x25, 0xF5, 0x72, 0xC9,
- 0x8A, 0x95, 0xEC, 0x09, 0x55, 0xD9, 0xD8, 0x6B, 0x73, 0xB3, 0x6D, 0xD4,
- 0xFE, 0x68, 0xD3, 0x35, 0x4F, 0x9A, 0x1B, 0x8C, 0x31, 0xDD, 0xF8, 0x72,
- 0xC8, 0x36, 0x44, 0x93, 0x55, 0x96, 0x9B, 0xA9, 0x76, 0xB5, 0xC5, 0x00,
- 0xCF, 0xCC, 0x0D, 0x5B, 0xF3, 0x4E, 0xF5, 0x04, 0xFF, 0x9D, 0x7F, 0x1F,
- 0xB8, 0xD4, 0x12, 0x80, 0xE7, 0xC0, 0xD9, 0x90, 0x3F, 0xCC, 0x12, 0xFF,
- 0x4C, 0xE1, 0x20, 0x70, 0x86, 0x8D, 0xC7, 0xE8, 0x31, 0x6D, 0xD6, 0x2C,
- 0xCF, 0x55, 0xED, 0x03, 0xF0, 0x12, 0x78, 0x13, 0x7B, 0xE1, 0x99, 0x7E,
- 0xAF, 0x11, 0x37, 0x47, 0x08, 0x42, 0x10, 0x82, 0x10, 0x84, 0x20, 0x04,
- 0x21, 0x08, 0x35, 0x41, 0x08, 0x42, 0x10, 0x82, 0x10, 0x84, 0x20, 0x04,
- 0x21, 0x08, 0x41, 0x44, 0xB6, 0x5F, 0x03, 0x00, 0xB0, 0xEE, 0xE7, 0x04,
- 0x67, 0x01, 0x94, 0x88, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44,
- 0xAE, 0x42, 0x60, 0x82
-};
-}
-static const unsigned char* misc_icon = raw::misc_raw;
-}
\ No newline at end of file diff --git a/tf2/icons/rage.hpp b/tf2/icons/rage.hpp deleted file mode 100644 index 00dff07..0000000 --- a/tf2/icons/rage.hpp +++ /dev/null @@ -1,1293 +0,0 @@ -/* E:\Users\admin\Desktop\stuff\icons\rage.png (1/26/2018 4:18:26 AM)
- StartOffset: 00000000, EndOffset: 00003C11, Length: 00003C12 */
-
-namespace icons {
-static const size_t rage_size = 15378;
-namespace raw {
-static const unsigned char rage_raw[15378] = {
- 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, 0x0D,
- 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x42,
- 0x08, 0x06, 0x00, 0x00, 0x00, 0xE3, 0x54, 0x00, 0xE8, 0x00, 0x00, 0x00,
- 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0B, 0x13, 0x00, 0x00, 0x0B,
- 0x13, 0x01, 0x00, 0x9A, 0x9C, 0x18, 0x00, 0x00, 0x39, 0xEC, 0x69, 0x54,
- 0x58, 0x74, 0x58, 0x4D, 0x4C, 0x3A, 0x63, 0x6F, 0x6D, 0x2E, 0x61, 0x64,
- 0x6F, 0x62, 0x65, 0x2E, 0x78, 0x6D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3C, 0x3F, 0x78, 0x70, 0x61, 0x63, 0x6B, 0x65, 0x74, 0x20, 0x62, 0x65,
- 0x67, 0x69, 0x6E, 0x3D, 0x22, 0xEF, 0xBB, 0xBF, 0x22, 0x20, 0x69, 0x64,
- 0x3D, 0x22, 0x57, 0x35, 0x4D, 0x30, 0x4D, 0x70, 0x43, 0x65, 0x68, 0x69,
- 0x48, 0x7A, 0x72, 0x65, 0x53, 0x7A, 0x4E, 0x54, 0x63, 0x7A, 0x6B, 0x63,
- 0x39, 0x64, 0x22, 0x3F, 0x3E, 0x0A, 0x3C, 0x78, 0x3A, 0x78, 0x6D, 0x70,
- 0x6D, 0x65, 0x74, 0x61, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x78,
- 0x3D, 0x22, 0x61, 0x64, 0x6F, 0x62, 0x65, 0x3A, 0x6E, 0x73, 0x3A, 0x6D,
- 0x65, 0x74, 0x61, 0x2F, 0x22, 0x20, 0x78, 0x3A, 0x78, 0x6D, 0x70, 0x74,
- 0x6B, 0x3D, 0x22, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x20, 0x58, 0x4D, 0x50,
- 0x20, 0x43, 0x6F, 0x72, 0x65, 0x20, 0x35, 0x2E, 0x36, 0x2D, 0x63, 0x31,
- 0x33, 0x38, 0x20, 0x37, 0x39, 0x2E, 0x31, 0x35, 0x39, 0x38, 0x32, 0x34,
- 0x2C, 0x20, 0x32, 0x30, 0x31, 0x36, 0x2F, 0x30, 0x39, 0x2F, 0x31, 0x34,
- 0x2D, 0x30, 0x31, 0x3A, 0x30, 0x39, 0x3A, 0x30, 0x31, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x3C,
- 0x72, 0x64, 0x66, 0x3A, 0x52, 0x44, 0x46, 0x20, 0x78, 0x6D, 0x6C, 0x6E,
- 0x73, 0x3A, 0x72, 0x64, 0x66, 0x3D, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A,
- 0x2F, 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x77, 0x33, 0x2E, 0x6F, 0x72, 0x67,
- 0x2F, 0x31, 0x39, 0x39, 0x39, 0x2F, 0x30, 0x32, 0x2F, 0x32, 0x32, 0x2D,
- 0x72, 0x64, 0x66, 0x2D, 0x73, 0x79, 0x6E, 0x74, 0x61, 0x78, 0x2D, 0x6E,
- 0x73, 0x23, 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C,
- 0x72, 0x64, 0x66, 0x3A, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
- 0x69, 0x6F, 0x6E, 0x20, 0x72, 0x64, 0x66, 0x3A, 0x61, 0x62, 0x6F, 0x75,
- 0x74, 0x3D, 0x22, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x78,
- 0x6D, 0x70, 0x3D, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E,
- 0x73, 0x2E, 0x61, 0x64, 0x6F, 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F,
- 0x78, 0x61, 0x70, 0x2F, 0x31, 0x2E, 0x30, 0x2F, 0x22, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D,
- 0x6C, 0x6E, 0x73, 0x3A, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3D, 0x22, 0x68,
- 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64, 0x6F,
- 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x78, 0x61, 0x70, 0x2F, 0x31,
- 0x2E, 0x30, 0x2F, 0x6D, 0x6D, 0x2F, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E,
- 0x73, 0x3A, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3D, 0x22, 0x68, 0x74, 0x74,
- 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64, 0x6F, 0x62, 0x65,
- 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x78, 0x61, 0x70, 0x2F, 0x31, 0x2E, 0x30,
- 0x2F, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2F, 0x52, 0x65, 0x73, 0x6F, 0x75,
- 0x72, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6E, 0x74, 0x23, 0x22, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78,
- 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x64, 0x63, 0x3D, 0x22, 0x68, 0x74, 0x74,
- 0x70, 0x3A, 0x2F, 0x2F, 0x70, 0x75, 0x72, 0x6C, 0x2E, 0x6F, 0x72, 0x67,
- 0x2F, 0x64, 0x63, 0x2F, 0x65, 0x6C, 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x73,
- 0x2F, 0x31, 0x2E, 0x31, 0x2F, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73,
- 0x3A, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x3D, 0x22,
- 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64,
- 0x6F, 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x70, 0x68, 0x6F, 0x74,
- 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x2F, 0x31, 0x2E, 0x30, 0x2F, 0x22, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x78, 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x74, 0x69, 0x66, 0x66, 0x3D, 0x22,
- 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64,
- 0x6F, 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x74, 0x69, 0x66, 0x66,
- 0x2F, 0x31, 0x2E, 0x30, 0x2F, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73,
- 0x3A, 0x65, 0x78, 0x69, 0x66, 0x3D, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A,
- 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64, 0x6F, 0x62, 0x65, 0x2E, 0x63,
- 0x6F, 0x6D, 0x2F, 0x65, 0x78, 0x69, 0x66, 0x2F, 0x31, 0x2E, 0x30, 0x2F,
- 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6F, 0x72,
- 0x54, 0x6F, 0x6F, 0x6C, 0x3E, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x20, 0x50,
- 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x20, 0x43, 0x43, 0x20,
- 0x32, 0x30, 0x31, 0x37, 0x20, 0x28, 0x57, 0x69, 0x6E, 0x64, 0x6F, 0x77,
- 0x73, 0x29, 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x3A, 0x43, 0x72, 0x65, 0x61,
- 0x74, 0x6F, 0x72, 0x54, 0x6F, 0x6F, 0x6C, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x43,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x3E, 0x32, 0x30,
- 0x31, 0x38, 0x2D, 0x30, 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A,
- 0x31, 0x38, 0x3A, 0x32, 0x34, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C,
- 0x2F, 0x78, 0x6D, 0x70, 0x3A, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44,
- 0x61, 0x74, 0x65, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x4D, 0x65, 0x74, 0x61, 0x64,
- 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x65, 0x3E, 0x32, 0x30, 0x31, 0x38,
- 0x2D, 0x30, 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31, 0x38,
- 0x3A, 0x32, 0x34, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F, 0x78,
- 0x6D, 0x70, 0x3A, 0x4D, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44,
- 0x61, 0x74, 0x65, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x4D, 0x6F, 0x64, 0x69, 0x66,
- 0x79, 0x44, 0x61, 0x74, 0x65, 0x3E, 0x32, 0x30, 0x31, 0x38, 0x2D, 0x30,
- 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31, 0x38, 0x3A, 0x32,
- 0x34, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F, 0x78, 0x6D, 0x70,
- 0x3A, 0x4D, 0x6F, 0x64, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x65, 0x3E,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x78,
- 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x49, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x63,
- 0x65, 0x49, 0x44, 0x3E, 0x78, 0x6D, 0x70, 0x2E, 0x69, 0x69, 0x64, 0x3A,
- 0x39, 0x61, 0x36, 0x38, 0x61, 0x33, 0x31, 0x37, 0x2D, 0x37, 0x65, 0x39,
- 0x34, 0x2D, 0x37, 0x30, 0x34, 0x31, 0x2D, 0x38, 0x63, 0x62, 0x30, 0x2D,
- 0x61, 0x39, 0x35, 0x63, 0x62, 0x61, 0x33, 0x33, 0x39, 0x66, 0x34, 0x65,
- 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x49, 0x6E, 0x73, 0x74,
- 0x61, 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A,
- 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x49, 0x44, 0x3E, 0x61,
- 0x64, 0x6F, 0x62, 0x65, 0x3A, 0x64, 0x6F, 0x63, 0x69, 0x64, 0x3A, 0x70,
- 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x3A, 0x39, 0x31, 0x65,
- 0x62, 0x39, 0x62, 0x37, 0x65, 0x2D, 0x30, 0x32, 0x34, 0x37, 0x2D, 0x31,
- 0x31, 0x65, 0x38, 0x2D, 0x61, 0x33, 0x38, 0x37, 0x2D, 0x38, 0x65, 0x34,
- 0x32, 0x36, 0x32, 0x63, 0x35, 0x34, 0x30, 0x63, 0x32, 0x3C, 0x2F, 0x78,
- 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E,
- 0x74, 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x4F, 0x72, 0x69,
- 0x67, 0x69, 0x6E, 0x61, 0x6C, 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E,
- 0x74, 0x49, 0x44, 0x3E, 0x78, 0x6D, 0x70, 0x2E, 0x64, 0x69, 0x64, 0x3A,
- 0x33, 0x62, 0x30, 0x66, 0x31, 0x39, 0x37, 0x63, 0x2D, 0x32, 0x35, 0x66,
- 0x66, 0x2D, 0x30, 0x66, 0x34, 0x63, 0x2D, 0x61, 0x62, 0x66, 0x36, 0x2D,
- 0x33, 0x66, 0x33, 0x30, 0x39, 0x30, 0x65, 0x33, 0x32, 0x31, 0x63, 0x62,
- 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x4F, 0x72, 0x69, 0x67,
- 0x69, 0x6E, 0x61, 0x6C, 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74,
- 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x48, 0x69, 0x73, 0x74,
- 0x6F, 0x72, 0x79, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x72, 0x64, 0x66, 0x3A, 0x53, 0x65,
- 0x71, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x72, 0x64, 0x66, 0x3A, 0x6C,
- 0x69, 0x20, 0x72, 0x64, 0x66, 0x3A, 0x70, 0x61, 0x72, 0x73, 0x65, 0x54,
- 0x79, 0x70, 0x65, 0x3D, 0x22, 0x52, 0x65, 0x73, 0x6F, 0x75, 0x72, 0x63,
- 0x65, 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73,
- 0x74, 0x45, 0x76, 0x74, 0x3A, 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x3E,
- 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x3C, 0x2F, 0x73, 0x74, 0x45,
- 0x76, 0x74, 0x3A, 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A,
- 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x78,
- 0x6D, 0x70, 0x2E, 0x69, 0x69, 0x64, 0x3A, 0x33, 0x62, 0x30, 0x66, 0x31,
- 0x39, 0x37, 0x63, 0x2D, 0x32, 0x35, 0x66, 0x66, 0x2D, 0x30, 0x66, 0x34,
- 0x63, 0x2D, 0x61, 0x62, 0x66, 0x36, 0x2D, 0x33, 0x66, 0x33, 0x30, 0x39,
- 0x30, 0x65, 0x33, 0x32, 0x31, 0x63, 0x62, 0x3C, 0x2F, 0x73, 0x74, 0x45,
- 0x76, 0x74, 0x3A, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x63, 0x65, 0x49,
- 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74,
- 0x45, 0x76, 0x74, 0x3A, 0x77, 0x68, 0x65, 0x6E, 0x3E, 0x32, 0x30, 0x31,
- 0x38, 0x2D, 0x30, 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31,
- 0x38, 0x3A, 0x32, 0x34, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F,
- 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x77, 0x68, 0x65, 0x6E, 0x3E, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74,
- 0x3A, 0x73, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x41, 0x67, 0x65,
- 0x6E, 0x74, 0x3E, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x20, 0x50, 0x68, 0x6F,
- 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x20, 0x43, 0x43, 0x20, 0x32, 0x30,
- 0x31, 0x37, 0x20, 0x28, 0x57, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x73, 0x29,
- 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x73, 0x6F, 0x66, 0x74,
- 0x77, 0x61, 0x72, 0x65, 0x41, 0x67, 0x65, 0x6E, 0x74, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x6C, 0x69, 0x3E, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x3C, 0x72, 0x64, 0x66, 0x3A, 0x6C, 0x69, 0x20, 0x72,
- 0x64, 0x66, 0x3A, 0x70, 0x61, 0x72, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65,
- 0x3D, 0x22, 0x52, 0x65, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x22, 0x3E,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76,
- 0x74, 0x3A, 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x73, 0x61, 0x76,
- 0x65, 0x64, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x61, 0x63,
- 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x69, 0x6E, 0x73, 0x74, 0x61,
- 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x78, 0x6D, 0x70, 0x2E, 0x69, 0x69,
- 0x64, 0x3A, 0x39, 0x61, 0x36, 0x38, 0x61, 0x33, 0x31, 0x37, 0x2D, 0x37,
- 0x65, 0x39, 0x34, 0x2D, 0x37, 0x30, 0x34, 0x31, 0x2D, 0x38, 0x63, 0x62,
- 0x30, 0x2D, 0x61, 0x39, 0x35, 0x63, 0x62, 0x61, 0x33, 0x33, 0x39, 0x66,
- 0x34, 0x65, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x69, 0x6E,
- 0x73, 0x74, 0x61, 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x77,
- 0x68, 0x65, 0x6E, 0x3E, 0x32, 0x30, 0x31, 0x38, 0x2D, 0x30, 0x31, 0x2D,
- 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31, 0x38, 0x3A, 0x32, 0x34, 0x2B,
- 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74,
- 0x3A, 0x77, 0x68, 0x65, 0x6E, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x73, 0x6F, 0x66, 0x74,
- 0x77, 0x61, 0x72, 0x65, 0x41, 0x67, 0x65, 0x6E, 0x74, 0x3E, 0x41, 0x64,
- 0x6F, 0x62, 0x65, 0x20, 0x50, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F,
- 0x70, 0x20, 0x43, 0x43, 0x20, 0x32, 0x30, 0x31, 0x37, 0x20, 0x28, 0x57,
- 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x73, 0x29, 0x3C, 0x2F, 0x73, 0x74, 0x45,
- 0x76, 0x74, 0x3A, 0x73, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x41,
- 0x67, 0x65, 0x6E, 0x74, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x63, 0x68, 0x61, 0x6E, 0x67,
- 0x65, 0x64, 0x3E, 0x2F, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A,
- 0x63, 0x68, 0x61, 0x6E, 0x67, 0x65, 0x64, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x6C, 0x69, 0x3E, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x2F,
- 0x72, 0x64, 0x66, 0x3A, 0x53, 0x65, 0x71, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x4D,
- 0x4D, 0x3A, 0x48, 0x69, 0x73, 0x74, 0x6F, 0x72, 0x79, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x64, 0x63, 0x3A,
- 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x3E, 0x69, 0x6D, 0x61, 0x67, 0x65,
- 0x2F, 0x70, 0x6E, 0x67, 0x3C, 0x2F, 0x64, 0x63, 0x3A, 0x66, 0x6F, 0x72,
- 0x6D, 0x61, 0x74, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70,
- 0x3A, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x4D, 0x6F, 0x64, 0x65, 0x3E, 0x33,
- 0x3C, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x3A,
- 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x4D, 0x6F, 0x64, 0x65, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66,
- 0x66, 0x3A, 0x4F, 0x72, 0x69, 0x65, 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F,
- 0x6E, 0x3E, 0x31, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x4F, 0x72,
- 0x69, 0x65, 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66,
- 0x66, 0x3A, 0x58, 0x52, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F,
- 0x6E, 0x3E, 0x37, 0x32, 0x30, 0x30, 0x30, 0x30, 0x2F, 0x31, 0x30, 0x30,
- 0x30, 0x30, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x58, 0x52, 0x65,
- 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66, 0x66,
- 0x3A, 0x59, 0x52, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E,
- 0x3E, 0x37, 0x32, 0x30, 0x30, 0x30, 0x30, 0x2F, 0x31, 0x30, 0x30, 0x30,
- 0x30, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x59, 0x52, 0x65, 0x73,
- 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66, 0x66, 0x3A,
- 0x52, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x55, 0x6E,
- 0x69, 0x74, 0x3E, 0x32, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x52,
- 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x55, 0x6E, 0x69,
- 0x74, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x53,
- 0x70, 0x61, 0x63, 0x65, 0x3E, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3C, 0x2F,
- 0x65, 0x78, 0x69, 0x66, 0x3A, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x53, 0x70,
- 0x61, 0x63, 0x65, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78, 0x65,
- 0x6C, 0x58, 0x44, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x3E,
- 0x36, 0x36, 0x3C, 0x2F, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78,
- 0x65, 0x6C, 0x58, 0x44, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E,
- 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C,
- 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x59, 0x44,
- 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x3E, 0x36, 0x36, 0x3C,
- 0x2F, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x59,
- 0x44, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x44,
- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A,
- 0x20, 0x20, 0x20, 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x52, 0x44, 0x46,
- 0x3E, 0x0A, 0x3C, 0x2F, 0x78, 0x3A, 0x78, 0x6D, 0x70, 0x6D, 0x65, 0x74,
- 0x61, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x3C, 0x3F, 0x78, 0x70, 0x61, 0x63, 0x6B, 0x65, 0x74,
- 0x20, 0x65, 0x6E, 0x64, 0x3D, 0x22, 0x77, 0x22, 0x3F, 0x3E, 0x2C, 0xB7,
- 0x84, 0x1B, 0x00, 0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00,
- 0x7A, 0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xF9, 0xFF, 0x00, 0x00,
- 0x80, 0xE9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xEA, 0x60, 0x00, 0x00,
- 0x3A, 0x98, 0x00, 0x00, 0x17, 0x6F, 0x92, 0x5F, 0xC5, 0x46, 0x00, 0x00,
- 0x01, 0xA0, 0x49, 0x44, 0x41, 0x54, 0x78, 0xDA, 0xEC, 0xDA, 0x3F, 0x4B,
- 0xC3, 0x40, 0x18, 0xC7, 0xF1, 0x6F, 0xFC, 0x8B, 0xA2, 0xB3, 0x48, 0x07,
- 0x37, 0x11, 0x1C, 0xEC, 0x24, 0x3A, 0x14, 0xC1, 0xC5, 0x97, 0xE0, 0x24,
- 0x4E, 0xBE, 0x0B, 0x57, 0x75, 0x76, 0x12, 0x9C, 0x1C, 0xC4, 0xD1, 0x17,
- 0xE0, 0x20, 0x4E, 0x8A, 0x20, 0xBA, 0x15, 0xD1, 0x41, 0x57, 0x9D, 0x05,
- 0x07, 0x5B, 0xCF, 0x21, 0x05, 0xCB, 0x79, 0x36, 0x09, 0xB4, 0x49, 0x9B,
- 0xE7, 0xF7, 0xC0, 0x0D, 0xF7, 0x5C, 0x2E, 0x21, 0x9F, 0x34, 0x77, 0xD7,
- 0x6B, 0x23, 0xE7, 0x1C, 0x0A, 0x18, 0x12, 0x81, 0x20, 0x04, 0x21, 0x08,
- 0x41, 0x08, 0x42, 0x10, 0x82, 0x10, 0x84, 0x20, 0x04, 0x21, 0x08, 0x41,
- 0x08, 0x42, 0x10, 0x82, 0x10, 0x84, 0x20, 0x04, 0x31, 0x28, 0x10, 0x93,
- 0x80, 0x6B, 0x2B, 0x7E, 0x34, 0xBC, 0xF6, 0xA2, 0xCA, 0x2B, 0x50, 0xED,
- 0x25, 0xC4, 0x47, 0x42, 0xFB, 0x70, 0x9F, 0x3C, 0xD4, 0x39, 0xE0, 0xA1,
- 0x85, 0xB2, 0x93, 0xB5, 0x73, 0x94, 0x62, 0x17, 0xDB, 0x3F, 0x20, 0x4A,
- 0x68, 0xEF, 0xA7, 0x88, 0x34, 0x46, 0xFC, 0x3E, 0xA4, 0x54, 0xF7, 0x38,
- 0xD2, 0x83, 0x8B, 0x9F, 0x01, 0x17, 0x5D, 0x3C, 0xDF, 0x89, 0x57, 0x7F,
- 0x02, 0xF6, 0xDB, 0xEA, 0x53, 0xC0, 0x26, 0x50, 0xFB, 0xA7, 0x7F, 0x33,
- 0xD5, 0x27, 0xC3, 0x39, 0x97, 0x54, 0xFC, 0x48, 0x6A, 0x9F, 0x4D, 0x71,
- 0xCE, 0x2C, 0xC5, 0x8F, 0xED, 0x0E, 0xC7, 0xAE, 0xBB, 0x70, 0x5C, 0x25,
- 0x5D, 0xA7, 0x6C, 0xAF, 0xC6, 0x25, 0x30, 0x16, 0xC8, 0xAF, 0x01, 0xA3,
- 0xD6, 0xC6, 0x88, 0x2F, 0x60, 0x26, 0x90, 0x7F, 0xB1, 0x38, 0x58, 0xBE,
- 0x03, 0x8F, 0x5E, 0xAE, 0x62, 0x75, 0xD6, 0x58, 0x0C, 0xE4, 0x16, 0x2C,
- 0x42, 0x7C, 0x07, 0x72, 0xC7, 0x56, 0xD7, 0x11, 0xF7, 0x5E, 0x7D, 0xD9,
- 0x2A, 0xC4, 0xB5, 0x57, 0x1F, 0xB7, 0x0A, 0xF1, 0xAC, 0x25, 0x76, 0x1C,
- 0x35, 0x41, 0xC4, 0xB1, 0xE1, 0xD5, 0xDF, 0xAC, 0x42, 0x4C, 0x7B, 0xF5,
- 0x23, 0x8B, 0x10, 0xA1, 0x19, 0x62, 0xCF, 0x22, 0xC4, 0x6D, 0x20, 0xD7,
- 0xB0, 0x06, 0x71, 0x13, 0xC8, 0x6D, 0x59, 0x1B, 0x2C, 0xCF, 0x81, 0x95,
- 0x40, 0xFE, 0x34, 0xEF, 0x8D, 0x99, 0xA2, 0xA2, 0x4A, 0xBC, 0x67, 0x19,
- 0x8A, 0x4A, 0x52, 0xE7, 0xB2, 0xEF, 0x59, 0x02, 0xEC, 0x76, 0x1A, 0x24,
- 0xAD, 0x4C, 0x9F, 0x07, 0x69, 0x10, 0xCA, 0xF6, 0x6A, 0x84, 0xBE, 0x86,
- 0xD7, 0xBB, 0xB9, 0xB2, 0x5C, 0x1A, 0x30, 0x80, 0xC3, 0xD6, 0xEB, 0x5B,
- 0xCF, 0xD2, 0x29, 0xEA, 0xC2, 0xBF, 0xF3, 0x57, 0x81, 0xF9, 0x9C, 0x6E,
- 0x72, 0x02, 0xF8, 0xF4, 0x72, 0x4D, 0xE0, 0x8E, 0xBF, 0x3B, 0x52, 0xE4,
- 0x0D, 0x51, 0x8A, 0xD0, 0x8F, 0xC0, 0x82, 0x10, 0x84, 0x20, 0x04, 0x21,
- 0x08, 0x41, 0x08, 0x42, 0x10, 0x82, 0x10, 0x84, 0x20, 0x04, 0x21, 0x08,
- 0x41, 0x08, 0x42, 0x10, 0x82, 0x28, 0x36, 0x7E, 0x06, 0x00, 0x5C, 0x33,
- 0x34, 0xCB, 0x4C, 0x00, 0x5F, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45,
- 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82
-};
-}
-static const unsigned char* rage_icon = raw::rage_raw;
-}
\ No newline at end of file diff --git a/tf2/icons/visuals.hpp b/tf2/icons/visuals.hpp deleted file mode 100644 index 4d50ae3..0000000 --- a/tf2/icons/visuals.hpp +++ /dev/null @@ -1,1318 +0,0 @@ -namespace icons {
-constexpr size_t visuals_size = 15715;
-namespace raw {
-constexpr unsigned char visuals_raw[15715] = {
- 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, 0x0D,
- 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x42,
- 0x08, 0x06, 0x00, 0x00, 0x00, 0xE3, 0x54, 0x00, 0xE8, 0x00, 0x00, 0x00,
- 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0B, 0x13, 0x00, 0x00, 0x0B,
- 0x13, 0x01, 0x00, 0x9A, 0x9C, 0x18, 0x00, 0x00, 0x39, 0xEC, 0x69, 0x54,
- 0x58, 0x74, 0x58, 0x4D, 0x4C, 0x3A, 0x63, 0x6F, 0x6D, 0x2E, 0x61, 0x64,
- 0x6F, 0x62, 0x65, 0x2E, 0x78, 0x6D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3C, 0x3F, 0x78, 0x70, 0x61, 0x63, 0x6B, 0x65, 0x74, 0x20, 0x62, 0x65,
- 0x67, 0x69, 0x6E, 0x3D, 0x22, 0xEF, 0xBB, 0xBF, 0x22, 0x20, 0x69, 0x64,
- 0x3D, 0x22, 0x57, 0x35, 0x4D, 0x30, 0x4D, 0x70, 0x43, 0x65, 0x68, 0x69,
- 0x48, 0x7A, 0x72, 0x65, 0x53, 0x7A, 0x4E, 0x54, 0x63, 0x7A, 0x6B, 0x63,
- 0x39, 0x64, 0x22, 0x3F, 0x3E, 0x0A, 0x3C, 0x78, 0x3A, 0x78, 0x6D, 0x70,
- 0x6D, 0x65, 0x74, 0x61, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x78,
- 0x3D, 0x22, 0x61, 0x64, 0x6F, 0x62, 0x65, 0x3A, 0x6E, 0x73, 0x3A, 0x6D,
- 0x65, 0x74, 0x61, 0x2F, 0x22, 0x20, 0x78, 0x3A, 0x78, 0x6D, 0x70, 0x74,
- 0x6B, 0x3D, 0x22, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x20, 0x58, 0x4D, 0x50,
- 0x20, 0x43, 0x6F, 0x72, 0x65, 0x20, 0x35, 0x2E, 0x36, 0x2D, 0x63, 0x31,
- 0x33, 0x38, 0x20, 0x37, 0x39, 0x2E, 0x31, 0x35, 0x39, 0x38, 0x32, 0x34,
- 0x2C, 0x20, 0x32, 0x30, 0x31, 0x36, 0x2F, 0x30, 0x39, 0x2F, 0x31, 0x34,
- 0x2D, 0x30, 0x31, 0x3A, 0x30, 0x39, 0x3A, 0x30, 0x31, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x3C,
- 0x72, 0x64, 0x66, 0x3A, 0x52, 0x44, 0x46, 0x20, 0x78, 0x6D, 0x6C, 0x6E,
- 0x73, 0x3A, 0x72, 0x64, 0x66, 0x3D, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A,
- 0x2F, 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x77, 0x33, 0x2E, 0x6F, 0x72, 0x67,
- 0x2F, 0x31, 0x39, 0x39, 0x39, 0x2F, 0x30, 0x32, 0x2F, 0x32, 0x32, 0x2D,
- 0x72, 0x64, 0x66, 0x2D, 0x73, 0x79, 0x6E, 0x74, 0x61, 0x78, 0x2D, 0x6E,
- 0x73, 0x23, 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C,
- 0x72, 0x64, 0x66, 0x3A, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
- 0x69, 0x6F, 0x6E, 0x20, 0x72, 0x64, 0x66, 0x3A, 0x61, 0x62, 0x6F, 0x75,
- 0x74, 0x3D, 0x22, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x78,
- 0x6D, 0x70, 0x3D, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E,
- 0x73, 0x2E, 0x61, 0x64, 0x6F, 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F,
- 0x78, 0x61, 0x70, 0x2F, 0x31, 0x2E, 0x30, 0x2F, 0x22, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D,
- 0x6C, 0x6E, 0x73, 0x3A, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3D, 0x22, 0x68,
- 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64, 0x6F,
- 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x78, 0x61, 0x70, 0x2F, 0x31,
- 0x2E, 0x30, 0x2F, 0x6D, 0x6D, 0x2F, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E,
- 0x73, 0x3A, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3D, 0x22, 0x68, 0x74, 0x74,
- 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64, 0x6F, 0x62, 0x65,
- 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x78, 0x61, 0x70, 0x2F, 0x31, 0x2E, 0x30,
- 0x2F, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2F, 0x52, 0x65, 0x73, 0x6F, 0x75,
- 0x72, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6E, 0x74, 0x23, 0x22, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78,
- 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x64, 0x63, 0x3D, 0x22, 0x68, 0x74, 0x74,
- 0x70, 0x3A, 0x2F, 0x2F, 0x70, 0x75, 0x72, 0x6C, 0x2E, 0x6F, 0x72, 0x67,
- 0x2F, 0x64, 0x63, 0x2F, 0x65, 0x6C, 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x73,
- 0x2F, 0x31, 0x2E, 0x31, 0x2F, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73,
- 0x3A, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x3D, 0x22,
- 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64,
- 0x6F, 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x70, 0x68, 0x6F, 0x74,
- 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x2F, 0x31, 0x2E, 0x30, 0x2F, 0x22, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x78, 0x6D, 0x6C, 0x6E, 0x73, 0x3A, 0x74, 0x69, 0x66, 0x66, 0x3D, 0x22,
- 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64,
- 0x6F, 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x74, 0x69, 0x66, 0x66,
- 0x2F, 0x31, 0x2E, 0x30, 0x2F, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6D, 0x6C, 0x6E, 0x73,
- 0x3A, 0x65, 0x78, 0x69, 0x66, 0x3D, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A,
- 0x2F, 0x2F, 0x6E, 0x73, 0x2E, 0x61, 0x64, 0x6F, 0x62, 0x65, 0x2E, 0x63,
- 0x6F, 0x6D, 0x2F, 0x65, 0x78, 0x69, 0x66, 0x2F, 0x31, 0x2E, 0x30, 0x2F,
- 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6F, 0x72,
- 0x54, 0x6F, 0x6F, 0x6C, 0x3E, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x20, 0x50,
- 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x20, 0x43, 0x43, 0x20,
- 0x32, 0x30, 0x31, 0x37, 0x20, 0x28, 0x57, 0x69, 0x6E, 0x64, 0x6F, 0x77,
- 0x73, 0x29, 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x3A, 0x43, 0x72, 0x65, 0x61,
- 0x74, 0x6F, 0x72, 0x54, 0x6F, 0x6F, 0x6C, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x43,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x3E, 0x32, 0x30,
- 0x31, 0x38, 0x2D, 0x30, 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A,
- 0x31, 0x38, 0x3A, 0x33, 0x37, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C,
- 0x2F, 0x78, 0x6D, 0x70, 0x3A, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44,
- 0x61, 0x74, 0x65, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x4D, 0x65, 0x74, 0x61, 0x64,
- 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x65, 0x3E, 0x32, 0x30, 0x31, 0x38,
- 0x2D, 0x30, 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31, 0x38,
- 0x3A, 0x33, 0x37, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F, 0x78,
- 0x6D, 0x70, 0x3A, 0x4D, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44,
- 0x61, 0x74, 0x65, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x3A, 0x4D, 0x6F, 0x64, 0x69, 0x66,
- 0x79, 0x44, 0x61, 0x74, 0x65, 0x3E, 0x32, 0x30, 0x31, 0x38, 0x2D, 0x30,
- 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31, 0x38, 0x3A, 0x33,
- 0x37, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F, 0x78, 0x6D, 0x70,
- 0x3A, 0x4D, 0x6F, 0x64, 0x69, 0x66, 0x79, 0x44, 0x61, 0x74, 0x65, 0x3E,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x78,
- 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x49, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x63,
- 0x65, 0x49, 0x44, 0x3E, 0x78, 0x6D, 0x70, 0x2E, 0x69, 0x69, 0x64, 0x3A,
- 0x32, 0x39, 0x31, 0x35, 0x36, 0x62, 0x33, 0x33, 0x2D, 0x65, 0x62, 0x62,
- 0x31, 0x2D, 0x63, 0x39, 0x34, 0x36, 0x2D, 0x38, 0x62, 0x33, 0x34, 0x2D,
- 0x30, 0x39, 0x32, 0x39, 0x31, 0x63, 0x62, 0x31, 0x34, 0x65, 0x36, 0x35,
- 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x49, 0x6E, 0x73, 0x74,
- 0x61, 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A,
- 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x49, 0x44, 0x3E, 0x61,
- 0x64, 0x6F, 0x62, 0x65, 0x3A, 0x64, 0x6F, 0x63, 0x69, 0x64, 0x3A, 0x70,
- 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x3A, 0x39, 0x33, 0x30,
- 0x65, 0x35, 0x38, 0x62, 0x39, 0x2D, 0x30, 0x32, 0x34, 0x37, 0x2D, 0x31,
- 0x31, 0x65, 0x38, 0x2D, 0x61, 0x33, 0x38, 0x37, 0x2D, 0x38, 0x65, 0x34,
- 0x32, 0x36, 0x32, 0x63, 0x35, 0x34, 0x30, 0x63, 0x32, 0x3C, 0x2F, 0x78,
- 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E,
- 0x74, 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x4F, 0x72, 0x69,
- 0x67, 0x69, 0x6E, 0x61, 0x6C, 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E,
- 0x74, 0x49, 0x44, 0x3E, 0x78, 0x6D, 0x70, 0x2E, 0x64, 0x69, 0x64, 0x3A,
- 0x62, 0x64, 0x62, 0x35, 0x39, 0x65, 0x61, 0x36, 0x2D, 0x37, 0x63, 0x63,
- 0x30, 0x2D, 0x65, 0x65, 0x34, 0x34, 0x2D, 0x39, 0x33, 0x61, 0x66, 0x2D,
- 0x32, 0x64, 0x33, 0x62, 0x38, 0x30, 0x39, 0x32, 0x31, 0x35, 0x33, 0x39,
- 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x4F, 0x72, 0x69, 0x67,
- 0x69, 0x6E, 0x61, 0x6C, 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74,
- 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x3C, 0x78, 0x6D, 0x70, 0x4D, 0x4D, 0x3A, 0x48, 0x69, 0x73, 0x74,
- 0x6F, 0x72, 0x79, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x72, 0x64, 0x66, 0x3A, 0x53, 0x65,
- 0x71, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x72, 0x64, 0x66, 0x3A, 0x6C,
- 0x69, 0x20, 0x72, 0x64, 0x66, 0x3A, 0x70, 0x61, 0x72, 0x73, 0x65, 0x54,
- 0x79, 0x70, 0x65, 0x3D, 0x22, 0x52, 0x65, 0x73, 0x6F, 0x75, 0x72, 0x63,
- 0x65, 0x22, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73,
- 0x74, 0x45, 0x76, 0x74, 0x3A, 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x3E,
- 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x3C, 0x2F, 0x73, 0x74, 0x45,
- 0x76, 0x74, 0x3A, 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A,
- 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x78,
- 0x6D, 0x70, 0x2E, 0x69, 0x69, 0x64, 0x3A, 0x62, 0x64, 0x62, 0x35, 0x39,
- 0x65, 0x61, 0x36, 0x2D, 0x37, 0x63, 0x63, 0x30, 0x2D, 0x65, 0x65, 0x34,
- 0x34, 0x2D, 0x39, 0x33, 0x61, 0x66, 0x2D, 0x32, 0x64, 0x33, 0x62, 0x38,
- 0x30, 0x39, 0x32, 0x31, 0x35, 0x33, 0x39, 0x3C, 0x2F, 0x73, 0x74, 0x45,
- 0x76, 0x74, 0x3A, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x63, 0x65, 0x49,
- 0x44, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74,
- 0x45, 0x76, 0x74, 0x3A, 0x77, 0x68, 0x65, 0x6E, 0x3E, 0x32, 0x30, 0x31,
- 0x38, 0x2D, 0x30, 0x31, 0x2D, 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31,
- 0x38, 0x3A, 0x33, 0x37, 0x2B, 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F,
- 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x77, 0x68, 0x65, 0x6E, 0x3E, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74,
- 0x3A, 0x73, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x41, 0x67, 0x65,
- 0x6E, 0x74, 0x3E, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x20, 0x50, 0x68, 0x6F,
- 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x20, 0x43, 0x43, 0x20, 0x32, 0x30,
- 0x31, 0x37, 0x20, 0x28, 0x57, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x73, 0x29,
- 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x73, 0x6F, 0x66, 0x74,
- 0x77, 0x61, 0x72, 0x65, 0x41, 0x67, 0x65, 0x6E, 0x74, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x6C, 0x69, 0x3E, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x3C, 0x72, 0x64, 0x66, 0x3A, 0x6C, 0x69, 0x20, 0x72,
- 0x64, 0x66, 0x3A, 0x70, 0x61, 0x72, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65,
- 0x3D, 0x22, 0x52, 0x65, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x22, 0x3E,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76,
- 0x74, 0x3A, 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x73, 0x61, 0x76,
- 0x65, 0x64, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x61, 0x63,
- 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x69, 0x6E, 0x73, 0x74, 0x61,
- 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x78, 0x6D, 0x70, 0x2E, 0x69, 0x69,
- 0x64, 0x3A, 0x32, 0x39, 0x31, 0x35, 0x36, 0x62, 0x33, 0x33, 0x2D, 0x65,
- 0x62, 0x62, 0x31, 0x2D, 0x63, 0x39, 0x34, 0x36, 0x2D, 0x38, 0x62, 0x33,
- 0x34, 0x2D, 0x30, 0x39, 0x32, 0x39, 0x31, 0x63, 0x62, 0x31, 0x34, 0x65,
- 0x36, 0x35, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x69, 0x6E,
- 0x73, 0x74, 0x61, 0x6E, 0x63, 0x65, 0x49, 0x44, 0x3E, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x77,
- 0x68, 0x65, 0x6E, 0x3E, 0x32, 0x30, 0x31, 0x38, 0x2D, 0x30, 0x31, 0x2D,
- 0x32, 0x36, 0x54, 0x31, 0x31, 0x3A, 0x31, 0x38, 0x3A, 0x33, 0x37, 0x2B,
- 0x30, 0x38, 0x3A, 0x30, 0x30, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74,
- 0x3A, 0x77, 0x68, 0x65, 0x6E, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x73, 0x6F, 0x66, 0x74,
- 0x77, 0x61, 0x72, 0x65, 0x41, 0x67, 0x65, 0x6E, 0x74, 0x3E, 0x41, 0x64,
- 0x6F, 0x62, 0x65, 0x20, 0x50, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F,
- 0x70, 0x20, 0x43, 0x43, 0x20, 0x32, 0x30, 0x31, 0x37, 0x20, 0x28, 0x57,
- 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x73, 0x29, 0x3C, 0x2F, 0x73, 0x74, 0x45,
- 0x76, 0x74, 0x3A, 0x73, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x41,
- 0x67, 0x65, 0x6E, 0x74, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A, 0x63, 0x68, 0x61, 0x6E, 0x67,
- 0x65, 0x64, 0x3E, 0x2F, 0x3C, 0x2F, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3A,
- 0x63, 0x68, 0x61, 0x6E, 0x67, 0x65, 0x64, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x6C, 0x69, 0x3E, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x2F,
- 0x72, 0x64, 0x66, 0x3A, 0x53, 0x65, 0x71, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x2F, 0x78, 0x6D, 0x70, 0x4D,
- 0x4D, 0x3A, 0x48, 0x69, 0x73, 0x74, 0x6F, 0x72, 0x79, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x64, 0x63, 0x3A,
- 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x3E, 0x69, 0x6D, 0x61, 0x67, 0x65,
- 0x2F, 0x70, 0x6E, 0x67, 0x3C, 0x2F, 0x64, 0x63, 0x3A, 0x66, 0x6F, 0x72,
- 0x6D, 0x61, 0x74, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70,
- 0x3A, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x4D, 0x6F, 0x64, 0x65, 0x3E, 0x33,
- 0x3C, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, 0x70, 0x3A,
- 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x4D, 0x6F, 0x64, 0x65, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66,
- 0x66, 0x3A, 0x4F, 0x72, 0x69, 0x65, 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F,
- 0x6E, 0x3E, 0x31, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x4F, 0x72,
- 0x69, 0x65, 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66,
- 0x66, 0x3A, 0x58, 0x52, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F,
- 0x6E, 0x3E, 0x37, 0x32, 0x30, 0x30, 0x30, 0x30, 0x2F, 0x31, 0x30, 0x30,
- 0x30, 0x30, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x58, 0x52, 0x65,
- 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66, 0x66,
- 0x3A, 0x59, 0x52, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E,
- 0x3E, 0x37, 0x32, 0x30, 0x30, 0x30, 0x30, 0x2F, 0x31, 0x30, 0x30, 0x30,
- 0x30, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x59, 0x52, 0x65, 0x73,
- 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x74, 0x69, 0x66, 0x66, 0x3A,
- 0x52, 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x55, 0x6E,
- 0x69, 0x74, 0x3E, 0x32, 0x3C, 0x2F, 0x74, 0x69, 0x66, 0x66, 0x3A, 0x52,
- 0x65, 0x73, 0x6F, 0x6C, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x55, 0x6E, 0x69,
- 0x74, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3C, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x53,
- 0x70, 0x61, 0x63, 0x65, 0x3E, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3C, 0x2F,
- 0x65, 0x78, 0x69, 0x66, 0x3A, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x53, 0x70,
- 0x61, 0x63, 0x65, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x3C, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78, 0x65,
- 0x6C, 0x58, 0x44, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x3E,
- 0x36, 0x36, 0x3C, 0x2F, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78,
- 0x65, 0x6C, 0x58, 0x44, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E,
- 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C,
- 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x59, 0x44,
- 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x3E, 0x36, 0x36, 0x3C,
- 0x2F, 0x65, 0x78, 0x69, 0x66, 0x3A, 0x50, 0x69, 0x78, 0x65, 0x6C, 0x59,
- 0x44, 0x69, 0x6D, 0x65, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x3E, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x44,
- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x3E, 0x0A,
- 0x20, 0x20, 0x20, 0x3C, 0x2F, 0x72, 0x64, 0x66, 0x3A, 0x52, 0x44, 0x46,
- 0x3E, 0x0A, 0x3C, 0x2F, 0x78, 0x3A, 0x78, 0x6D, 0x70, 0x6D, 0x65, 0x74,
- 0x61, 0x3E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0A, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x0A, 0x3C, 0x3F, 0x78, 0x70, 0x61, 0x63, 0x6B, 0x65, 0x74,
- 0x20, 0x65, 0x6E, 0x64, 0x3D, 0x22, 0x77, 0x22, 0x3F, 0x3E, 0x20, 0x2B,
- 0x35, 0xED, 0x00, 0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00,
- 0x7A, 0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xF9, 0xFF, 0x00, 0x00,
- 0x80, 0xE9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xEA, 0x60, 0x00, 0x00,
- 0x3A, 0x98, 0x00, 0x00, 0x17, 0x6F, 0x92, 0x5F, 0xC5, 0x46, 0x00, 0x00,
- 0x02, 0xF1, 0x49, 0x44, 0x41, 0x54, 0x78, 0xDA, 0xEC, 0x9B, 0xBD, 0x6B,
- 0x14, 0x41, 0x18, 0x87, 0x9F, 0xBD, 0xDC, 0x25, 0x31, 0x41, 0x31, 0x11,
- 0x4E, 0x05, 0x25, 0x48, 0x48, 0x2C, 0x04, 0x2B, 0x15, 0x14, 0x84, 0x60,
- 0x6C, 0xAC, 0xFC, 0x28, 0x44, 0xD2, 0x89, 0xA8, 0x85, 0x85, 0x58, 0xD9,
- 0x08, 0xFE, 0x01, 0x82, 0xFD, 0x89, 0x85, 0x8D, 0x60, 0x17, 0x45, 0x10,
- 0x8D, 0x85, 0x96, 0x36, 0x62, 0x65, 0x21, 0x58, 0x84, 0x53, 0x50, 0xB9,
- 0x22, 0x28, 0x1A, 0xF5, 0x72, 0xB9, 0xD7, 0xC2, 0x0D, 0x1C, 0xCB, 0x7C,
- 0xEC, 0xEC, 0xEE, 0x7D, 0x04, 0xDE, 0x1F, 0x6C, 0xB1, 0x33, 0xF3, 0x9B,
- 0xF7, 0xE6, 0xB9, 0x77, 0x67, 0x67, 0xE6, 0xB8, 0x48, 0x44, 0x50, 0x41,
- 0x49, 0x11, 0x28, 0x08, 0x05, 0xA1, 0x20, 0x14, 0x84, 0x82, 0x50, 0x10,
- 0x0A, 0x42, 0x41, 0x28, 0x08, 0x05, 0xA1, 0x20, 0x14, 0x84, 0x82, 0x50,
- 0x10, 0x0A, 0x42, 0x41, 0x28, 0x88, 0xBE, 0xAA, 0x5C, 0x70, 0x7F, 0x3B,
- 0x81, 0x79, 0x60, 0x06, 0x98, 0x08, 0xF4, 0x0E, 0x03, 0xCD, 0x80, 0xF6,
- 0x4D, 0xE0, 0x3D, 0xF0, 0x0A, 0xA8, 0x0F, 0x02, 0x88, 0x1B, 0xC0, 0xDD,
- 0x01, 0xF9, 0x62, 0x1F, 0x00, 0x17, 0xB3, 0x18, 0xA3, 0x1C, 0x87, 0xB7,
- 0x0B, 0xC0, 0xC3, 0x01, 0xCD, 0xF4, 0x60, 0x20, 0x59, 0x41, 0xFC, 0x8D,
- 0x53, 0x79, 0xD0, 0x55, 0x01, 0x5A, 0xDD, 0x9A, 0x2C, 0x65, 0x93, 0x40,
- 0x00, 0x58, 0x03, 0x46, 0xBB, 0x01, 0xC2, 0x95, 0x3E, 0xF3, 0x40, 0x94,
- 0xB8, 0x86, 0x3C, 0xFD, 0xDD, 0x01, 0xB6, 0x74, 0xB4, 0xAF, 0x00, 0x97,
- 0x3C, 0x9E, 0x49, 0x43, 0x9C, 0x99, 0x38, 0x4B, 0x4D, 0xFA, 0x1D, 0xB7,
- 0xF1, 0x8C, 0x4C, 0x24, 0xED, 0xF5, 0x56, 0xCC, 0x3A, 0xEE, 0xF0, 0xD8,
- 0x74, 0x28, 0x45, 0xBC, 0xAA, 0xC3, 0x6F, 0xF3, 0xEC, 0xB1, 0xB4, 0x6F,
- 0xF9, 0xE2, 0xA5, 0x85, 0xB0, 0xDD, 0x12, 0x60, 0xDC, 0xE1, 0xB9, 0x66,
- 0xF1, 0x44, 0x01, 0xF0, 0x89, 0x07, 0x91, 0xD4, 0x3B, 0x47, 0xFB, 0xC8,
- 0x12, 0xF7, 0x84, 0x2B, 0x4E, 0xDA, 0xC9, 0xB2, 0x65, 0x48, 0xF3, 0x49,
- 0x60, 0x25, 0xF0, 0x31, 0x2A, 0x79, 0x1E, 0xAF, 0x90, 0xBE, 0x86, 0x80,
- 0xB6, 0xE3, 0x91, 0x5F, 0x37, 0xBD, 0x1C, 0xF2, 0xCC, 0x11, 0x25, 0x03,
- 0x84, 0x27, 0x1E, 0x08, 0xA7, 0x0D, 0x65, 0xFB, 0x33, 0x42, 0x00, 0x18,
- 0x31, 0x94, 0xBD, 0x70, 0xB4, 0x6F, 0xC7, 0x73, 0x56, 0x52, 0xD3, 0x79,
- 0x5E, 0x9F, 0x35, 0xE0, 0x4A, 0x5A, 0xB2, 0x1D, 0xB3, 0x75, 0x39, 0xD0,
- 0xE3, 0x53, 0x1D, 0xD8, 0x1B, 0xD8, 0x67, 0x72, 0x70, 0x5F, 0x81, 0xDD,
- 0x59, 0x33, 0x22, 0x39, 0x8B, 0x7F, 0xCB, 0xB0, 0x62, 0xBD, 0x50, 0xC0,
- 0xAB, 0xF0, 0x40, 0x06, 0xCF, 0xBD, 0xC4, 0xFD, 0xAE, 0x3C, 0x19, 0x91,
- 0x6C, 0x70, 0x0E, 0x58, 0x0C, 0xF4, 0x44, 0x14, 0xA3, 0x64, 0xBF, 0x53,
- 0x9E, 0x7D, 0xC6, 0x18, 0xF0, 0x2B, 0xCD, 0x67, 0xC9, 0xB2, 0xA0, 0x5A,
- 0xF2, 0xD4, 0x8F, 0xD2, 0x3B, 0x1D, 0xF1, 0xD4, 0xAF, 0x76, 0x73, 0x1B,
- 0xBE, 0xE6, 0xA9, 0x1F, 0xEF, 0x21, 0x88, 0xC2, 0x62, 0x65, 0x01, 0xB1,
- 0xC3, 0x53, 0xFF, 0xBD, 0x87, 0x20, 0x3E, 0xF5, 0x13, 0xC4, 0xCD, 0x14,
- 0x6B, 0x8E, 0x5E, 0x3D, 0x2E, 0x6F, 0x3C, 0xF5, 0xB3, 0x45, 0x82, 0x68,
- 0x24, 0xEE, 0xAF, 0x67, 0xF8, 0xC0, 0x8F, 0x0A, 0x18, 0xF4, 0xC9, 0x0C,
- 0x73, 0xC0, 0x52, 0x91, 0x20, 0xCE, 0x5B, 0x66, 0x63, 0x97, 0x3E, 0xA6,
- 0x58, 0x60, 0x85, 0xEA, 0x65, 0x06, 0xCF, 0x54, 0xE2, 0x7E, 0x31, 0x0F,
- 0x88, 0xD7, 0x86, 0xB2, 0x9F, 0x1E, 0xCF, 0x61, 0x43, 0xD9, 0xD3, 0x1C,
- 0x10, 0xCE, 0x1A, 0xCA, 0xCE, 0x78, 0x3C, 0x1F, 0x52, 0x7E, 0xA9, 0x41,
- 0xBB, 0xCF, 0xE7, 0x86, 0x4D, 0x4C, 0xCD, 0xE3, 0x31, 0xE9, 0x68, 0xE0,
- 0x86, 0x0B, 0x11, 0x99, 0x08, 0xDC, 0x81, 0x22, 0x22, 0x73, 0x86, 0xF6,
- 0xAB, 0x45, 0xEC, 0x3E, 0x6D, 0x03, 0x73, 0xC1, 0xD8, 0x6A, 0xF1, 0x2C,
- 0x04, 0xC4, 0x9C, 0xB6, 0xF4, 0x31, 0xE7, 0xF0, 0x9C, 0xB2, 0x78, 0x2A,
- 0x45, 0x81, 0x38, 0x68, 0x09, 0xB0, 0x2E, 0x22, 0xC3, 0x16, 0xCF, 0x7D,
- 0x8B, 0xA7, 0x29, 0x22, 0x63, 0x8E, 0x58, 0x65, 0x11, 0x59, 0xB6, 0x78,
- 0x1B, 0x16, 0x4F, 0x49, 0x44, 0xBE, 0x58, 0x3C, 0xB7, 0x8B, 0x3A, 0x8F,
- 0xD8, 0xB8, 0x6A, 0x8E, 0xC3, 0x92, 0x76, 0x1C, 0xB0, 0x1A, 0x83, 0xD9,
- 0xB8, 0x7E, 0x88, 0x5B, 0x0D, 0x11, 0x79, 0x26, 0x22, 0x8F, 0x45, 0xE4,
- 0xB3, 0xF8, 0x35, 0xD2, 0xD1, 0xF7, 0x36, 0x11, 0xB9, 0x1C, 0xA7, 0xBD,
- 0x4D, 0xF5, 0x34, 0x63, 0xCB, 0x72, 0x78, 0x6B, 0xDA, 0x8D, 0x0E, 0xAA,
- 0x96, 0x81, 0x7D, 0xDD, 0x5A, 0x50, 0x5D, 0x05, 0x8E, 0x6D, 0x02, 0x08,
- 0xB7, 0xD2, 0x42, 0xC8, 0x73, 0x9C, 0xDF, 0xF9, 0x8A, 0x9A, 0x1D, 0x30,
- 0x00, 0x2B, 0x40, 0x35, 0xED, 0x31, 0x7E, 0x9E, 0x8C, 0x48, 0x9E, 0x3A,
- 0x45, 0xF1, 0xA3, 0xF2, 0xA7, 0x8F, 0x83, 0x6F, 0xF3, 0xFF, 0xD7, 0xB6,
- 0x52, 0x7C, 0x84, 0xD8, 0x0A, 0xED, 0x20, 0xD2, 0xBF, 0x29, 0x14, 0x93,
- 0x11, 0x0A, 0x42, 0x41, 0x28, 0x08, 0x05, 0xA1, 0x20, 0x14, 0x84, 0x82,
- 0x50, 0x10, 0x0A, 0x42, 0x11, 0x28, 0x08, 0x05, 0xA1, 0x20, 0x14, 0x84,
- 0x82, 0x50, 0x10, 0x0A, 0x42, 0x41, 0xE4, 0xD3, 0xBF, 0x01, 0x00, 0x36,
- 0xC5, 0x99, 0x33, 0xE0, 0x8B, 0x14, 0x09, 0x00, 0x00, 0x00, 0x00, 0x49,
- 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82
-};
-}
-static const unsigned char* visuals_icon = raw::visuals_raw;
-}
diff --git a/tf2/identity.h b/tf2/identity.h deleted file mode 100644 index 0b3906a..0000000 --- a/tf2/identity.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once
-#include "sdk.h"
-//kept incase i wanna do shit here fuck you
-namespace features
-{
- class c_identity {
- private:
- public:
- void operator()( ) {
- }
- };
-}
\ No newline at end of file diff --git a/tf2/input_system.cpp b/tf2/input_system.cpp deleted file mode 100644 index 881fa02..0000000 --- a/tf2/input_system.cpp +++ /dev/null @@ -1,527 +0,0 @@ -#include <Windows.h>
-
-#include "input_system.hpp"
-#include "util.hpp"
-
-util::c_input_manager g_input;
-
-NAMESPACE_REGION( util )
-
-const char* const key_names_short[] = {
- "unk",
- "m1",
- "m2",
- "can",
- "m3",
- "m4",
- "m5",
- "unk",
- "back",
- "tab",
- "unk",
- "unk",
- "clr",
- "ret",
- "unk",
- "unk",
- "shift",
- "ctrl",
- "alt",
- "pause",
- "caps",
- "kana",
- "unk",
- "junja",
- "final",
- "kanji",
- "unk",
- "esc",
- "convert",
- "nonconvert",
- "accept",
- "modechange",
- " ",
- "prior",
- "next",
- "end",
- "home",
- "left",
- "up",
- "right",
- "down",
- "slct",
- "prnt",
- "execute",
- "snapshot",
- "ins",
- "del",
- "help",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "unk",
- "unk",
- "unk",
- "unk",
- "unk",
- "unk",
- "unk",
- "a",
- "b",
- "c",
- "d",
- "e",
- "f",
- "g",
- "h",
- "i",
- "j",
- "k",
- "l",
- "m",
- "n",
- "o",
- "p",
- "q",
- "r",
- "s",
- "t",
- "u",
- "v",
- "w",
- "x",
- "y",
- "z",
- "lwin",
- "rwin",
- "apps",
- "unk",
- "unk",
- "num0",
- "num1",
- "num2",
- "num3",
- "num4",
- "num5",
- "num6",
- "num7",
- "num8",
- "num9",
- "*",
- "+",
- "sep",
- "-",
- ",",
- "/",
- "f1",
- "f2",
- "f3",
- "f4",
- "f5",
- "f6",
- "f7",
- "f8",
- "f9",
- "f10",
- "f11",
- "f12",
- "f13",
- "f14",
- "f15",
- "f16",
- "f17",
- "f18",
- "f19",
- "f20",
- "f21",
- "f22",
- "f23",
- "f24",
- "unk",
- "unk",
- "unk",
- "unk",
- "unk",
- "unk",
- "unk",
- "unk",
- "numlock",
- "scroll",
- "oem_nec_equal",
- "oem_fj_masshou",
- "oem_fj_touroku",
- "oem_fj_loya",
- "oem_fj_roya",
- "unk",
- "unk",
- "unk",
- "unk",
- "unk",
- "unk",
- "unk",
- "unk",
- "unk",
- "lshift",
- "rshift",
- "lctrl",
- "rctrl",
- "lalt",
- "ralt",
-};
-
-const char* const key_names[] = {
- "unknown",
- "mouse_1",
- "mouse_2",
- "cancel",
- "mouse_3",
- "mouse_4",
- "mouse_5",
- "unknown",
- "back",
- "tab",
- "unknown",
- "unknown",
- "clear",
- "return",
- "unknown",
- "unknown",
- "shift",
- "control",
- "alt",
- "pause",
- "capital",
- "kana",
- "unknown",
- "junja",
- "final",
- "kanji",
- "unknown",
- "escape",
- "convert",
- "nonconvert",
- "accept",
- "modechange",
- "space",
- "prior",
- "next",
- "end",
- "home",
- "left",
- "up",
- "right",
- "down",
- "select",
- "print",
- "execute",
- "snapshot",
- "insert",
- "delete",
- "help",
- "0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "unknown",
- "unknown",
- "unknown",
- "unknown",
- "unknown",
- "unknown",
- "unknown",
- "a",
- "b",
- "c",
- "d",
- "e",
- "f",
- "g",
- "h",
- "i",
- "j",
- "k",
- "l",
- "m",
- "n",
- "o",
- "p",
- "q",
- "r",
- "s",
- "t",
- "u",
- "v",
- "w",
- "x",
- "y",
- "z",
- "lwin",
- "rwin",
- "apps",
- "unknown",
- "unknown",
- "numpad0",
- "numpad1",
- "numpad2",
- "numpad3",
- "numpad4",
- "numpad5",
- "numpad6",
- "numpad7",
- "numpad8",
- "numpad9",
- "multiply",
- "add",
- "separator",
- "subtract",
- "decimal",
- "divide",
- "f1",
- "f2",
- "f3",
- "f4",
- "f5",
- "f6",
- "f7",
- "f8",
- "f9",
- "f10",
- "f11",
- "f12",
- "f13",
- "f14",
- "f15",
- "f16",
- "f17",
- "f18",
- "f19",
- "f20",
- "f21",
- "f22",
- "f23",
- "f24",
- "unknown",
- "unknown",
- "unknown",
- "unknown",
- "unknown",
- "unknown",
- "unknown",
- "unknown",
- "numlock",
- "scroll",
- "oem_nec_equal",
- "oem_fj_masshou",
- "oem_fj_touroku",
- "oem_fj_loya",
- "oem_fj_roya",
- "unknown",
- "unknown",
- "unknown",
- "unknown",
- "unknown",
- "unknown",
- "unknown",
- "unknown",
- "unknown",
- "lshift",
- "rshift",
- "lcontrol",
- "rcontrol",
- "lmenu",
- "rmenu",
-};
-
-void c_input_manager::capture_mouse_move( ulong_t lparam ) {
- m_mouse_pos[ 0 ] = LOWORD( lparam );
- m_mouse_pos[ 1 ] = HIWORD( lparam );
-}
-
-void c_input_manager::clear_keys( ) {
- memset( m_pressed_keys, 0, sizeof( m_pressed_keys ) );
-}
-
-bool c_input_manager::register_key_press( int key_event, int key )
-{
- switch ( key_event ) {
- case KEYDOWN: {
- if ( is_valid_key( key ) )
- m_pressed_keys[ key ] = true;
- return true;
- }
- case KEYUP: {
- if ( is_valid_key( key ) )
- m_pressed_keys[ key ] = false;
- return true;
- }
- case SYSKEYDOWN: { //WTF IS THIS STUPID SHIT, WHY IS ALT LITERALLY THE ONLY FUCKING KEY UNDER SYSKEYDOWN OUT OF ALL THE MODIFIER KEYS?
- if ( key == KEYS_ALT )
- m_pressed_keys[ key ] = true;
- break;
- }
- case SYSKEYUP: {
- if ( key == KEYS_ALT )
- m_pressed_keys[ key ] = false;
- break;
- }
- case LBUTTONDOWN:
- m_pressed_keys[ KEYS_MOUSE1 ] = true;
- return true;
- case LBUTTONUP:
- m_pressed_keys[ KEYS_MOUSE1 ] = false;
- return true;
- case RBUTTONDOWN:
- m_pressed_keys[ KEYS_MOUSE2 ] = true;
- return true;
- case RBUTTONUP:
- m_pressed_keys[ KEYS_MOUSE2 ] = false;
- return true;
- case MBUTTONDOWN:
- m_pressed_keys[ KEYS_MOUSE3 ] = true;
- return true;
- case MBUTTONUP:
- m_pressed_keys[ KEYS_MOUSE3 ] = false;
- return true;
- case XBUTTONDOWN: {
- bool pressed_xbutton = static_cast<bool>( HIWORD( key ) - 1 ); //should result in mouse4 as false, and mouse5 as true
- m_pressed_keys[ pressed_xbutton ? KEYS_MOUSE5 : KEYS_MOUSE4 ] = true;
- return true;
- }
- case XBUTTONUP: {
- bool pressed_xbutton = static_cast<bool>( HIWORD( key ) - 1 ); //should result in mouse4 as false, and mouse5 as true
- m_pressed_keys[ pressed_xbutton ? KEYS_MOUSE5 : KEYS_MOUSE4 ] = false;
- return true;
- }
- case MOUSEWHEEL: {
- short scroll_input = ( short )HIWORD( key );
- m_scroll_wheel_state = scroll_input > 0 ? 1 : -1;
- return true;
- }
- }
-
- return key_event == 0x200 || key_event == 0x203 || key_event == 0x206 || key_event == 0x209; //gotta block WM_MOUSEFIST | WM_LBUTTONDBLCLK | WM_RBUTTONDBLCLK | WM_MBUTTONDBLCLK
-}
-
-bool c_input_manager::is_key_pressed( int key ) {
- auto k = key;
- return is_valid_key( k ) && m_pressed_keys[ k ];
-}
-
-const char* c_input_manager::get_key_name( int key ) {
- if ( !is_valid_key( key ) || key > KEYS_MAX )
- return key_names[ KEYS_NONE ];
-
- return key_names[ key ];
-}
-
-const char* c_input_manager::get_short_name( int key ) {
- return key_names_short[ is_valid_key( key ) ? key : KEYS_NONE ];
-}
-
-VirtualKeys_t c_input_manager::is_any_key_pressed( ) {
- for ( size_t i{ }; i < KEYS_MAX; ++i ) {
- if ( m_pressed_keys[ i ] ) {
- return VirtualKeys_t( i );
- }
- }
-
- return KEYS_NONE;
-}
-
-int c_input_manager::get_scroll_state( ) {
- int current_state = m_scroll_wheel_state;
- m_scroll_wheel_state = 0;
- return current_state;
-}
-
-char c_input_manager::get_pressed_char( int* out ) {
- size_t pressed_character{ };
- for ( size_t i{ }; i < KEYS_MAX; ++i ) {
- if ( is_key_pressed( VirtualKeys_t( i ) ) ) {
- if ( ( i >= KEYS_A && i <= KEYS_Z )
- || ( i >= KEYS_N0 && i <= KEYS_N9 ) ) {
- pressed_character = i;
- }
- }
- }
-
- if ( pressed_character ) {
- if ( out ) {
- *out = int( pressed_character );
- }
-
- if ( is_key_pressed( KEYS_SHIFT ) ) {
- if ( pressed_character >= KEYS_A
- && pressed_character <= KEYS_Z )
- return char( pressed_character );
-
- //gay way to shift it to symbols
- if ( pressed_character >= KEYS_N0
- && pressed_character <= KEYS_N9 ) {
- switch ( pressed_character ) {
- case KEYS_N0:
- return ')';
- case KEYS_N1:
- return '!';
- case KEYS_N2:
- return '@';
- case KEYS_N3:
- return '#';
- case KEYS_N4:
- return '$';
- case KEYS_N5:
- return '%';
- case KEYS_N6:
- return '^';
- case KEYS_N7:
- return '&';
- case KEYS_N8:
- return '*';
- case KEYS_N9:
- return '(';
- }
- }
- }
- else {
- if ( pressed_character >= KEYS_A
- && pressed_character <= KEYS_Z )
- return char( ::tolower( pressed_character ) );
-
- if ( pressed_character >= KEYS_N0
- && pressed_character <= KEYS_N9 )
- return char( pressed_character );
- }
- }
- else if ( is_key_pressed( KEYS_SPACE ) ) {
- if ( out )
- *out = KEYS_SPACE;
-
- return ' ';
- }
- else if ( is_key_pressed( KEYS_BACK ) ) {
- if ( out )
- *out = KEYS_BACK;
-
- return 0;
- }
-
- if ( out )
- *out = KEYS_NONE;
-
- return 0;
-}
-
-END_REGION
\ No newline at end of file diff --git a/tf2/input_system.hpp b/tf2/input_system.hpp deleted file mode 100644 index 6631a09..0000000 --- a/tf2/input_system.hpp +++ /dev/null @@ -1,185 +0,0 @@ -#pragma once
-#include "util.hpp"
-
-enum VirtualKeyEvents_t {
- KEYDOWN = 0x0100,
- KEYUP = 0x0101,
- SYSKEYDOWN = 0x104,
- SYSKEYUP = 0x105,
- LBUTTONDOWN = 0x0201,
- LBUTTONUP = 0x0202,
- RBUTTONDOWN = 0x0204,
- RBUTTONUP = 0x0205,
- MBUTTONDOWN = 0x0207,
- MBUTTONUP = 0x0208,
- MOUSEWHEEL = 0x020A,
- XBUTTONDOWN = 0x020B,
- XBUTTONUP = 0x020C,
-};
-
-enum VirtualKeys_t {
- KEYS_NONE = 0,
- KEYS_MOUSE1 = 0X01,
- KEYS_MOUSE2 = 0X02,
- KEYS_CANCEL = 0X03,
- KEYS_MOUSE3 = 0X04,
- KEYS_MOUSE4 = 0X05,
- KEYS_MOUSE5 = 0X06,
- KEYS_BACK = 0X08,
- KEYS_TAB = 0X09,
- KEYS_CLEAR = 0X0C,
- KEYS_RETURN = 0X0D,
- KEYS_SHIFT = 0X10,
- KEYS_CONTROL = 0X11,
- KEYS_ALT = 0X12,
- KEYS_PAUSE = 0X13,
- KEYS_CAPSLOCK = 0X14,
- KEYS_ESCAPE = 0X1B,
- KEYS_CONVERT = 0X1C,
- KEYS_NONCONVERT = 0X1D,
- KEYS_ACCEPT = 0X1E,
- KEYS_MODECHANGE = 0X1F,
- KEYS_SPACE = 0X20,
- KEYS_PRIOR = 0X21,
- KEYS_NEXT = 0X22,
- KEYS_END = 0X23,
- KEYS_HOME = 0X24,
- KEYS_LEFT = 0X25,
- KEYS_UP = 0X26,
- KEYS_RIGHT = 0X27,
- KEYS_DOWN = 0X28,
- KEYS_SELECT = 0X29,
- KEYS_PRINT = 0X2A,
- KEYS_EXECUTE = 0X2B,
- KEYS_SNAPSHOT = 0X2C,
- KEYS_INSERT = 0X2D,
- KEYS_DELETE = 0X2E,
- KEYS_HELP = 0X2F,
- KEYS_N0 = 0X30,
- KEYS_N1 = 0X31,
- KEYS_N2 = 0X32,
- KEYS_N3 = 0X33,
- KEYS_N4 = 0X34,
- KEYS_N5 = 0X35,
- KEYS_N6 = 0X36,
- KEYS_N7 = 0X37,
- KEYS_N8 = 0X38,
- KEYS_N9 = 0X39,
- KEYS_A = 0X41,
- KEYS_B = 0X42,
- KEYS_C = 0X43,
- KEYS_D = 0X44,
- KEYS_E = 0X45,
- KEYS_F = 0X46,
- KEYS_G = 0X47,
- KEYS_H = 0X48,
- KEYS_I = 0X49,
- KEYS_J = 0X4A,
- KEYS_K = 0X4B,
- KEYS_L = 0X4C,
- KEYS_M = 0X4D,
- KEYS_N = 0X4E,
- KEYS_O = 0X4F,
- KEYS_P = 0X50,
- KEYS_Q = 0X51,
- KEYS_R = 0X52,
- KEYS_S = 0X53,
- KEYS_T = 0X54,
- KEYS_U = 0X55,
- KEYS_V = 0X56,
- KEYS_W = 0X57,
- KEYS_X = 0X58,
- KEYS_Y = 0X59,
- KEYS_Z = 0X5A,
- KEYS_LEFTWINDOWS = 0X5B,
- KEYS_RIGHTWINDOWS = 0X5C,
- KEYS_APPLICATION = 0X5D,
- KEYS_NUMPAD0 = 0X60,
- KEYS_NUMPAD1 = 0X61,
- KEYS_NUMPAD2 = 0X62,
- KEYS_NUMPAD3 = 0X63,
- KEYS_NUMPAD4 = 0X64,
- KEYS_NUMPAD5 = 0X65,
- KEYS_NUMPAD6 = 0X66,
- KEYS_NUMPAD7 = 0X67,
- KEYS_NUMPAD8 = 0X68,
- KEYS_NUMPAD9 = 0X69,
- KEYS_MULTIPLY = 0X6A,
- KEYS_ADD = 0X6B,
- KEYS_SEPARATOR = 0X6C,
- KEYS_SUBTRACT = 0X6D,
- KEYS_DECIMAL = 0X6E,
- KEYS_DIVIDE = 0X6F,
- KEYS_F1 = 0X70,
- KEYS_F2 = 0X71,
- KEYS_F3 = 0X72,
- KEYS_F4 = 0X73,
- KEYS_F5 = 0X74,
- KEYS_F6 = 0X75,
- KEYS_F7 = 0X76,
- KEYS_F8 = 0X77,
- KEYS_F9 = 0X78,
- KEYS_F10 = 0X79,
- KEYS_F11 = 0X7A,
- KEYS_F12 = 0X7B,
- KEYS_NUMLOCK = 0X90,
- KEYS_SCROLLLOCK = 0X91,
- KEYS_LEFTSHIFT = 0XA0,
- KEYS_RIGHTSHIFT = 0XA1,
- KEYS_LEFTCONTROL = 0XA2,
- KEYS_RIGHTCONTROL = 0XA3,
- KEYS_LEFTMENU = 0XA4,
- KEYS_RIGHTMENU = 0XA5,
- KEYS_PERIOD = 0xBE,
- KEYS_MAX = 0XA6,
- KEYS_LAST = 0xfe
-};
-
-namespace util
-{
- class c_input_manager {
- public:
- bool m_pressed_keys[ KEYS_LAST ]{ };
- int m_mouse_pos[ 2 ]{ };
- int m_scroll_wheel_state{ };
-
-
- c_input_manager( ) {
- memset( m_pressed_keys, 0, KEYS_LAST );
- }
-
- void capture_mouse_move( ulong_t lparam );
-
- void clear_keys( );
-
- //registers a key press from wndproc
- bool register_key_press( int key_event, int key );
-
- //checks if the key is pressed
- bool is_key_pressed( int key );
-
- //returns the first found key pressed, or KEY_NONE if none are
- VirtualKeys_t is_any_key_pressed( );
-
- //returns the last scroll state and resets it to 0
- int get_scroll_state( );
-
- //returns the key's name
- const char* get_key_name( int key );
- const char* get_short_name( int key );
-
- //returns the first found currently pressed key
- char get_pressed_char( int* pressed_key = nullptr );
-
- //check if a key is valid
- inline bool is_valid_key( int key ) { return key > KEYS_NONE && key < KEYS_LAST; }
-
- //get cursor pos
- inline void get_cursor_pos( int& x, int& y ) {
- x = m_mouse_pos[ 0 ];
- y = m_mouse_pos[ 1 ];
- }
- };
-}
-
-extern util::c_input_manager g_input;
\ No newline at end of file diff --git a/tf2/interfaces.cpp b/tf2/interfaces.cpp deleted file mode 100644 index 8ca7ff3..0000000 --- a/tf2/interfaces.cpp +++ /dev/null @@ -1,241 +0,0 @@ -#include "interfaces.h"
-#include "console.hpp"
-#include "hooks.h"
-#include "renderer.hpp"
-#include "pattern.hpp"
-#include "base_cheat.h"
-#include "settings.h"
-#include "ctx.hpp"
-#include "netvars.h"
-#include <thread>
-
-tf2::client cl;
-tf2::interfaces::c_interface_manager g_factory;
-
-bool tf2::create_interfaces( client *instance )
-{
- if ( !instance ) {
- return false;
- }
-
-
-
- auto d3d_device = pattern::first_code_match( GetModuleHandleA( xors( "shaderapidx9.dll" ) ),
- xors( "A1 ?? ?? ?? ?? 50 8B 08 FF 51 0C" ) ) + 0x1;
-
- auto move_helper = pattern::first_code_match( GetModuleHandleA( xors( "client.dll" ) ),
- xors( "8B 0D ?? ?? ?? ?? 8B 46 08 68" ) ) + 0x2;
-
- //sig to containing function: (+0x69) E9 ? ? ? ? CC 55 8B EC 5D
- //auto beam_ptr = pattern::first_code_match( GetModuleHandleA( xors( "client.dll" ) ), xors( "" ) );
-
- //g_con->print( "beam_found: 0x%08x\n", beam_ptr );
-
- instance->create( &instance->m_d3d, **reinterpret_cast< uintptr_t** >( d3d_device ) );
- instance->create( &instance->m_movehelper, **reinterpret_cast< uintptr_t** >( move_helper ) );
- //instance->create( &instance->m_beams, *reinterpret_cast< uintptr_t* >( beam_ptr ) );
-
-
- /*
-
-
- important
-
- issues:
-
- the background is white but so am i so really this isnt an issue
-
- THIS ENTIRE THING IS MESSY AND RIDDLED WITH SHIT COMMENTS AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-
- chams
-
- fucking keyvalues
-
- glow count aint happy cbf looking into it
-
- menu goes invis because ????? gj menu
-
- too lazy to fix d3d
-
- emitsound hook is different
-
- aimbot is meh meh rn
-
-
- lots of stuff not done that i want to get done, just wanna get it out there so i can keep working on it and not get harrased for the push
-
-
-
-
-
- */
-
- //tf2::interfaces::interface_manager factory;
- instance->create( &instance->m_chl, xors( "VClient" ) );
- instance->create( &instance->m_vgui, xors( "VEngineVGui" ) );
- instance->create( &instance->m_surface, xors( "VGUI_Surface" ) );
- instance->create( &instance->m_input, xors( "InputSystemVersion" ) );
- instance->create( &instance->m_panel, xors( "VGUI_Panel" ) );
- instance->create( &instance->m_engine, xors( "VEngineClient" ) );
- instance->create( &instance->m_entlist, xors( "VClientEntityList" ) );
- instance->create( &instance->m_prediction, xors( "VClientPrediction" ) );
- instance->create( &instance->m_cvar, xors( "VEngineCvar" ) );
- instance->create( &instance->m_movement, xors( "GameMovement" ) );
- instance->create( &instance->m_modelinfo, xors( "VModelInfoClient" ) );
- instance->create( &instance->m_overlay, "VDebugOverlay" );
- instance->create( &instance->m_trace, xors( "EngineTraceClient" ) );
- instance->create( &instance->m_model_render, xors( "VEngineModel" ) );
- instance->create( &instance->m_mat_system, xors( "VMaterialSystem" ) );
- instance->create( &instance->m_render_view, xors( "VEngineRenderView" ) );
- instance->create( &instance->m_engine_sound, xors( "IEngineSoundClient" ) );
- instance->create( &instance->m_event_mgr, xors( "GAMEEVENTSMANAGER002" ) );
- instance->create( &instance->m_string_table, xors( "VEngineClientStringTable" ) );
- instance->create( &instance->m_clientmode, **reinterpret_cast< uintptr_t** >( instance->m_chl->get_function( 10 ) + 5 ) );
-
- instance->m_globals = *reinterpret_cast< CGlobalVarsBase** >( pattern::first_code_match( instance->m_engine.dll( ), "A1 ? ? ? ? 8B 11 68", 0x8 ) );
-
- uintptr_t* input = *reinterpret_cast< uintptr_t** >(
- instance->m_chl->get_old_function( 1 ) + 0x1 );
- instance->m_hl_input = reinterpret_cast< CInput* >( input );
-
- auto kv_fn = ( void*( __cdecl* )( ) )( GetProcAddress(
- GetModuleHandleA( xors( "vstdlib.dll" ) ),
- xors( "KeyValuesSystem" ) ) );
-
- instance->m_keyvalues = ( IKeyValuesSystem* )kv_fn( );
- instance->listeners.player_hurt.init( );
-
- return true;
-}
-
-con_fn clear_fn{ fnv( "clear" ), [ ]( const char*, const char* ) { g_con->m_logs.clear( ); }, "" };
-con_fn enable_logs_fn{ fnv( "log_enable" ),
-[ ]( const char* a, const char* ) {
- g_settings.menu.logs_enable ^= 1;
- g_con->log( g_settings.menu.logs_enable ? xors( "logs enabled" ) : xors( "logs disabled" ) );
-},
-""
-};
-
-con_fn fnv_fn{ fnv( "fnv" ),
-[ ]( const char* a, const char* ) {
- auto print = hash::fnv1a( a );
- g_con->log( "%08x", print );
-},
-"%S"
-};
-
-con_fn sum_fn{ fnv( "sum" ),
-[ ]( const char* a, const char* syntax ) {
- auto arg_1 = con_fn::get_arg< int >( a, 0, syntax );
- auto arg_2 = con_fn::get_arg< int >( a, 1, syntax );
- g_con->log( "%d + %d = %d", arg_1, arg_2, arg_1 + arg_2 );
-},
-"%D %D"
-};
-
-con_fn dump_cfg{ fnv( "dump_cfg" ),
-[ ]( const char* , const char* ) {
- for( auto& it : data::holder_.get_nodes( ) ) {
- auto setting = static_cast< ISetting* >( it );
- g_con->log( "%08x: %s", setting->get_hash( ), setting->get_string( ).c_str( ) );
- }
-},
-""
-};
-
-con_fn retard_fn{ fnv( "retard" ),
-[ ]( const char*, const char* ) {
- g_con->log( "snuze" );
-},
-""
-};
-
-con_fn unload_fn{ fnv( "unload" ),
-[ ]( const char*, const char* ) {
- cl.m_panic = true;
- ExitProcess( 0 );
-},
-""
-};
-
-
-/*con_fn alias_fn{ fnv( "alias" ),
-[ ]( const char* a, const char* b ) {
-auto var_type = std::string( b );
-if( var_type.length( ) > 1 ) {
-g_con->log( xors( "unknown var type: %s" ), var_type.c_str( ) );
-return;
-}
-
-switch( b[ 0 ] ) {
-case TYPE_STRING: {
-std::shared_ptr< con_alias< const char* > >( fnv( ) )
-}
-}
-},
-"%S %S"
-};*/
-
-void tf2::client::initialize( ) {
- //m_panic = true;
- g_con->create( );
- auto now = std::chrono::high_resolution_clock::now( );
- g_con->print( xors( "hello\n" ) );
- //hi
- //bye
-
- tf2::create_interfaces( &cl );
- g_fonts.initialize( );
-
- g_netvars.init( );
- g_settings.load( );
- g_con->register_fn( &clear_fn );
- g_con->register_fn( &enable_logs_fn );
- g_con->register_fn( &fnv_fn );
- g_con->register_fn( &sum_fn );
- g_con->register_fn( &dump_cfg );
- g_con->register_fn( &retard_fn );
- g_con->register_fn( &unload_fn );
-
- hooks::commit( &cl );
-
- //g_cheat.chams.m_materials.initialize_materials( );
-
-
- auto offset = g_netvars.get_netvar( fnv( "DT_WeaponTFBaseGun" ), fnv( "m_fLastShotTime" ) );
- g_con->log( "lastshottime: %08x", offset );
- g_con->log( "prop: %08x", g_netvars.get_prop( fnv( "DT_WeaponTFBaseGun" ), fnv( "m_fLastShotTime" ) ) );
-
- auto after = std::chrono::high_resolution_clock::now( );
- std::this_thread::sleep_for( std::chrono::milliseconds( 100 ) );
-
- std::chrono::duration< float > delta = after - now;
- g_con->log( xors( "cheat initialized\n" ) );
- g_con->log( xors( "time taken: %f\n" ), delta.count( ) );
-
-
-
- m_panic = false;
-}
-
-void tf2::client::uninitialize( ) {
- m_panic = true;
- g_con->destroy( );
-
- //restore wndproc
- if( hooks::window_procedure_o ) {
- SetWindowLongA( m_hwnd, GWLP_WNDPROC, ( long )hooks::window_procedure_o );
- }
-
- //unreference materials
- //g_cheat.chams.m_materials.destroy_materials( );
-
- //restore all interfaces
- restore( );
-
- Sleep( 100 );
-
- //free the library
- FreeLibraryAndExitThread( g_dll, 0 );
-}
\ No newline at end of file diff --git a/tf2/interfaces.h b/tf2/interfaces.h deleted file mode 100644 index 96e3be1..0000000 --- a/tf2/interfaces.h +++ /dev/null @@ -1,160 +0,0 @@ -#pragma once
-
-#include <memory>
-#include "sdk.h"
-#include "vmt.h"
-#include "ctx.hpp"
-#include "listener.hpp"
-#include "factory.h"
-struct IDirect3DDevice9;
-namespace tf2
-{
-template < typename t >
-class interface_base {
- friend class client;
-public:
- t* operator( )( ) {
- return m_interface;
- }
-
- //calls a virtual
- template< size_t index, typename ret = void,
- class... Args >
- ret call( Args... args ) {
- return util::get_vfunc< ret( __thiscall* )( void*, Args... ) >
- ( m_interface, index )( m_interface, args... );
- }
-
- //also calls a virtual but you supply the typedef instead of return type
- template< typename def, size_t index, class... Args >
- auto call( Args... args ) {
- return util::get_vfunc< def >
- ( m_interface, index )( m_interface, args... );
- }
-
- //allows you to cast the interface
- template< typename t0 = t* >
- t0 get( ) {
- return ( t0 )m_interface;
- }
-
- void operator( )( t* ptr ) {
- m_interface = ptr;
- m_hook.reset( );
- m_hook = std::make_shared< hooks::c_vmt >( static_cast< void* >( ptr ) );
-
- /*find the module the interface is located in
- i know i could just pass the pointer but traps are gay*/
- MEMORY_BASIC_INFORMATION info;
- VirtualQuery( ptr, &info, sizeof( MEMORY_BASIC_INFORMATION ) );
-
- m_dll = static_cast< HMODULE >( info.AllocationBase );
- }
-
- void operator( )( void* ptr ) {
- operator( )( static_cast< t* >( ptr ) );
- }
-
- decltype( auto ) operator->( ) {
- return m_hook;
- }
-
- template< typename t2 = decltype( m_dll ) >
- t2 dll( ) {
- return ( t2 )m_dll;
- }
-
-protected:
- t* m_interface;
- HMODULE m_dll;
- std::shared_ptr< hooks::c_vmt > m_hook;
-};
-
-
- class client {
- public:
- interface_base< IEngineVGui > m_vgui;
- interface_base< IClientMode > m_clientmode;
- interface_base< IEngineTrace > m_trace;
- interface_base< IVEngineClient > m_engine;
- interface_base< IInputSystem > m_input;
- interface_base< chl_client > m_chl;
- interface_base< IVDebugOverlay > m_overlay;
- interface_base< client_ent_list > m_entlist;
- interface_base< IPlayerInfoManager > m_playerinfo;
- interface_base< ISurface > m_surface;
- interface_base< IPanel > m_panel;
- interface_base< ICVar > m_cvar;
- interface_base< IVRenderView > m_renderview;
- interface_base< IPrediction > m_prediction;
- interface_base< IGameMovement > m_movement;
- interface_base< IVModelInfo > m_modelinfo;
- interface_base< uintptr_t > m_d3d;
- interface_base< IVModelRender > m_model_render;
- interface_base< IVRenderView > m_render_view;
- interface_base< uintptr_t > m_engine_sound;
- interface_base< IGameEventManager2 > m_event_mgr;
- interface_base< IMaterialSystem > m_mat_system;
- interface_base< CStringTable > m_string_table;
- interface_base< IViewRenderBeams > m_beams;
- IKeyValuesSystem* m_keyvalues;
- CGlobalVarsBase* m_globals;
- IMoveHelper* m_movehelper;
- CInput* m_hl_input;
- bool m_panic;
- HWND m_hwnd{ };
- float m_frametime;
-
- struct {
- generic_listener_t player_hurt{ xors( "player_hurt" ), &listeners::player_hurt };
- } listeners;
-
- public:
- //find the interface inside of the module
- void create( void* iface, const std::string& name, const std::string& mod ) {
- auto* interface_ = static_cast< interface_base< uintptr_t >* >( iface );
- auto ptr = g_factory.find_interface( mod, name );
- if( !ptr )
- return;
-
- ( *interface_ )( ptr );
- m_container.push_back( interface_ );
- }
-
- void create( void* iface, uintptr_t pointer ) {
- auto interface_ = static_cast< interface_base< uintptr_t >* >( iface );
-
- //msvc is retarded
- ( *interface_ )( ( void* )pointer );
- m_container.push_back( interface_ );
- }
-
- void create( void* iface, const std::string& name ) {
- auto* interface_ = static_cast< interface_base< uintptr_t >* >( iface );
- auto ptr = g_factory.find_interface( name );
- if( !ptr )
- return;
-
- ( *interface_ )( ptr );
- m_container.push_back( interface_ );
- }
-
- void __cdecl initialize( );
- void __cdecl uninitialize( );
-
- private:
- //restore the vmts to their original
- void restore( ) {
- for( const auto& it : m_container ) {
- it->m_hook->restore( );
- }
- }
-
- private:
- std::vector< interface_base< uintptr_t >* > m_container;
- };
-
- bool create_interfaces( client * );
-}
-
-extern tf2::client cl;
diff --git a/tf2/listener.cpp b/tf2/listener.cpp deleted file mode 100644 index c48b900..0000000 --- a/tf2/listener.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include "listener.hpp"
-#include "interfaces.h"
-#include "base_cheat.h"
-#include "ctx.hpp"
-#include "settings.h"
-#undef PlaySound
-
-//how can you listen if youre deaf
-
-generic_listener_t::generic_listener_t( const char* name, void( *function )( IGameEvent* ) ) :
- m_function( function ), m_name( name ) { }
-
-generic_listener_t::~generic_listener_t( ) {
- if( m_registered )
- cl.m_event_mgr( )->RemoveListener( this );
-
-}
-
-void generic_listener_t::init( ) {
- cl.m_event_mgr( )->AddListener( this, m_name, false );
- m_registered = true;
-}
-
-namespace listeners
-{
-
- void player_hurt( IGameEvent* e ) {
- if( !cl.m_panic && e ) {
- int user_id = e->GetInt( xors( "userid" ) );
- int attacker = e->GetInt( xors( "attacker" ) );
- int attacker_id = cl.m_engine( )->GetPlayerForUserID( attacker );
- int player_id = cl.m_engine( )->GetPlayerForUserID( user_id );
-
-
- //if( attacker_id == cl.m_engine( )->GetLocalPlayer( ) && user_id != attacker_id ) {
- g_cheat.visuals.store_hit( );
-
- //}
- }
- }
-
-}
\ No newline at end of file diff --git a/tf2/listener.hpp b/tf2/listener.hpp deleted file mode 100644 index 1ee442f..0000000 --- a/tf2/listener.hpp +++ /dev/null @@ -1,24 +0,0 @@ -#pragma once
-#include "sdk.h"
-
-struct generic_listener_t : public IGameEventListener2 {
- generic_listener_t( const char* event_name,
- void( *function )( IGameEvent* ) );
-
- generic_listener_t( ) = default;
-
- ~generic_listener_t( );
-
- void init( );
-
- void FireGameEvent( IGameEvent* event ) override { m_function( event ); }
- int GetEventDebugID( ) override { return 0x2a; }
-private:
- void( *m_function )( IGameEvent* );
- const char* m_name{ };
- bool m_registered{ };
-};
-
-namespace listeners {
- extern void player_hurt( IGameEvent* e );
-}
\ No newline at end of file diff --git a/tf2/math.cpp b/tf2/math.cpp deleted file mode 100644 index e3e7436..0000000 --- a/tf2/math.cpp +++ /dev/null @@ -1,267 +0,0 @@ -#include <xmmintrin.h>
-#include "math.h"
-#include "interfaces.h"
-
-using _m128 = __m128;
-
-namespace math
-{
- uint32_t md5_pseudorandom( uint32_t seed ) {
- using fn = uint32_t( __thiscall * )( uint32_t seed );
-
- static auto func = pattern::first_code_match< fn >( cl.m_chl.dll( ), xors( "55 8B EC 83 E4 F8 83 EC 70 6A 58" ) );
- if( !func ) {
- return 0;
- }
-
- return func( seed );
- }
-
- static const __declspec( align( 16 ) ) uint32_t g_simd_component_mask[ 4 ][ 4 ] = {
- { 0xFFFFFFFF, 0, 0, 0 },
- { 0, 0xFFFFFFFF, 0, 0 },
- { 0, 0, 0xFFFFFFFF, 0 },
- { 0, 0, 0, 0xFFFFFFFF }
- };
-
- void concat_transforms( const matrix3x4& in, const matrix3x4& in2, matrix3x4& out ) {
- //SSE concat transforms - turbo mode engaged
-
- _m128 last_mask = *( _m128* )( &g_simd_component_mask[ 3 ] );
- _m128 row_a0 = _mm_loadu_ps( in[ 0 ] );
- _m128 row_a1 = _mm_loadu_ps( in[ 1 ] );
- _m128 row_a2 = _mm_loadu_ps( in[ 2 ] );
-
- _m128 row_b0 = _mm_loadu_ps( in2[ 0 ] );
- _m128 row_b1 = _mm_loadu_ps( in2[ 1 ] );
- _m128 row_b2 = _mm_loadu_ps( in2[ 2 ] );
-
- _m128 a0 = _mm_shuffle_ps( row_a0, row_a0, _MM_SHUFFLE( 0, 0, 0, 0 ) );
- _m128 a1 = _mm_shuffle_ps( row_a0, row_a0, _MM_SHUFFLE( 1, 1, 1, 1 ) );
- _m128 a2 = _mm_shuffle_ps( row_a0, row_a0, _MM_SHUFFLE( 2, 2, 2, 2 ) );
-
- _m128 mul00 = _mm_mul_ps( a0, row_b0 );
- _m128 mul01 = _mm_mul_ps( a1, row_b1 );
- _m128 mul02 = _mm_mul_ps( a2, row_b2 );
- _m128 out0 = _mm_add_ps( mul00, _mm_add_ps( mul01, mul02 ) );
-
- a0 = _mm_shuffle_ps( row_a2, row_a2, _MM_SHUFFLE( 0, 0, 0, 0 ) );
- a1 = _mm_shuffle_ps( row_a2, row_a2, _MM_SHUFFLE( 1, 1, 1, 1 ) );
- a2 = _mm_shuffle_ps( row_a2, row_a2, _MM_SHUFFLE( 2, 2, 2, 2 ) );
-
- _m128 mul10 = _mm_mul_ps( a0, row_b0 );
- _m128 mul11 = _mm_mul_ps( a1, row_b1 );
- _m128 mul12 = _mm_mul_ps( a2, row_b2 );
- _m128 out1 = _mm_add_ps( mul10, _mm_add_ps( mul11, mul12 ) );
-
- a0 = _mm_shuffle_ps( row_a2, row_a2, _MM_SHUFFLE( 0, 0, 0, 0 ) );
- a1 = _mm_shuffle_ps( row_a2, row_a2, _MM_SHUFFLE( 1, 1, 1, 1 ) );
- a2 = _mm_shuffle_ps( row_a2, row_a2, _MM_SHUFFLE( 2, 2, 2, 2 ) );
-
- _m128 mul20 = _mm_mul_ps( a0, row_b0 );
- _m128 mul21 = _mm_mul_ps( a0, row_b1 );
- _m128 mul22 = _mm_mul_ps( a0, row_b2 );
- _m128 out2 = _mm_add_ps( mul20, _mm_add_ps( mul21, mul22 ) );
-
- a0 = _mm_and_ps( row_a0, last_mask );
- a1 = _mm_and_ps( row_a1, last_mask );
- a2 = _mm_and_ps( row_a2, last_mask );
-
- out0 = _mm_add_ps( out0, a0 );
- out1 = _mm_add_ps( out1, a1 );
- out2 = _mm_add_ps( out2, a2 );
-
- *( _m128* )( out[ 0 ] ) = out0;
- *( _m128* )( out[ 1 ] ) = out1;
- *( _m128* )( out[ 2 ] ) = out2;
- }
-
- void math::set_matrix_position( vec3_t pos, matrix3x4& matrix ) {
- for( size_t i{ }; i < 3; ++i ) {
- matrix[ i ][ 3 ] = pos[ i ];
- }
- }
-
- vec3_t math::get_matrix_position( const matrix3x4& src ) {
- return vec3_t( src[ 0 ][ 3 ], src[ 1 ][ 3 ], src[ 2 ][ 3 ] );
- }
-
- void angle_matrix( vec3_t angles, matrix3x4& matrix ) {
- float sr, sp, sy, cr, cp, cy;
-
- sp = sinf( angles.x * M_PIRAD );
- cp = cosf( angles.x * M_PIRAD );
- sy = sinf( angles.y * M_PIRAD );
- cy = cosf( angles.y * M_PIRAD );
- sr = sinf( angles.z * M_PIRAD );
- cr = cosf( angles.z * M_PIRAD );
-
- matrix[ 0 ][ 0 ] = cp * cy;
- matrix[ 1 ][ 0 ] = cp * sy;
- matrix[ 2 ][ 0 ] = -sp;
-
- float crcy = cr * cy;
- float crsy = cr * sy;
- float srcy = sr * cy;
- float srsy = sr * sy;
- matrix[ 0 ][ 1 ] = sp * srcy - crsy;
- matrix[ 1 ][ 1 ] = sp * srsy + crcy;
- matrix[ 2 ][ 1 ] = sr * cp;
-
- matrix[ 0 ][ 2 ] = ( sp*crcy + srsy );
- matrix[ 1 ][ 2 ] = ( sp*crsy - srcy );
- matrix[ 2 ][ 2 ] = cr * cp;
-
- matrix[ 0 ][ 3 ] = 0.f;
- matrix[ 1 ][ 3 ] = 0.f;
- matrix[ 2 ][ 3 ] = 0.f;
- }
-
- void angle_imatrix( vec3_t angles, matrix3x4& matrix ) {
- float sr, sp, sy, cr, cp, cy;
-
- sp = sinf( angles.x * M_PIRAD );
- cp = cosf( angles.x * M_PIRAD );
- sy = sinf( angles.y * M_PIRAD );
- cy = cosf( angles.y * M_PIRAD );
- sr = sinf( angles.z * M_PIRAD );
- cr = cosf( angles.z * M_PIRAD );
-
- matrix[ 0 ][ 0 ] = cp * cy;
- matrix[ 0 ][ 1 ] = cp * sy;
- matrix[ 0 ][ 2 ] = -sp;
- matrix[ 1 ][ 0 ] = sr * sp*cy + cr * -sy;
- matrix[ 1 ][ 1 ] = sr * sp*sy + cr * cy;
- matrix[ 1 ][ 2 ] = sr * cp;
- matrix[ 2 ][ 0 ] = ( cr*sp*cy + -sr * -sy );
- matrix[ 2 ][ 1 ] = ( cr*sp*sy + -sr * cy );
- matrix[ 2 ][ 2 ] = cr * cp;
- matrix[ 0 ][ 3 ] = 0.f;
- matrix[ 1 ][ 3 ] = 0.f;
- matrix[ 2 ][ 3 ] = 0.f;
- }
-
- void angle_matrix( vec3_t angles, matrix3x4& matrix, vec3_t origin ) {
- angle_matrix( angles, matrix );
- set_matrix_position( origin, matrix );
- }
-
- vec3_t matrix_angles( const matrix3x4& matrix ) {
- //thx strackoverflow
- vec3_t angles;
- float forward[ 3 ];
- float left[ 3 ];
- float up[ 3 ];
-
- forward[ 0 ] = matrix[ 0 ][ 0 ];
- forward[ 1 ] = matrix[ 1 ][ 0 ];
- forward[ 2 ] = matrix[ 2 ][ 0 ];
- left[ 0 ] = matrix[ 0 ][ 1 ];
- left[ 1 ] = matrix[ 1 ][ 1 ];
- left[ 2 ] = matrix[ 2 ][ 1 ];
- up[ 2 ] = matrix[ 2 ][ 2 ];
-
- float xy_dist = sqrtf( forward[ 0 ] * forward[ 0 ] + forward[ 1 ] * forward[ 1 ] );
-
- if( xy_dist > 0.001f ) {
- angles.y = RAD2DEG( atan2f( forward[ 1 ], forward[ 0 ] ) );
- angles.x = RAD2DEG( atan2f( -forward[ 2 ], xy_dist ) );
- angles.z = RAD2DEG( atan2f( left[ 2 ], up[ 2 ] ) );
- }
- else {
- angles.y = RAD2DEG( atan2f( -left[ 0 ], left[ 1 ] ) );
- angles.x = RAD2DEG( atan2f( -forward[ 2 ], xy_dist ) );
-
- angles.z = 0;
- }
-
- return angles;
- }
-
- void rotate_matrix( vec3_t angles, vec3_t origin, float degrees, matrix3x4& matrix ) {
- angles.y += degrees;
- angles.clamp( );
-
- vec3_t rotated( 0, degrees, 0 );
- matrix3x4 rotated_matrix;
- angle_matrix( rotated, rotated_matrix );
-
- vec3_t delta = get_matrix_position( matrix ) - origin;
- vec3_t out = vector_transform( delta, rotated_matrix );
-
- matrix3x4 bone_rotation, matrix_out;
- memcpy( &bone_rotation, &matrix, sizeof( matrix3x4 ) );
-
- set_matrix_position( vec3_t( ), bone_rotation );
- concat_transforms( rotated_matrix, bone_rotation, matrix_out );
- auto angles_out = matrix_angles( matrix_out );
- angle_matrix( angles_out, matrix, out );
- }
-
- float __vectorcall dist_segment_to_segment( vec3_t s1, vec3_t s2, vec3_t k1, vec3_t k2 ) {
- vec3_t u = s2 - s1;
- vec3_t v = k2 - k1;
- vec3_t w = s1 - k1;
- float a = u.dot( u );
- float b = u.dot( v );
- float c = v.dot( v );
- float d = u.dot( w );
- float e = v.dot( w );
- float D = a * c - b * b;
- float sc, sN, sD = D;
- float tc, tN, tD = D;
-
- if( D < SMALL_NUM ) {
- sN = 0.0f;
- sD = 1.0f;
- tN = e;
- tD = c;
- }
- else {
- sN = ( b*e - c * d );
- tN = ( a*e - b * d );
- if( sN < 0.0f ) {
- sN = 0.0f;
- tN = e;
- tD = c;
- }
- else if( sN > sD ) {
- sN = sD;
- tN = e + b;
- tD = c;
- }
- }
-
- if( tN < 0.0f ) {
- tN = 0.0;
-
- if( -d < 0.0f )
- sN = 0.0;
- else if( -d > a )
- sN = sD;
- else {
- sN = -d;
- sD = a;
- }
- }
- else if( tN > tD ) {
- tN = tD;
-
- if( ( -d + b ) < 0.0f )
- sN = 0;
- else if( ( -d + b ) > a )
- sN = sD;
- else {
- sN = ( -d + b );
- sD = a;
- }
- }
-
- sc = ( abs( sN ) < SMALL_NUM ? 0.0f : sN / sD );
- tc = ( abs( tN ) < SMALL_NUM ? 0.0f : tN / tD );
-
- vec3_t dP = w + ( u * sc ) - ( v * tc );
-
- return dP.length( );
- }
-}
\ No newline at end of file diff --git a/tf2/math.h b/tf2/math.h deleted file mode 100644 index c5a107f..0000000 --- a/tf2/math.h +++ /dev/null @@ -1,157 +0,0 @@ -#pragma once
-#include <random>
-#include "util.hpp"
-#include "pattern.hpp"
-#include "sdk.h"
-
-static constexpr long double M_PI = 3.14159265358979323846f;
-static constexpr long double M_RADPI = 57.295779513082f;
-static constexpr long double M_PIRAD = 0.01745329251f;
-static constexpr float SMALL_NUM = 0.00000001f;
-static constexpr float M_PI_F = ( ( float )( M_PI ) );
-__forceinline float RAD2DEG( float x ) { return( ( float )( x ) * ( float )( 180.f / M_PI_F ) ); }
-__forceinline float DEG2RAD( float x ) { return( ( float )( x ) * ( float )( M_PI_F / 180.f ) ); }
-
-namespace {
- //make a random generator and seed it with a p random number
- static std::random_device rd;
- static std::mt19937 gen( rd( ) );
-}
-
-NAMESPACE_REGION( math )
-
-#undef min
-#undef max
-
-template < typename t >
-t min( const t& t1, const t& t2 ) {
- return t1 < t2 ? t1 : t2;
-}
-
-template < typename t, typename... ts_ >
-t min( const t& t1, const t& t2, ts_&&... ts ) {
- return t1 < t2 ?
- min( t1, std::forward< ts_ >( ts )... ) :
- min( t2, std::forward< ts_ >( ts )... );
-}
-
-template < typename t >
-t max( const t& t1, const t& t2 ) {
- return t1 > t2 ? t1 : t2;
-}
-
-template < typename t, typename... ts_ >
-t max( const t& t1, const t& t2, ts_&&... ts ) {
- return t1 > t2 ?
- max( t1, std::forward< ts_ >( ts )... ) :
- max( t2, std::forward< ts_ >( ts )... );
-}
-
-// todo - dex; make 2 random generator funcs here, this one only works for floats normally
-
-template < typename t >
-__forceinline t random_number( t min, t max ) {
- if constexpr( !std::is_integral_v< t > ) {
- std::uniform_real_distribution< t > dist( min, max );
- return dist( gen );
- }
- else {
- std::uniform_int_distribution< t > dist( min, max );
- return dist( gen );
- }
-}
-
-__forceinline vec3_t get_rotated_pos( vec3_t start, float rotation, float distance ) {
- float rad = DEG2RAD( rotation );
- start.x += cos( rad ) * distance;
- start.y += sin( rad ) * distance;
-
- return start;
-}
-
-__forceinline vec3_t vector_angles( const vec3_t& start, const vec3_t& end ) {
- vec3_t delta = end - start;
-
- float magnitude = sqrtf( delta.x * delta.x + delta.y * delta.y );
- float pitch = atan2f( -delta.z, magnitude ) * M_RADPI;
- float yaw = atan2f( delta.y, delta.x ) * M_RADPI;
-
- vec3_t angle( pitch, yaw, 0.0f );
- return angle.clamp( );
-}
-
-
-__forceinline vec3_t vector_angles( const vec3_t& v ) {
- float magnitude = sqrtf( v.x * v.x + v.y * v.y );
- float pitch = atan2f( -v.z, magnitude ) * M_RADPI;
- float yaw = atan2f( v.y, v.x ) * M_RADPI;
-
- vec3_t angle( pitch, yaw, 0.0f );
- return angle;
-}
-
-__forceinline vec3_t angle_vectors( const vec3_t& angles ) {
- float sp, sy, cp, cy;
- sp = sinf( angles.x * M_PIRAD );
- cp = cosf( angles.x * M_PIRAD );
- sy = sinf( angles.y * M_PIRAD );
- cy = cosf( angles.y * M_PIRAD );
-
- return vec3_t{ cp * cy, cp * sy, -sp };
-}
-
-__forceinline void angle_vectors( const vec3_t& angles, vec3_t* forward, vec3_t* right, vec3_t* up ) {
- float sr, sp, sy, cr, cp, cy;
-
- sp = sinf( angles.x * M_PIRAD );
- cp = cosf( angles.x * M_PIRAD );
- sy = sinf( angles.y * M_PIRAD );
- cy = cosf( angles.y * M_PIRAD );
- sr = sinf( angles.z * M_PIRAD );
- cr = cosf( angles.z * M_PIRAD );
-
- if( forward ) {
- forward->x = cp * cy;
- forward->y = cp * sy;
- forward->z = -sp;
- }
-
- if( right ) {
- right->x = -1 * sr * sp * cy + -1 * cr * -sy;
- right->y = -1 * sr * sp * sy + -1 * cr * cy;
- right->z = -1 * sr * cp;
- }
-
- if( up ) {
- up->x = cr * sp * cy + -sr * -sy;
- up->y = cr * sp * sy + -sr * cy;
- up->z = cr * cp;
- }
-}
-
-__forceinline float find_closest_step( float angle, float step ) {
- int steps = ( int )( angle / step + 0.5f );
-
- return steps * step;
-}
-
-__forceinline vec3_t vector_transform( const vec3_t& in, const matrix3x4& matrix ) {
- vec3_t out;
- for( int i{ }; i < 3; i++ )
- out[ i ] = in.dot( ( const vec3_t& )matrix[ i ] ) + matrix[ i ][ 3 ];
-
- return out;
-}
-
-extern void concat_transforms( const matrix3x4& in, const matrix3x4& in2, matrix3x4& out );
-extern void rotate_matrix( vec3_t angles, vec3_t origin, float degrees, matrix3x4& matrix );
-extern void set_matrix_position( vec3_t pos, matrix3x4& src );
-extern vec3_t get_matrix_position( const matrix3x4& pos );
-extern vec3_t matrix_angles( const matrix3x4& matrix );
-extern void angle_matrix( vec3_t angles, matrix3x4& matrix, vec3_t origin );
-extern void angle_imatrix( vec3_t angles, matrix3x4& matrix );
-extern void angle_matrix( vec3_t angles, matrix3x4& matrix );
-extern uint32_t md5_pseudorandom( uint32_t seed );
-extern float __vectorcall dist_segment_to_segment( vec3_t s1, vec3_t s2, vec3_t k1, vec3_t k2 );
-
-END_REGION
\ No newline at end of file diff --git a/tf2/mem.hpp b/tf2/mem.hpp deleted file mode 100644 index 22e8fbf..0000000 --- a/tf2/mem.hpp +++ /dev/null @@ -1,66 +0,0 @@ -#pragma once
-#include <intrin.h>
-#include "util.hpp"
-
-#define get_baseptr( ) ( ( uintptr_t )( _AddressOfReturnAddress( ) ) - sizeof( uintptr_t ) )
-
-class stack_t {
- uintptr_t m_ptr;
-
-public:
- __forceinline stack_t( ) : m_ptr( get_baseptr( ) ) { }
-
- __forceinline stack_t( uintptr_t ptr ) : m_ptr( ptr ) { }
-
- template < typename t = uintptr_t >
- __forceinline t get( ) {
- return ( t )m_ptr;
- }
-
- template < typename t = uintptr_t >
- __forceinline t return_address( ) {
- return *( t* )( m_ptr + sizeof( void* ) );
- }
-
- template < typename t = uintptr_t >
- __forceinline t address_of_return_address( ) {
- return ( t )( m_ptr + sizeof( uintptr_t ) );
- }
-
- __forceinline stack_t& next( ) {
- return *( stack_t* )( m_ptr );
- }
-
- template < typename t = uintptr_t >
- __forceinline t local( size_t at ) {
- return ( t )( m_ptr - at );
- }
-
- template < typename t = uintptr_t >
- __forceinline t arg( size_t at ) {
- return ( t )( m_ptr + at );
- }
-};
-
-namespace util {
- template < typename t = uint8_t >
- __forceinline t* memcpy( t* dst, t* src, size_t size = sizeof( t ) ) {
- __movsb(
- ( uint8_t* )dst,
- ( uint8_t* )src,
- size
- );
-
- return dst;
- }
-
- __forceinline void* memset( uint8_t* dst, uint8_t val, size_t size ) {
- __stosb(
- dst,
- val,
- size
- );
-
- return dst;
- }
-}
\ No newline at end of file diff --git a/tf2/movement.cpp b/tf2/movement.cpp deleted file mode 100644 index e1dd335..0000000 --- a/tf2/movement.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include "movement.h"
-#include "interfaces.h"
-#include "settings.h"
-
-namespace features {
- void c_movement::bhop( ) {
- if( !g_settings.misc.bunny_hop )
- return;
-
- if( g_ctx.m_local->m_nMoveType( ) == MOVETYPE_LADDER ||
- g_ctx.m_local->m_nMoveType( ) == MOVETYPE_NOCLIP )
- return;
-
- //jump like you nohat -> WELL THERES FUCKING HATS IN THIS GAME ISNT THERE CUNT
- if( m_cmd->m_buttons & IN_JUMP && !( g_ctx.m_local->m_fFlags( ) & FL_ONGROUND ) ) {
- m_cmd->m_buttons &= ~IN_JUMP;
- }
- }
-
-
- //ehhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh lazy
- void c_movement::autostrafe( ) {
- if( !g_settings.misc.auto_strafe )
- return;
-
- float velocity = g_ctx.m_local->m_vecVelocity( ).length2d( );
- auto cmd = g_ctx.get_last_cmd( );
-
- if( cmd && m_cmd->m_buttons & IN_JUMP && velocity > 1.0f ) {
- if( !cmd->m_forwardmove && !cmd->m_sidemove ) {
- if( !cmd->m_mousedx ) {
- cmd->m_forwardmove = std::min< float >( 450.f, 5850.f / velocity );
- cmd->m_sidemove = ( m_cmd->m_cmd_nr % 2 ) == 0 ? -450.f : 450.f;
- }
- else {
- cmd->m_sidemove = m_cmd->m_mousedx < 0.f ? -450.f : 450.f;
- }
- }
- }
- }
-}
diff --git a/tf2/movement.h b/tf2/movement.h deleted file mode 100644 index d32fb2b..0000000 --- a/tf2/movement.h +++ /dev/null @@ -1,19 +0,0 @@ -#pragma once
-#include "sdk.h"
-
-namespace features {
- class c_movement {
- public:
- void update( user_cmd_t* cmd ) {
- if ( !cmd ) return;
- m_cmd = cmd;
-
- bhop( );
- }
-
- private:
- void bhop( );
- void autostrafe( );
- user_cmd_t* m_cmd;
- };
-}
\ No newline at end of file diff --git a/tf2/netvar_proxy.hpp b/tf2/netvar_proxy.hpp deleted file mode 100644 index ea18a4d..0000000 --- a/tf2/netvar_proxy.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#pragma once
-#include "dt_recv.h"
-
-//dont leave things out of namespaces
-namespace hooks
-{
- class c_netvar_proxy {
- public:
- c_netvar_proxy( RecvProp* target_property, RecvVarProxyFn new_proxy ) {
- m_target = target_property;
- m_original = target_property->m_ProxyFn;
- m_target->m_ProxyFn = new_proxy;
- }
-
- c_netvar_proxy( ) = default;
-
- void init( RecvProp* target, RecvVarProxyFn new_proxy ) {
- m_target = target;
- m_original = target->m_ProxyFn;
- m_target->m_ProxyFn = new_proxy;
- }
-
- ~c_netvar_proxy( ) {
- if( !m_target ) return;
- m_target->m_ProxyFn = m_original;
- }
-
- RecvVarProxyFn get_old_function( ) const {
- return m_original;
- }
-
- private:
- //overcomplicated...
- RecvProp * m_target;
- RecvVarProxyFn m_original;
- };
-}
\ No newline at end of file diff --git a/tf2/netvars.cpp b/tf2/netvars.cpp deleted file mode 100644 index 2a064bd..0000000 --- a/tf2/netvars.cpp +++ /dev/null @@ -1,93 +0,0 @@ -#include "netvars.h"
-#include "interfaces.h"
-
-tf2::c_netvars g_netvars;
-
-NAMESPACE_REGION( tf2 )
-
-void c_netvars::init( ) {
- for( auto client_class = cl.m_chl( )->GetAllClasses( );
- !!client_class;
- client_class = client_class->m_next
- ) {
- auto table = client_class->m_rt_table;
- m_tables.push_back( table );
- }
-}
-
-RecvTable* c_netvars::get_table( hash_t hash ) const {
- if( m_tables.empty( ) ) return nullptr;
-
- for( auto& table : m_tables ) {
- if( !table ) continue;
-
- if( hash == hash::fnv1a( table->m_pNetTableName ) ) {
- return table;
- }
- }
-
- return nullptr;
-}
-
-//iterating this too much results in a stack overflow, so thats cool
-RecvProp* c_netvars::get_prop( hash_t data, hash_t name ) const {
- RecvProp* prop{ };
- RecvTable* child{ };
-
- auto table = get_table( data );
- if( !table ) return nullptr;
-
- for( int i{ }; i < table->m_nProps; ++i ) {
- prop = &table->m_pProps[ i ];
- child = prop->GetDataTable( );
-
- if( child && child->m_nProps ) {
- auto tmp = get_prop( hash::fnv1a( child->m_pNetTableName ), name );
- if( tmp ) return tmp;
- }
-
- if( name != hash::fnv1a( prop->m_pVarName ) )
- continue;
-
- return prop;
- }
-
- return nullptr;
-}
-
-std::ptrdiff_t c_netvars::get_entry( hash_t name, RecvTable* table ) const {
- std::ptrdiff_t ret{ };
- RecvProp* prop;
- RecvTable* child;
-
- for( int i{ }; i < table->m_nProps; ++i ) {
- prop = &table->m_pProps[ i ];
- child = prop->GetDataTable( );
-
- if( child && child->m_nProps ) {
- auto tmp = get_entry( name, child );
- if( tmp ) ret += prop->GetOffset( ) + tmp;
- }
-
- if( name != hash::fnv1a( prop->m_pVarName ) )
- continue;
-
- return prop->GetOffset( ) + ret;
- }
-
- return ret;
-}
-
-std::ptrdiff_t c_netvars::get_netvar( hash_t data, hash_t name ) const {
- std::ptrdiff_t ret{ };
- auto table = get_table( data );
- if( !table ) return 0;
-
- ret = get_entry( name, table );
-#ifdef DEBUG
- printf( "%s:\t\t 0x%05x\n", name.c_str( ), ret );
-#endif
- return ret;
-}
-
-END_REGION
\ No newline at end of file diff --git a/tf2/netvars.h b/tf2/netvars.h deleted file mode 100644 index 54b92be..0000000 --- a/tf2/netvars.h +++ /dev/null @@ -1,44 +0,0 @@ -#pragma once
-#include <vector>
-
-#include "dt_recv.h"
-#include "util.hpp"
-#include "fnv.hpp"
-
-class RecvTable;
-
-#define NETVAR( funcname, name, table, extra, type ) \
-__forceinline auto& funcname( ) { \
- static std::ptrdiff_t offset = g_netvars.get_netvar( fnv( table ), fnv( name ) ); \
- return get< type >( offset + extra ); \
-}
-
-#define PNETVAR( funcname, name, table, extra, type ) \
-__forceinline type* funcname( ) { \
- static std::ptrdiff_t offset = g_netvars.get_netvar( fnv( table ), fnv( name ) ); \
- return reinterpret_cast< type* >( uintptr_t( this ) + offset + extra ); \
-}
-
-#define OFFSET( funcname, offset, type ) \
-__forceinline auto& funcname( ) { \
- return get< type >( offset ); \
-}
-
-NAMESPACE_REGION( tf2 )
-
-class c_netvars {
-public:
- void init( );
- //search through the netvar list
- std::ptrdiff_t get_netvar( hash_t table, hash_t hash ) const;
- RecvProp* get_prop( hash_t table, hash_t name ) const;
-public:
- std::ptrdiff_t get_entry( hash_t hash, RecvTable* table ) const;
- RecvTable* get_table( hash_t hash ) const;
-private:
- std::vector< RecvTable* > m_tables;
-};
-
-END_REGION
-
-extern tf2::c_netvars g_netvars;
\ No newline at end of file diff --git a/tf2/on_screen_size_changed.cpp b/tf2/on_screen_size_changed.cpp deleted file mode 100644 index 580e2db..0000000 --- a/tf2/on_screen_size_changed.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "hooks.h"
-
-void __fastcall hooks::on_screen_size_changed( void* ecx_, void* edx_, int old_w, int old_h ) {
- static auto old_fn = cl.m_surface->get_old_function< decltype( &hooks::on_screen_size_changed ) >( 116 );
-
- old_fn( ecx_, nullptr, old_w, old_h );
-
- g_fonts.initialize( );
-}
\ No newline at end of file diff --git a/tf2/override_mouse_input.cpp b/tf2/override_mouse_input.cpp deleted file mode 100644 index d3a4b9b..0000000 --- a/tf2/override_mouse_input.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "hooks.h"
-#include "base_cheat.h"
-#include "ctx.hpp"
-
-void __fastcall hooks::override_mouse_input( void* ecx_, void* edx_, float* x, float* y ) {
- static auto omi_o = cl.m_clientmode->get_old_function< decltype( &hooks::override_mouse_input ) >( 20 );
- omi_o( ecx_, edx_, x, y );
-
- if( cl.m_panic ) return;
-
- if( g_ctx.run_frame( ) && g_ctx.m_local->is_alive( ) ) {
- g_cheat.aim( x, y );
- }
-}
\ No newline at end of file diff --git a/tf2/override_view.cpp b/tf2/override_view.cpp deleted file mode 100644 index 2e22e58..0000000 --- a/tf2/override_view.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include "base_cheat.h"
-#include "ctx.hpp"
-#include "hooks.h"
-#include "settings.h"
-void __fastcall hooks::override_view( void* ecx_, void* edx_, CViewSetup* setup ) {
- static auto override_view_o = cl.m_clientmode->get_old_function< decltype( &hooks::override_view ) >( 16 );
- if( cl.m_panic ) {
- return override_view_o( ecx_, nullptr, setup );
- }
-
- g_ctx.m_fov = setup->m_flFov;
- if( g_ctx.run_frame( ) && g_ctx.m_local->is_valid( ) ) {
- setup->m_flFov = g_settings.misc.fov_changer( );
- }
- g_cheat.extra.thirdperson( );
- override_view_o( ecx_, nullptr, setup );
-}
\ No newline at end of file diff --git a/tf2/paint.cpp b/tf2/paint.cpp deleted file mode 100644 index 144847b..0000000 --- a/tf2/paint.cpp +++ /dev/null @@ -1,51 +0,0 @@ -#include "hooks.h"
-#include "interfaces.h"
-#include "search.h"
-#include "graphics.h"
-#include "settings.h"
-#include "base_cheat.h"
-
-
-void __fastcall hooks::paint_traverse( void *ecx_, void *edx_, unsigned int panel, bool forcerepaint, bool allowforce ) {
- static auto paint_o = cl.m_panel->get_old_function< decltype( hooks::paint_traverse )* >( 41 );
- paint_o( ecx_, edx_, panel, forcerepaint, allowforce );
-
- if ( cl.m_panic /*|| !g_ctx->run_frame( ) this will disable esp when dead u dummie!!!*/ ) {
- return;
- }
-
- static uint32_t focus_overlay_panel{ };
- if ( !focus_overlay_panel ) {
- std::string panelname( cl.m_panel( )->GetName( panel ) );
- if ( panelname.find( "FocusOverlayPanel" ) != std::string::npos ) { //matsystemtoppanel is glitched the fuck out in tf2
- focus_overlay_panel = panel; //hovewer this draws on shit other than the main screen
- } //so we should get paint working
- }
-
- if ( panel == focus_overlay_panel ) { //i still wonder why dont we do this in paint
- //dank 2007 esp here
- cl.m_panel( )->SetMouseInputEnabled( panel, g_settings.menu.open || g_con->m_open );
- }
-}
-
-void __fastcall hooks::paint( void* ecx_, void* edx_, int mode ) {
- static auto engine_paint_o = cl.m_vgui->get_old_function< decltype( hooks::paint )* >( 13 );
- static auto start_d = pattern::first_code_match< void( __thiscall* )( void* ) >( cl.m_surface.dll( ), "55 8B EC 64 A1 ? ? ? ? 6A FF 68 ? ? ? ? 50 64 89 25 ? ? ? ? 83 EC 14" );
- static auto finish_d = pattern::first_code_match< void( __thiscall* )( void* ) >( cl.m_surface.dll( ), "55 8B EC 6A FF 68 ? ? ? ? 64 A1 ? ? ? ? 50 64 89 25 ? ? ? ? 51 56 6A 00" );
-
- engine_paint_o( ecx_, edx_, mode );
-
- if ( cl.m_panic ) return;
-
- if ( mode & PAINT_UIPANELS ) {
- start_d( cl.m_surface( ) );
-
- //did you say lazy?
-
- g_renderer.draw_box( 0, 0, 1, 1, clr_t( 0, 0, 0, 1 ) );
- if( !g_settings.misc.hide_from_obs )
- g_cheat.visuals( );
-
- finish_d( cl.m_surface( ) );
- }
-}
\ No newline at end of file diff --git a/tf2/pattern.hpp b/tf2/pattern.hpp deleted file mode 100644 index 0bc4b1b..0000000 --- a/tf2/pattern.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#pragma once
-
-#include <Windows.h>
-#include <stdio.h>
-#include <Psapi.h>
-#include <vector>
-#include <iostream>
-#include <string>
-#include <sstream>
-#include <algorithm>
-#include <iterator>
-
-#pragma warning ( disable : 4018 )
-
-namespace pattern
-{
- inline bool bin_match( uint8_t* code, uint8_t* pattern, size_t size ) {
- for( size_t j = 0; j < size; j++ ) {
- if( pattern[ j ] && code[ j ] != pattern[ j ] ) {
- return false;
- }
- }
- return true;
- }
-
- template< typename t = uintptr_t > static t first_match( uintptr_t start, std::string sig, size_t len, std::ptrdiff_t offset = 0 ) {
- std::istringstream iss( sig );
- std::vector< std::string > tokens{ std::istream_iterator< std::string >{ iss }, std::istream_iterator< std::string >{} };
- std::vector< uint8_t > sig_bytes;
-
- for( const auto& hex_byte : tokens ) {
- sig_bytes.push_back( static_cast< uint8_t >( std::strtoul( hex_byte.c_str( ), nullptr, 16 ) ) );
- }
-
- if( sig_bytes.empty( ) || sig_bytes.size( ) < 2 ) {
- return t{ };
- }
-
- auto sig_data = sig_bytes.data( );
- auto sig_size = sig_bytes.size( );
-
- for( size_t i{ }; i < len; i++ ) {
- uint8_t* code_ptr = reinterpret_cast< uint8_t* >( start + i );
-
- if( bin_match( code_ptr, sig_data, sig_size ) ) {
- return( ( t )( start + i + offset ) );
- }
- }
-
- return t{ };
- }
-
- //ultimately the function you want to call to sigscan ( ida style )
- template< typename t = uintptr_t > static t first_code_match( HMODULE start, std::string sig, std::ptrdiff_t offset = 0 ) {
- auto dos_hdr = reinterpret_cast< PIMAGE_DOS_HEADER >( start );
-
- if( !dos_hdr ) return t{ };
-
- //DOS header, verifies if module is valid
- if( dos_hdr->e_magic != 0x5a4d ) {
- return t{ };
- }
-
- auto nt_hdrs = reinterpret_cast< PIMAGE_NT_HEADERS >( reinterpret_cast< uintptr_t >( dos_hdr ) + dos_hdr->e_lfanew );
-
- return first_match< t >( reinterpret_cast< uintptr_t >( dos_hdr ) + nt_hdrs->OptionalHeader.BaseOfCode, sig, nt_hdrs->OptionalHeader.SizeOfCode, offset );
- }
-};
\ No newline at end of file diff --git a/tf2/prediction.cpp b/tf2/prediction.cpp deleted file mode 100644 index c9e2493..0000000 --- a/tf2/prediction.cpp +++ /dev/null @@ -1,70 +0,0 @@ -#include "prediction.h"
-#include "sdk.h"
-#include "interfaces.h"
-
-void features::c_prediction::run_prediction( user_cmd_t* cmd ) {
- static uintptr_t addr_of_runcommand = cl.m_prediction->get_function( 17 );
- static uint32_t pseudo_random_offset = pattern::first_code_match( cl.m_chl.dll( ), "55 8B EC 8B 45 08 85 C0 75 0C", 0x1 );
- static char* move_data = reinterpret_cast< char* >( malloc( 0x256 ) );
-
- if ( !cmd || !g_ctx.m_local ) return;
-
- int flags = g_ctx.m_local->get_flags( );
- int cmd_buttons = cmd->m_buttons;
-
- auto set_random_seed = reinterpret_cast< void( __cdecl* )( uint32_t ) >( pseudo_random_offset );
-
- *reinterpret_cast< user_cmd_t** >( uintptr_t( g_ctx.m_local ) + 0x107c ) = cmd;
-
- if ( cmd->m_impulse ) {
- *reinterpret_cast< uint8_t* >( uintptr_t( g_ctx.m_local ) + 0x1124 ) = cmd->m_impulse;
- }
-
- /*void __cdecl SetButtonState(int a1)
- {
- int v1; // ecx@0
- int v2; // edx@1
-
- v2 = a1 ^ *(_DWORD *)(v1 + 0x1078);
- *(_DWORD *)(v1 + 0x106C) = *(_DWORD *)(v1 + 0x1078);
- *(_DWORD *)(v1 + 0x1078) = a1;
- *(_DWORD *)(v1 + 0x1070) = a1 & v2;
- *(_DWORD *)(v1 + 0x1074) = v2 & ~a1;
- }*/
- auto v2 = cmd->m_buttons ^ *reinterpret_cast< int* >( uintptr_t( g_ctx.m_local ) + 0x1078 );
-
- *reinterpret_cast< int* >( uintptr_t( g_ctx.m_local ) + 0x106c ) = *reinterpret_cast< int* >( uintptr_t( g_ctx.m_local ) + 0x1078 );
- *reinterpret_cast< int* >( uintptr_t( g_ctx.m_local ) + 0x1078 ) = cmd->m_buttons;
- *reinterpret_cast< int* >( uintptr_t( g_ctx.m_local ) + 0x1070 ) = cmd->m_buttons & v2;
- *reinterpret_cast< int* >( uintptr_t( g_ctx.m_local ) + 0x1074 ) = v2 &~ cmd->m_buttons;
-
- cl.m_globals->curtime = g_ctx.m_local->get_tick_base( ) * cl.m_globals->interval_per_tick;
- cl.m_globals->frametime = cl.m_globals->interval_per_tick;
-
- set_random_seed( cmd->m_random_seed );
- **reinterpret_cast< uintptr_t** >( addr_of_runcommand + 0x2b + 0x2 ) = uintptr_t( g_ctx.m_local );
-
- cl.m_movement( )->StartTrackPredictionErrors( reinterpret_cast< uintptr_t* >( g_ctx.m_local ) );
-
- int tick_base = g_ctx.m_local->get_tick_base( );
-
- static auto setup_move = cl.m_prediction->get_function< void( __thiscall* )( void*, c_base_player*, user_cmd_t*, IMoveHelper*, CMoveData* ) >( 18 );
- static auto finish_move = cl.m_prediction->get_function< void( __thiscall* )( void*, c_base_player*, user_cmd_t*, CMoveData* ) >( 19 );
- setup_move( cl.m_prediction( ), g_ctx.m_local, cmd, cl.m_movehelper, reinterpret_cast< CMoveData* >( move_data ) );
- cl.m_movement( )->ProcessMovement( reinterpret_cast< uintptr_t* >( g_ctx.m_local ), reinterpret_cast< CMoveData* >( move_data ) );
- finish_move( cl.m_prediction( ), g_ctx.m_local, cmd, reinterpret_cast< CMoveData* >( move_data ) );
-
- g_ctx.m_local->m_nTickBase( );
-
- cl.m_movement( )->FinishTrackPredictionErrors( reinterpret_cast< uintptr_t* >( g_ctx.m_local ) );
-
- set_random_seed( 0xfffffff );
- **reinterpret_cast< uintptr_t*** >( addr_of_runcommand + 0x2b + 0x2 ) = nullptr;
- *reinterpret_cast< user_cmd_t** >( uintptr_t( g_ctx.m_local ) + 0x107c ) = nullptr;
-
- cl.m_globals->curtime = g_ctx.m_local->get_tick_base( ) * cl.m_globals->interval_per_tick;
- cl.m_globals->frametime = cl.m_globals->interval_per_tick;
-
- g_ctx.m_local->m_nTickBase( );
- cmd->m_buttons = cmd_buttons;
-}
\ No newline at end of file diff --git a/tf2/prediction.h b/tf2/prediction.h deleted file mode 100644 index e71ac24..0000000 --- a/tf2/prediction.h +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once
-class user_cmd_t;
-class c_base_player;
-namespace features
-{
- class c_prediction {
- public:
- void run_prediction( user_cmd_t* cmd );
- };
-}
\ No newline at end of file diff --git a/tf2/process_movement.cpp b/tf2/process_movement.cpp deleted file mode 100644 index c6f186e..0000000 --- a/tf2/process_movement.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include "hooks.h"
-#include "interfaces.h"
-
-void __fastcall hooks::process_movement( void* thisptr, void* edx_, c_base_player* player, CMoveData* move ) {
- static auto old_fn = cl.m_movement->get_old_function< decltype( hooks::process_movement )* >( 1 );
-
- if ( cl.m_input( )->IsButtonDown( MOUSE_MIDDLE ) ) {
- move->m_outStepHeight = -1.0f;
- }
-
- return old_fn( thisptr, edx_, player, move );
-}
\ No newline at end of file diff --git a/tf2/projectile_pred.cpp b/tf2/projectile_pred.cpp deleted file mode 100644 index c54f712..0000000 --- a/tf2/projectile_pred.cpp +++ /dev/null @@ -1,70 +0,0 @@ -#include "projectile_pred.h"
-#include "sdk.h"
-#include "interfaces.h"
-
-namespace util
-{
-
- vec3_t c_projectile_pred::predict_player( c_base_player* player ) {
- if ( !player || !player->is_valid( ) ) return vec3_t{ };
-
- static auto sv_gravity = cl.m_cvar( )->FindVar( "sv_gravity" ); //unnecessary for now
- auto local = g_ctx.m_local; //will be used for stuff like grenades
- //will also need to calculate friction etc
- auto weapon = local->get_active_weapon( );
- if ( !weapon ) return player->get_origin( );
-
- float projectile_speed = get_projectile_speed( weapon );
-
- vec3_t player_vel = player->get_velocity( );
- vec3_t projectile_vel = vec3_t( );
-
- float estimated_travel_time = ( local->get_eye_pos( ) - player->get_origin( ) ).length( ) / projectile_speed + cl.m_globals->interval_per_tick;
- vec3_t estimated_predicted_pos = player->get_origin( ) + player_vel * estimated_travel_time;
-
- return estimated_predicted_pos;
- }
-
- float c_projectile_pred::get_projectile_speed( c_base_weapon* weapon ) {
- if ( !weapon )
- return -1.f;
- /*
- this is completely hardcoded
- if you can find a better way to figure this out
- then please tell me
- -- nave
- */
-
- int id = weapon->GetClientClass( )->m_class_id;
-
- float BeginCharge;
- float Charge;
-
- //return flSpeed;
- switch ( id ) {
- case ClientClassIDs::CTFGrenadeLauncher:
- return 840.0f;
- case ClientClassIDs::CTFRocketLauncher_DirectHit:
- return 1980.0f;
- case ClientClassIDs::CTFRocketLauncher:
- case ClientClassIDs::CTFRocketLauncher_Mortar:
- return 1100.0f;
- case ClientClassIDs::CTFFlareGun:
- return 1450.0f;
- case ClientClassIDs::CTFBat_Wood:
- return 1940.0f;
- case ClientClassIDs::CTFSyringeGun:
- return 990.0f;
- case ClientClassIDs::CTFCompoundBow: {
- return 0.f; //need more shit, cba now
- }
-
- default:
- return -1.0f;
- }
-
- return -1.0f;
- }
-}
-
-util::c_projectile_pred projectile_pred;
\ No newline at end of file diff --git a/tf2/projectile_pred.h b/tf2/projectile_pred.h deleted file mode 100644 index bd1b3d8..0000000 --- a/tf2/projectile_pred.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once
-class c_base_weapon;
-class c_base_player;
-class vec3_t;
-namespace util
-{
- class c_projectile_pred {
- public:
- vec3_t predict_player( c_base_player* );
- private:
- float get_projectile_speed( c_base_weapon* );
- };
-}
-
-extern util::c_projectile_pred projectile_pred;
\ No newline at end of file diff --git a/tf2/renderer.cpp b/tf2/renderer.cpp deleted file mode 100644 index 8f5e8e7..0000000 --- a/tf2/renderer.cpp +++ /dev/null @@ -1,93 +0,0 @@ -#include "renderer.hpp"
-#include "interfaces.h"
-
-#undef CreateFont
-
-
-drawings::c_fonts g_fonts;
-drawings::c_drawings g_renderer;
-
-NAMESPACE_REGION( drawings )
-
-c_fonts::font_t::font_t( std::string name, int size,
- int weight, ulong_t flags ) :
- m_name( name ), m_size( size ),
- m_weight( weight ), m_flags( flags ) {
- g_fonts.m_container.push_back( this );
-};
-
-void c_fonts::font_t::initialize( ) {
- m_font = cl.m_surface( )->CreateFnt( );
- cl.m_surface( )->SetFontGlyphSet(
- m_font, m_name.c_str( ), m_size,
- m_weight, 0, 0,
- m_flags
- );
-}
-
-void c_fonts::initialize( ) {
- for( auto& it : m_container ) {
- it->initialize( );
- }
-}
-
-void c_drawings::draw_string( const wchar_t* text, HFont font, int x, int y, const clr_t& color ) {
- cl.m_surface( )->DrawSetTextPos( x, y );
- cl.m_surface( )->DrawSetTextFont( font );
- cl.m_surface( )->DrawSetTextColor( color );
- cl.m_surface( )->DrawPrintText( text, wcslen( text ) );
-}
-
-void c_drawings::draw_rect( int x, int y, int w, int h, const clr_t& color ) {
- cl.m_surface( )->DrawSetColor( color );
- cl.m_surface( )->DrawFilledRect( x, y, x + w, y + h );
-}
-
-void c_drawings::draw_line( int x, int y, int x1, int y1, const clr_t& clr ) {
- cl.m_surface( )->DrawSetColor( clr );
- cl.m_surface( )->DrawLine( x, y, x1, y1 );
-}
-
-void c_drawings::draw_box( int x, int y, int w, int h, const clr_t& clr ) {
- draw_line( x, y, x + w, y, clr );
- draw_line( x + w, y, x + w, y + h, clr );
- draw_line( x, y + h, x + w + 1, y + h, clr );
- draw_line( x, y, x, y + h, clr );
-}
-
-void c_drawings::draw_circle( int x, int y, int r, const clr_t& col, int res ) {
- cl.m_surface( )->DrawSetColor( col );
- cl.m_surface( )->DrawOutlinedCircle( x, y, r, res );
-}
-
-void c_drawings::draw_filled_circle( int x, int y, int r, const clr_t& col, int res ) {
- vertex_t* v = ( vertex_t* )( _alloca( res * sizeof( vertex_t ) ) );
- const float step = M_PI * 2.0f / res;
-
- for( size_t i{ }; i < res; ++i ) {
- float theta = i * step;
- float x_off = r * cos( theta );
- float y_off = r * sin( theta );
- v[ i ].init( x + x_off, y + y_off );
- }
-
- draw_polygon( res, v, col );
-}
-
-void c_drawings::draw_line( const vec2_t& begin, const vec2_t& end, const clr_t& clr ) {
- draw_line( ( int )begin.x, ( int )begin.y, ( int )end.x, ( int )end.y, clr );
-}
-
-void c_drawings::draw_polygon( int count, vertex_t* vertices, const clr_t& col ) {
- static int texture = cl.m_surface( )->CreateNewTextureID( true );
-
- clr_t buf( 255, 255, 255 );
-
- cl.m_surface( )->DrawSetTextureRGBA( texture, ( byte* )( &buf ), 1, 1 );
- cl.m_surface( )->DrawSetColor( col );
- cl.m_surface( )->DrawSetTexture( texture );
-
- cl.m_surface( )->DrawTexturedPolygon( count, vertices );
-}
-
-END_REGION
\ No newline at end of file diff --git a/tf2/renderer.hpp b/tf2/renderer.hpp deleted file mode 100644 index 1c86511..0000000 --- a/tf2/renderer.hpp +++ /dev/null @@ -1,120 +0,0 @@ -#pragma once
-#include <stdio.h>
-#include <stdarg.h>
-#include <vector>
-
-#include "util.hpp"
-#include "sdk.h"
-
-enum e_font_style : size_t {
-
-};
-
-enum FontAlign_t : size_t {
- ALIGN_CENTER,
- ALIGN_LEFT,
- ALIGN_RIGHT
-};
-
-NAMESPACE_REGION( drawings )
-
-
-class c_fonts {
-protected:
- struct font_t {
- friend class c_fonts;
- font_t( std::string name, int size,
- int weight, ulong_t flags );
-
- operator HFont( ) {
- return m_font;
- }
-
- private:
- void initialize( );
-
- HFont m_font;
- std::string m_name;
- int m_size;
- int m_weight;
- ulong_t m_flags;
- };
-
- std::vector< font_t* > m_container;
- friend struct c_fonts::font_t;
-public:
- void initialize( );
-
- font_t f_esp_small{ xors( "Tahoma" ), 11, 500, FONTFLAG_OUTLINE };
- font_t f_bold{ xors( "Verdana" ), 18, 900, FONTFLAG_DROPSHADOW | FONTFLAG_ANTIALIAS };
- font_t f_12{ xors( "Verdana" ), 12, 700, 128 };
- font_t f_14{ xors( "Verdana" ), 14, 700, 128 };
- font_t f_16{ xors( "Verdana" ), 16, 700, 128 };
- font_t f_18{ xors( "Verdana" ), 18, 700, 128 };
-};
-
-
-
-//im going to fill ur triangles
-class c_drawings {
-private:
- //dumb hacky fix for template functions
- void draw_string( const wchar_t* msg, HFont font, int x, int y, const clr_t& color );
-
-public:
- void draw_line( const vec2_t& begin, const vec2_t& end, const clr_t& color );
- void draw_line( int x, int y, int x1, int y2, const clr_t& color );
- void draw_rect( int x, int y, int w, int h, const clr_t& color );
- void draw_box( int x, int y, int w, int h, const clr_t& color ); //thicc
- void draw_polygon( int count, vertex_t* vertices, const clr_t& col );
- void draw_circle( int x, int y, int r, const clr_t& col, int res = 48 );
- void draw_filled_circle( int x, int y, int r, const clr_t& col, int res = 48 );
-
- template < FontAlign_t align = ALIGN_LEFT > //fuck ur sprintf nigga varargs nigga
- void draw_string( HFont font, int x, int y, const clr_t& color, const wchar_t* msg, ... ) {
- wchar_t* buffer = ( wchar_t* )_alloca( 2048 );
- va_list list{ };
- int wide, tall;
-
- memset( buffer, 0, 2048 );
-
- __crt_va_start( list, msg );
- vswprintf_s( buffer, 1024, msg, list );
- __crt_va_end( list );
-
- cl.m_surface( )->GetTextSize(
- font, buffer, wide, tall );
-
- switch( align ) {
- case ALIGN_CENTER:
- x -= wide / 2;
- break;
- case ALIGN_RIGHT:
- x -= wide;
- break;
- default: break;
- }
-
- draw_string( buffer, font, x, y, color );
- }
-
- template < FontAlign_t align = ALIGN_LEFT > //debatable whether it should be center or not
- void draw_string( HFont font, int x, int y, const clr_t& color, const char* msg, ... ) {
- char* buffer = ( char* )_alloca( 1024 );
- va_list list{ };
-
- memset( buffer, 0, 1024 );
-
- __crt_va_start( list, msg );
- vsprintf_s( buffer, 1024, msg, list );
- __crt_va_end( list );
-
- auto wide_str = util::ascii_to_unicode( buffer );
- draw_string< align >( font, x, y, color, wide_str.c_str( ) );
- }
-};
-
-END_REGION
-
-extern drawings::c_fonts g_fonts;
-extern drawings::c_drawings g_renderer;
\ No newline at end of file diff --git a/tf2/scene_end.cpp b/tf2/scene_end.cpp deleted file mode 100644 index bb88311..0000000 --- a/tf2/scene_end.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include "hooks.h"
-#include "settings.h"
-#include "base_cheat.h"
-#include "ctx.hpp"
-
-void __fastcall hooks::scene_end( void* ecx_, void* edx_ ) {
- static auto scene_end_o = cl.m_render_view->get_old_function< decltype( &hooks::scene_end ) >( 9 );
- scene_end_o( edx_, 0 );
-
- if( !cl.m_panic && g_ctx.m_local && g_settings.visuals.chams.enabled( ) && g_settings.visuals.chams.ignore_z( ) ) {
- g_ctx.m_drawing_screneend = true;
- for( int i = 1; i < cl.m_globals->maxclients; ++i ) {
- auto ent = cl.m_entlist( )->get_client_entity< c_base_player >( i );
- if( ent && ent->is_valid( ) ) {
- if( ent == g_ctx.m_local && ent->m_bIsScoped( ) ) {
- continue;
- }
- int team = ent->m_iTeamNum( );
- bool enemy = team != g_ctx.m_local->m_iTeamNum( );
- if( enemy || g_settings.visuals.chams.friendlies( ) ) {
- IMaterial* mat = g_settings.visuals.chams.flat ? g_cheat.chams.m_materials.m_chams_flat : g_cheat.chams.m_materials.m_chams;
- fclr_t clr_vis = enemy ? g_settings.visuals.chams.color_visible_enemy( ).to_fclr( ) : g_settings.visuals.chams.color_visible_friendly( ).to_fclr( );
- fclr_t clr_hid = enemy ? g_settings.visuals.chams.color_hidden_enemy( ).to_fclr( ) : g_settings.visuals.chams.color_hidden_friendly( ).to_fclr( );
- mat->SetMaterialVarFlag( MATERIAL_VAR_IGNOREZ, true );
- //g_cheat.chams.m_materials.force_material( mat, clr_hid );
- ent->ce( )->DrawModel( 0x1, 255 );
- mat->SetMaterialVarFlag( MATERIAL_VAR_IGNOREZ, false );
- //g_cheat.chams.m_materials.force_material( mat, clr_vis );
- ent->ce( )->DrawModel( 0x1, 255 );
- cl.m_model_render( )->ForcedMaterialOverride( nullptr );
- }
- }
- }
-
- g_ctx.m_drawing_screneend = false;
- }
-}
\ No newline at end of file diff --git a/tf2/sdk.h b/tf2/sdk.h deleted file mode 100644 index 4db8a8f..0000000 --- a/tf2/sdk.h +++ /dev/null @@ -1,34 +0,0 @@ -#pragma once
-
-#define CLIENT_DLL
-
-#include <Windows.h>
-#include <map>
-#include <algorithm>
-
-#include "vector.hpp"
-
-#include "color.hpp"
-#include "IClientMode.h"
-#include "CHLClient.h"
-#include "IEngineVGui.h"
-#include "IClientEntityList.h"
-#include "IEngineTrace.h"
-#include "CGlobalVarsBase.h"
-#include "ICvar.h"
-#include "IVDebugOverlay.h"
-#include "IVEngineClient.h"
-#include "IPlayerInfoManager.h"
-#include "CBasePlayer.h"
-#include "IPanel.h"
-#include "ISurface.h"
-#include "GlowObject.h"
-#include "IInputSystem.h"
-#include "IVRenderView.h"
-#include "CBaseWeapon.h"
-#include "IVModelInfo.h"
-#include "IGameMovement.h"
-#include "IMaterialSystem.hpp"
-#include "IGameEventManager.h"
-#include "CInput.hpp"
-#include "KeyValues.h"
\ No newline at end of file diff --git a/tf2/settings.cpp b/tf2/settings.cpp deleted file mode 100644 index 144c74a..0000000 --- a/tf2/settings.cpp +++ /dev/null @@ -1,4 +0,0 @@ -#include "settings.h"
-
-SettingHolder holder_{ "" };
-c_settings settings;
\ No newline at end of file diff --git a/tf2/settings.h b/tf2/settings.h deleted file mode 100644 index 3f9fbac..0000000 --- a/tf2/settings.h +++ /dev/null @@ -1,276 +0,0 @@ -#pragma once
-#include "simple_settings.h"
-#include "strings.hpp"
-#include "color.hpp"
-#include <unordered_map>
-//later i will implement a way to load all config files
-
-namespace data
-{
-
-
- extern SettingHolder holder_;
-
-
- class legitbot_settings : SettingHolder {
- public:
- using SettingHolder::SettingHolder;
-
- con_var< float > m_fov{ this, fnv( "fov" ), 5.f };
- con_var< float > m_speed{ this, fnv( "speed" ), 10.f };
- con_var< float > m_assist_strength{ this, fnv( "assist_strength" ), 0.f };
- con_var< int > m_hitbox{ this, fnv( "hitbox" ), 0 };
- con_var< int > m_bone{ this, fnv( "bone" ), 0 };
- };
-
-
- class c_settings {
- public:
-
- void load( ) {
- switch( menu.cur_setting ) {
- case 0:
- holder_.load( "", xors( "./tf/cfg/scout.cfg" ) );
- break;
- case 1:
- holder_.load( "", xors( "./tf/cfg/soldier.cfg" ) );
- break;
- case 2:
- holder_.load( "", xors( "./tf/cfg/pyro.cfg" ) );
- break;
- case 3:
- holder_.load( "", xors( "./tf/cfg/demo.cfg" ) );
- break;
- case 4:
- holder_.load( "", xors( "./tf/cfg/heavy.cfg" ) );
- break;
- case 5:
- holder_.load( "", xors( "./tf/cfg/engineer.cfg" ) );
- break;
- case 6:
- holder_.load( "", xors( "./tf/cfg/medic.cfg" ) );
- break;
- case 7:
- holder_.load( "", xors( "./tf/cfg/sniper.cfg" ) );
- break;
- case 8:
- holder_.load( "", xors( "./tf/cfg/spy.cfg" ) );
- break;
- case 9:
- holder_.load( "", xors( "./tf/cfg/money_rage1.cfg" ) );
- break;
- case 10:
- holder_.load( "", xors( "./tf/cfg/money_rage2.cfg" ) );
- break;
- }
-
- menu.anti_untrusted = true;
- }
-
- void save( ) {
- switch( menu.cur_setting ) {
- case 0:
- holder_.load( "", xors( "./tf/cfg/scout.cfg" ) );
- break;
- case 1:
- holder_.load( "", xors( "./tf/cfg/soldier.cfg" ) );
- break;
- case 2:
- holder_.load( "", xors( "./tf/cfg/pyro.cfg" ) );
- break;
- case 3:
- holder_.load( "", xors( "./tf/cfg/demo.cfg" ) );
- break;
- case 4:
- holder_.load( "", xors( "./tf/cfg/heavy.cfg" ) );
- break;
- case 5:
- holder_.load( "", xors( "./tf/cfg/engineer.cfg" ) );
- break;
- case 6:
- holder_.load( "", xors( "./tf/cfg/medic.cfg" ) );
- break;
- case 7:
- holder_.load( "", xors( "./tf/cfg/sniper.cfg" ) );
- break;
- case 8:
- holder_.load( "", xors( "./tf/cfg/spy.cfg" ) );
- break;
- case 9:
- holder_.load( "", xors( "./tf/cfg/money_rage1.cfg" ) );
- break;
- case 10:
- holder_.load( "", xors( "./tf/cfg/money_rage2.cfg" ) );
- break;
- }
- }
-
- void copy_to_clipboard( ) {
- holder_.save( "", xors( "./tf/cfg/money_temp.cfg" ) );
- std::vector< uint8_t > file_data;
- FILE* f = fopen( xors( "./tf/cfg/money_temp.cfg" ), "r" );
- size_t size = 0;
- fseek( f, 0, SEEK_END );
- size = ftell( f );
-
- char* buf = ( char* )malloc( size );
- fread( buf, 1, size, f );
- fclose( f );
- for( size_t i{ }; i < size; ++i ) {
- file_data.push_back( buf[ i ] );
- }
-
- free( buf );
-
- EmptyClipboard( );
- OpenClipboard( nullptr );
-
- auto g = GlobalAlloc( GMEM_FIXED, size );
- memcpy( g, file_data.data( ), size );
-
- SetClipboardData( CF_TEXT, g );
- CloseClipboard( );
- //DeleteFileA( xors( "./tf/cfg/money_temp.cfg" ) );
- }
-
- void load_from_clipboard( ) {
- FILE* f = fopen( xors( "./tf/cfg/money_temp.cfg" ), "wb" );
- auto data = GetClipboardData( CF_TEXT );
-
- auto size = GlobalSize( data );
- fwrite( data, 1, size, f );
- fclose( f );
-
- holder_.load( "", xors( "./tf/cfg/money_temp.cfg" ) );
-
- CloseClipboard( );
- //DeleteFileA( xors( "./tf/cfg/money_temp.cfg" ) );
- }
-
- struct {
- con_var< bool > enabled{ &holder_, fnv( "legit_active" ), false };
- con_var< size_t > sample_size{ &holder_, fnv( "legit_sample_size" ), 12 };
- con_var< float > smooth_factor{ &holder_, fnv( "legit_smooth_factor" ), 1.0f };
- con_var< bool > dynamic_smoothing{ &holder_, fnv( "legit_dynamic_smoothing" ), false };
- con_var< bool > assist{ &holder_, fnv( "legit_assist" ), false };
- con_var< bool > friendlies{ &holder_, fnv( "legit_friendlies" ), false };
- con_var< int > activation_type{ &holder_, fnv( "legit_activation_type" ), 1 };
- con_var< int > key{ &holder_, fnv( "legit_key" ), 0 };
- con_var< bool > backtracking{ &holder_, fnv( "legit_backtracking" ), 0 };
- con_var< float > backtracking_time{ &holder_, fnv( "legit_bt_time" ), 0.2f };
- con_var< float > backtracking_fov{ &holder_, fnv( "legit_bt_fov" ), 5.0f };
- con_var< bool > backtracking_target{ &holder_, fnv( "legit_bt_target" ), false };
- con_var< bool > backtracking_visualize{ &holder_, fnv( "legit_bt_visualize" ), 0 };
- con_var< clr_t > backtracking_col{ &holder_, fnv( "legit_bt_col" ), clr_t( 255, 255, 255, 120 ) };
- con_var< bool > triggerbot{ &holder_, fnv( "legit_triggerbot" ), false };
- con_var< int > trigger_key{ &holder_, fnv( "legit_triggerkey" ), 0 };
- con_var< float > trigger_delay{ &holder_, fnv( "legit_triggerdelay" ), 0.f };
- legitbot_settings secondary{ &holder_, "legit_primary" };
- legitbot_settings melee{ &holder_, "legit_melee" };
- legitbot_settings primary{ &holder_, "legit_secondary" };
- legitbot_settings* active = &primary;
- } legit;
-
- struct {
- struct {
- con_var< bool > enabled{ &holder_, fnv( "visuals_chams_enabled" ), 0 };
- con_var< bool > flat{ &holder_, fnv( "visuals_chams_flat" ), 0 };
- con_var< bool > ignore_z{ &holder_, fnv( "visuals_chams_ignore_z" ), 0 };
- con_var< float > reflectivity{ &holder_, fnv( "visuals_chams_reflectivity" ), 1.0f };
- con_var< float > shine{ &holder_, fnv( "visuals_chams_shine" ), 1.0f };
- con_var< bool > friendlies{ &holder_, fnv( "visuals_chams_friendlies" ), 0 };
- con_var< clr_t > color_visible_friendly{ &holder_, fnv( "visuals_chams_color_friendly" ), clr_t( 0, 255, 255 ) };
- con_var< clr_t > color_visible_enemy{ &holder_, fnv( "visuals_chams_color_enemy" ), clr_t( 255, 255, 0 ) };
- con_var< clr_t > color_hidden_friendly{ &holder_, fnv( "visuals_chams_color_h_friendly" ), clr_t( 0, 0, 255 ) };
- con_var< clr_t > color_hidden_enemy{ &holder_, fnv( "visuals_chams_color_h_enemy" ), clr_t( 255, 0, 0 ) };
- } chams;
-
- con_var< int > activation_type{ &holder_, fnv( "visuals_activation" ), false };
- //players
- con_var< bool > box{ &holder_, fnv( "visuals_box" ), false };
- con_var< bool > dormant{ &holder_, fnv( "visuals_dormant" ), false };
- con_var< bool > health{ &holder_, fnv( "visuals_health" ), false };
- con_var< bool > weapon{ &holder_, fnv( "visuals_weapon" ), false };
- con_var< bool > name{ &holder_, fnv( "visuals_name" ), false };
- con_var< bool > out_of_pov{ &holder_, fnv( "visuals_out_of_pov" ), false };
- con_var< float > out_of_pov_radius{ &holder_, fnv( "visuals_out_of_pov_radius" ), 0.75f };
- con_var< int > out_of_pov_size{ &holder_, fnv( "visuals_out_of_pov_size" ), 25 };
- con_var< bool > friendlies{ &holder_, fnv( "visuals_friendlies" ), false };
- con_var< bool > skeleton{ &holder_, fnv( "visuals_skeleton" ) };
- con_var< bool > glow{ &holder_, fnv( "visuals_glow" ), false };
- con_var< bool > conditions{ &holder_, fnv( "visuals_conditions" ), false }; //conditions
- con_var< bool > resolver_indicator{ &holder_, fnv( "visuals_resolver_indicator" ), false };
- con_var< bool > ammo{ &holder_, fnv( "visuals_ammo" ), false };
- con_var< bool > player_class{ &holder_, fnv( "visuals_player_class" ) };
- con_var< bool > floating_ragdolls{ &holder_, fnv( "visuals_floating_ragdolls" ) }; //dont remember
- con_var< bool > sound{ &holder_, fnv( "visuals_sound" ), false };
- con_var< clr_t > box_enemy{ &holder_, fnv( "visuals_clr_enemy" ), clr_t( 0, 255, 255 ) };
- con_var< clr_t > box_friendly{ &holder_, fnv( "visuals_clr_friendly" ), clr_t( 255, 0, 255 ) };
- con_var< clr_t > glow_enemy{ &holder_, fnv( "visuals_glow_enemy" ), clr_t( 255, 0, 255, 150 ) };
- con_var< clr_t > glow_friendly{ &holder_, fnv( "visuals_glow_friendly" ), clr_t( 255, 120, 0, 150 ) };
- con_var< clr_t > skeleton_enemy{ &holder_, fnv( "visuals_skeleton_enemy" ), clr_t( 255, 255, 255 ) };
- con_var< clr_t > skeleton_friendly{ &holder_, fnv( "visuals_skeleton_friendly" ), clr_t( 255, 255, 255 ) };
- con_var< int > bullet_tracers{ &holder_, fnv( "visuals_bullet_tracers" ), 0 };
- con_var< int > sound_range{ &holder_, fnv( "visuals_sound_range" ), 360 };
- con_var< int > key{ &holder_, fnv( "visuals_key" ), 0 };
- con_var< bool > hitmarkers{ &holder_, fnv( "visuals_hitmarkers" ), false };
-
-
- //world
- con_var< bool > world_modulate{ &holder_, fnv( "visuals_world_modulate" ), false };
- con_var< bool > night_mode{ &holder_, fnv( "visuals_night_mode" ), false };
- con_var< bool > transparent_props{ &holder_, fnv( "visuals_transparent_props" ), false };
- con_var< int > projectile_esp{ &holder_, fnv( "visuals_projectile_esp" ), 0 }; //projectile_esp
- con_var< int > building_esp{ &holder_, fnv( "visuals_building_esp" ), 0 };//building_esp
- con_var< bool > building_owner{ &holder_, fnv( "visuals_building_owner" ), false }; //building_owner
- con_var< clr_t > projectile_esp_clr{ &holder_, fnv( "visuals_projectile_esp_clr" ), clr_t( 255, 255, 255, 180 ) };
- con_var< clr_t > building_esp_clr{ &holder_, fnv( "visuals_building_esp_clr" ), clr_t( 255, 255, 255, 180 ) };
- con_var< bool > fullbright{ &holder_, fnv( "visuals_fullbright" ), false };
- con_var< bool > objective_info{ &holder_, fnv( "visuals_objective_info" ), false }; //objective_info
-
- //local
- con_var< bool > draw_spread{ &holder_, fnv( "misc_draw_spread" ), false };
- con_var< bool > grenade_prediction{ &holder_, fnv( "visuals_grenade_prediction" ), false };
- con_var< bool > spec_list{ &holder_, fnv( "visuals_spec_list" ), false };
-
- bool active = true;
- } visuals;
-
- struct {
- con_var< bool > watermark{ &holder_, fnv( "misc_watermark" ), false };
- con_var< bool > bunny_hop{ &holder_, fnv( "misc_bhop" ), false };
- con_var< bool > auto_strafe{ &holder_, fnv( "misc_autostrafe" ), false };
- con_var< int > viewmodel_fov{ &holder_, fnv( "misc_viewmodel_fov" ), 0 };
- con_var< int > fov_changer{ &holder_, fnv( "fov_changer" ), 90 };
- con_var< bool > thirdperson{ &holder_, fnv( "misc_thirdperson" ), false };
- con_var< int > thirdperson_key{ &holder_, fnv( "misc_tp_key" ), 0 };
-
- con_var< bool > no_recoil{ &holder_, fnv( "misc_no_recoil" ), false };
- con_var< bool > no_sound{ &holder_, fnv( "misc_no_sound" ), false };
- con_var< bool > no_scope{ &holder_, fnv( "misc_no_scope" ), false };
- con_var< bool > transparent_vm{ &holder_, fnv( "misc_transparent_vm" ), false };
- con_var< bool > hide_from_obs{ &holder_, fnv( "misc_hide_from_obs" ), false };
- con_var< bool > disable_post_process{ &holder_, fnv( "misc_disable_post_process" ), false };
-
- bool recorder_enable = false;
- } misc;
-
- struct {
- con_var< uint8_t > menu_color_1r{ &holder_, fnv( "menu_color_1r" ), 231 };
- con_var< uint8_t > menu_color_1g{ &holder_, fnv( "menu_color_1g" ), 105 };
- con_var< uint8_t > menu_color_1b{ &holder_, fnv( "menu_color_1b" ), 105 };
-
- con_var< uint8_t > menu_color_2r{ &holder_, fnv( "menu_color_2r" ), 0xf4 };
- con_var< uint8_t > menu_color_2g{ &holder_, fnv( "menu_color_2g" ), 0x7c };
- con_var< uint8_t > menu_color_2b{ &holder_, fnv( "menu_color_2b" ), 0xa8 };
-
- bool auto_class_settings = false;
- bool anti_untrusted = true;
- bool open = false;
- bool logs_enable = false;
- int cur_setting = 0;
- } menu;
- };
-}
-
-extern data::c_settings g_settings;
\ No newline at end of file diff --git a/tf2/shut_down.cpp b/tf2/shut_down.cpp deleted file mode 100644 index 149fbf6..0000000 --- a/tf2/shut_down.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "hooks.h"
-#include "chams.h"
-#include "base_cheat.h"
-
-void __fastcall hooks::shut_down( void* ecx_, void* edx_ ) {
- static auto original_fn = cl.m_chl->get_old_function< decltype( &shut_down ) >( 3 );
-
- cl.m_engine( )->ClientCmd_Unrestricted( xors( "host_writeconfig" ) );
- //fuck you
- abort( );
-
- //how about fuck you instead dumb fucking tentacle hentai lookin ass mofo
-
- //g_cheat.chams.m_materials.destroy_materials( );
- return original_fn( ecx_, edx_ );
-}
\ No newline at end of file diff --git a/tf2/simple_settings.cpp b/tf2/simple_settings.cpp deleted file mode 100644 index 9d1d1de..0000000 --- a/tf2/simple_settings.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "settings.h"
-
-SettingHolder data::holder_{ "fucking_nerd" };
-data::c_settings g_settings;
-
-#pragma warning(disable: 4996)
-
-void simple_save( const char* path, const char* name, const void* src, size_t size, const char* filename ) {
- auto buffer = reinterpret_cast< char* >( _alloca( size * 2 + 1 ) );
- auto data = reinterpret_cast< const uint8_t* >( src );
-
- for( size_t i = 0; i < size; i++ )
- sprintf( &buffer[ 2 * i ], "%02X", data[ i ] );
-
- WritePrivateProfileStringA( path, name, buffer, filename );
-}
-
-void simple_load( const char* path, const char* name, void* dest, size_t size, const char* filename ) {
- auto buffer = reinterpret_cast< char* >( _alloca( size * 2 + 1 ) );
- auto data = reinterpret_cast< uint8_t* >( dest );
-
- GetPrivateProfileStringA( path, name, "", buffer, size * 2 + 1, filename );
-
- if( *buffer == 0 )
- return;
-
- for( size_t i = 0; i < size; i++ ) {
- unsigned temp;
- sscanf( &buffer[ 2 * i ], "%02X", &temp );
- data[ i ] = temp;
- }
-}
\ No newline at end of file diff --git a/tf2/simple_settings.h b/tf2/simple_settings.h deleted file mode 100644 index db9b814..0000000 --- a/tf2/simple_settings.h +++ /dev/null @@ -1,204 +0,0 @@ -#pragma once
-#include <Windows.h>
-#include <memory>
-#include <vector>
-#include <string>
-
-#include "util.hpp"
-#include "fnv.hpp"
-
-//nama stuff
-extern void simple_save( const char* path, const char* name, const void* src, size_t size, const char* filename );
-extern void simple_load( const char* path, const char* name, void* dest, size_t size, const char* filename );
-
-class ISettingNode {
-public:
- virtual ~ISettingNode( ) = default;
-
- virtual void load( const char* path, const char* file ) = 0;
- virtual void save( const char* path, const char* file ) const = 0;
- virtual void register_( ISettingNode* node_ptr ) = 0;
- virtual bool has_nodes( ) { return false; }
- virtual hash_t get_hash( ) { return 0; }
-};
-
-class SettingHolder : public ISettingNode {
-public:
- __forceinline SettingHolder( const char* name ) : name_( name ) {}
- __forceinline SettingHolder( SettingHolder* holder_ptr, const char* name ) : name_( name ) { holder_ptr->register_( this ); }
-
- void register_( ISettingNode* node_ptr ) override {
- setting_nodes_.push_back( node_ptr );
- }
-
- void load( const char* path, const char* file ) override {
- char full_path[ 64 ];
- strcpy_s( full_path, path );
- strcat_s( full_path, "_" );
- strcat_s( full_path, name_ );
- for( auto x : setting_nodes_ )
- x->load( full_path, file );
- }
-
- void save( const char* path, const char* file ) const override {
- char full_path[ 64 ];
- strcpy_s( full_path, path );
- strcat_s( full_path, "_" );
- strcat_s( full_path, name_ );
- for( auto x : setting_nodes_ )
- x->save( full_path, file );
- }
-
- auto& get_nodes( ) {
- return setting_nodes_;
- }
-
- virtual bool has_nodes( ) {
- return true;
- }
-
-private:
- const char* name_;
- bool has_nodes_;
- std::vector<ISettingNode*> setting_nodes_;
-};
-
-class ISetting : public ISettingNode {
- void register_( ISettingNode* node_ptr ) override {}
-public:
- virtual void set( float value ) = 0;
- virtual void set( int value ) = 0;
- virtual void set( ulong_t value ) = 0;
- virtual std::string get_string( ) = 0;
- virtual hash_t get_hash( ) = 0;
- virtual std::string get_data_string( ) = 0;
- virtual void load_from_string( const std::string& ) = 0;
-};
-
-template < size_t L >
-class SettingString : ISetting {
-public:
- __forceinline SettingString( SettingHolder* holder_ptr, hash_t hash ) :
- m_name( name ), m_value( "" ) {
- holder_ptr->register_( this );
- };
-
- void load( const char* path, const char* file ) override {
- GetPrivateProfileStringA( path, std::to_string( m_name ).c_str( ), "", m_value, L, file );
- }
-
- void save( const char* path, const char* file ) const override {
- WritePrivateProfileStringA( path, std::to_string( m_name ).c_str( ), m_value, file );
- }
-
- char* get( ) {
- return m_value;
- }
-
-private:
- char m_value[ L ];
- hash_t m_name;
-};
-
-template < typename T >
-class con_var : public ISetting {
-public:
- __forceinline con_var( SettingHolder* holder_ptr, hash_t name ) :
- name_( name ),
- is_float_( std::is_floating_point_v< T > ),
- is_integral_( std::is_integral_v< T > ) {
- holder_ptr->register_( this );
- }
- __forceinline con_var( SettingHolder* holder_ptr, hash_t name, const T& rhs ) :
- value_( rhs ),
- name_( name ),
- is_float_( std::is_floating_point_v< T > ),
- is_integral_( std::is_integral_v< T > ) {
- holder_ptr->register_( this );
- }
-
- void load( const char* path, const char* file ) override { simple_load( path, std::to_string( name_ ).c_str( ), &value_, sizeof( value_ ), file ); }
-
- void save( const char* path, const char* file ) const override { simple_save( path, std::to_string( name_ ).c_str( ), &value_, sizeof( value_ ), file ); }
-
- __forceinline operator T&( ) { return value_; }
- __forceinline T* operator &( ) { return &value_; }
-
- __forceinline T& operator ()( ) { return value_; }
-
- virtual std::string get_string( ) {
- if constexpr( std::is_arithmetic_v< T > ) {
- return std::to_string( value_ );
- }
- else {
- return util::to_hex_str( *( ulong_t* )( &value_ ) );
- }
- }
-
- virtual void set( float value ) {
- if constexpr( std::is_arithmetic_v< T > ) {
- value_ = ( T )( value );
- }
- }
-
- virtual void set( int value ) {
- if constexpr( std::is_arithmetic_v< T > ) {
- value_ = ( T )( value );
- }
- else {
- value_ = *( T* )( &value );
- }
- }
-
- virtual void set( ulong_t value ) {
- if constexpr( sizeof( T ) == sizeof( ulong_t ) ) {
- *( ulong_t* )( &value_ ) = value;
- return;
- }
-
- memcpy( &value_, &value, sizeof( value_ ) );
- }
-
- virtual hash_t get_hash( ) {
- return name_;
- }
-
- __forceinline bool is_floating_point( ) {
- return is_float_;
- }
-
- __forceinline bool is_integral( ) {
- return is_integral_;
- }
-
- virtual std::string get_data_string( ) override {
- auto buffer = reinterpret_cast< char* >( _alloca( sizeof( T ) * 2 + 1 ) );
- auto data = reinterpret_cast< const uint8_t* >( &value_ );
-
- for( size_t i = 0; i < sizeof( T ); i++ )
- sprintf( &buffer[ 2 * i ], "%02X", data[ i ] );
-
- return buffer;
- }
-
- virtual void load_from_string( const std::string& str ) override {
- auto data = reinterpret_cast< uint8_t* >( &value_ );
- auto buffer = str.data( );
-
- if( *buffer == 0 )
- return;
-
- for( size_t i = 0; i < sizeof( T ); i++ ) {
- unsigned temp;
- sscanf( &buffer[ 2 * i ], "%02X", &temp );
- data[ i ] = temp;
- }
- }
-
-
-private:
- hash_t name_;
- bool is_float_;
- bool is_integral_;
- T value_;
-};
\ No newline at end of file diff --git a/tf2/strings.hpp b/tf2/strings.hpp deleted file mode 100644 index dfdeb8b..0000000 --- a/tf2/strings.hpp +++ /dev/null @@ -1,162 +0,0 @@ -//--------------------------------------------------------------------------------
-//-- XorCompileTime.hpp
-//
-// Author: frk
-// Date: 12.12.2015
-//
-//--------------------------------------------------------------------------------
-
-#pragma once
-#include <string>
-#include <array>
-#include <cstdarg>
-
-#define BEGIN_NAMESPACE( x ) namespace x {
-#define END_NAMESPACE }
-
-BEGIN_NAMESPACE( strenc )
-
-constexpr auto time = __TIME__;
-constexpr auto seed = static_cast< int >( time[ 7 ] ) + static_cast< int >( time[ 6 ] ) * 10 + static_cast< int >( time[ 4 ] ) * 60 + static_cast< int >( time[ 3 ] ) * 600 + static_cast< int >( time[ 1 ] ) * 3600 + static_cast< int >( time[ 0 ] ) * 36000;
-
-// 1988, Stephen Park and Keith Miller
-// "Random Number Generators: Good Ones Are Hard To Find", considered as "minimal standard"
-// Park-Miller 31 bit pseudo-random number generator, implemented with G. Carta's optimisation:
-// with 32-bit math and without division
-
-template < int N >
-struct RandomGenerator {
-private:
- static constexpr unsigned a = 16807; // 7^5
- static constexpr unsigned m = 2147483647; // 2^31 - 1
-
- static constexpr unsigned s = RandomGenerator< N - 1 >::value;
- static constexpr unsigned lo = a * ( s & 0xFFFF ); // Multiply lower 16 bits by 16807
- static constexpr unsigned hi = a * ( s >> 16 ); // Multiply higher 16 bits by 16807
- static constexpr unsigned lo2 = lo + ( ( hi & 0x7FFF ) << 16 ); // Combine lower 15 bits of hi with lo's upper bits
- static constexpr unsigned hi2 = hi >> 15; // Discard lower 15 bits of hi
- static constexpr unsigned lo3 = lo2 + hi;
-
-public:
- static constexpr unsigned max = m;
- static constexpr unsigned value = lo3 > m ? lo3 - m : lo3;
-};
-
-template <>
-struct RandomGenerator< 0 > {
- static constexpr unsigned value = seed;
-};
-
-template < int N, int M >
-struct RandomInt {
- static constexpr auto value = RandomGenerator< N + 1 >::value % M;
-};
-
-template < int N >
-struct RandomChar {
- static const char value = static_cast< char >( 1 + RandomInt< N, 0x7F - 1 >::value );
-};
-
-template < size_t N, int K >
-struct XorString {
-private:
- const char _key;
- std::array< char, N + 1 > _encrypted;
- bool decrypted = false;
-
- constexpr char enc( char c ) const {
- return c ^ _key;
- }
-
- char dec( char c ) const {
- return c ^ _key;
- }
-
-public:
- template < size_t... Is >
- constexpr __forceinline XorString( const char* const str, std::index_sequence< Is... > ) : _key( RandomChar< K >::value ), _encrypted{ enc( str[ Is ] )... } {
- }
-
- __forceinline const char* decrypt( void ) {
- if( !decrypted ) {
- for( size_t i = 0; i < N; ++i ) {
- _encrypted[ i ] = dec( _encrypted[ i ] );
- }
- _encrypted[ N ] = '\0';
- decrypted = true;
- }
- printf( "N: %u K: %d str: %s address: %08x\n", N, K, _encrypted.data( ), _encrypted.data( ) );
-
- return _encrypted.data( );
- }
-};
-
-//--------------------------------------------------------------------------------
-//-- Note: XorStr will __NOT__ work directly with functions like printf.
-// To work with them you need a wrapper function that takes a const char*
-// as parameter and passes it to printf and alike.
-//
-// The Microsoft Compiler/Linker is not working correctly with variadic
-// templates!
-//
-// Use the functions below or use std::cout (and similar)!
-//--------------------------------------------------------------------------------
-
-static auto w_printf = [ ]( const char* fmt, ... ) {
- va_list args;
- va_start( args, fmt );
- vprintf_s( fmt, args );
- va_end( args );
-};
-
-static auto w_printf_s = [ ]( const char* fmt, ... ) {
- va_list args;
- va_start( args, fmt );
- vprintf_s( fmt, args );
- va_end( args );
-};
-
-static auto w_sprintf = [ ]( char* buf, const char* fmt, ... ) {
- va_list args;
- va_start( args, fmt );
- vsprintf( buf, fmt, args );
- va_end( args );
-};
-
-static auto w_sprintf_s = [ ]( char* buf, size_t buf_size, const char* fmt, ... ) {
- va_list args;
- va_start( args, fmt );
- vsprintf_s( buf, buf_size, fmt, args );
- va_end( args );
-};
-
-//for compatibility with debug mode
-struct debug_ret {
-private:
- const char* ret;
-
-public:
- debug_ret( const char* str ) : ret( str ) { };
-
- auto decrypt( ) {
- return ret;
- }
-};
-
-constexpr size_t strlen_ct( const char* const str ) {
- size_t out = 1;
-
- for( ; str[ out ] != '\0'; ++out );
-
- return out;
-}
-
-#if 0
-#define xors_raw( s ) ( strenc::XorString< strenc::strlen_ct( s ), __COUNTER__ >( s, std::make_index_sequence< sizeof( s ) - 1>() ) )
-#define xors( s ) ( strenc::XorString< strenc::strlen_ct( s ), __COUNTER__ >( s, std::make_index_sequence< sizeof( s ) - 1>() ).decrypt() )
-#else
-#define xors_raw( s ) ( [ ]{ strenc::debug_ret ret{ s }; return ret; }( ) )
-#define xors( s ) ( s )
-#endif
-
-END_NAMESPACE
\ No newline at end of file diff --git a/tf2/test_cso2.vcxproj b/tf2/test_cso2.vcxproj deleted file mode 100644 index 52b6d12..0000000 --- a/tf2/test_cso2.vcxproj +++ /dev/null @@ -1,377 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="pHit|Win32">
- <Configuration>pHit</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="pHit|x64">
- <Configuration>pHit</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{DD486C1B-C911-42B8-AB24-A9102A23DC02}</ProjectGuid>
- <Keyword>Win32Proj</Keyword>
- <RootNamespace>test_cso2</RootNamespace>
- <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
- <ProjectName>tf2_base</ProjectName>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v141</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v141</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='pHit|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v141</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v141</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v141</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='pHit|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v141</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="Shared">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='pHit|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='pHit|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)\bin\</OutDir>
- <IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
- <LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86;$(LibraryPath)</LibraryPath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)\bin\$(Configuration)\</OutDir>
- <IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
- <LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86;$(LibraryPath)</LibraryPath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='pHit|Win32'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)\bin\$(Configuration)\</OutDir>
- <IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
- <LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86;$(LibraryPath)</LibraryPath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='pHit|x64'">
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level2</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;TEST_CSO2_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MultiProcessorCompilation>true</MultiProcessorCompilation>
- <MinimalRebuild>false</MinimalRebuild>
- <AdditionalOptions>/Zc:threadSafeInit- %(AdditionalOptions) /std:c++latest</AdditionalOptions>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;TEST_CSO2_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/Zc:threadSafeInit- /std:c++latest %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;TEST_CSO2_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\HL-SDK\mp\game\shared;C:\HL-SDK\mp\game\client;C:\HL-SDK\mp\common;C:\HL-SDK\mp\common\xbox;C:\HL-SDK\mp\public\tier3;C:\HL-SDK\mp\public\tier2;C:\HL-SDK\mp\public\tier1;C:\HL-SDK\mp\public\tier0;C:\HL-SDK\mp\public;C:\HL-SDK\mp\tier1</AdditionalIncludeDirectories>
- <AdditionalOptions>/Zc:threadSafeInit- %(AdditionalOptions) /std:c++latest</AdditionalOptions>
- <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='pHit|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;TEST_CSO2_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\HL-SDK\mp\game\shared;C:\HL-SDK\mp\game\client;C:\HL-SDK\mp\common;C:\HL-SDK\mp\common\xbox;C:\HL-SDK\mp\public\tier3;C:\HL-SDK\mp\public\tier2;C:\HL-SDK\mp\public\tier1;C:\HL-SDK\mp\public\tier0;C:\HL-SDK\mp\public;C:\HL-SDK\mp\tier1</AdditionalIncludeDirectories>
- <AdditionalOptions>/Zc:threadSafeInit- %(AdditionalOptions) /std:c++latest</AdditionalOptions>
- <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;TEST_CSO2_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\HL-SDK\mp\game\shared;C:\HL-SDK\mp\game\client;C:\HL-SDK\mp\common;C:\HL-SDK\mp\common\xbox;C:\HL-SDK\mp\public\tier3;C:\HL-SDK\mp\public\tier2;C:\HL-SDK\mp\public\tier1;C:\HL-SDK\mp\public\tier0;C:\HL-SDK\mp\public;C:\HL-SDK\mp\tier1</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='pHit|x64'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;TEST_CSO2_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>C:\HL-SDK\mp\game\shared;C:\HL-SDK\mp\game\client;C:\HL-SDK\mp\common;C:\HL-SDK\mp\common\xbox;C:\HL-SDK\mp\public\tier3;C:\HL-SDK\mp\public\tier2;C:\HL-SDK\mp\public\tier1;C:\HL-SDK\mp\public\tier0;C:\HL-SDK\mp\public;C:\HL-SDK\mp\tier1</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="aim_lagcomp.cpp" />
- <ClCompile Include="CBasePlayer.cpp" />
- <ClCompile Include="CBaseWeapon.cpp" />
- <ClCompile Include="chams.cpp" />
- <ClCompile Include="checksum_crc.cpp" />
- <ClCompile Include="chl_createmove.cpp" />
- <ClCompile Include="clientmode_createmove.cpp" />
- <ClCompile Include="console.cpp" />
- <ClCompile Include="ctx.cpp" />
- <ClCompile Include="d3d.cpp" />
- <ClCompile Include="d3d_sprite.cpp" />
- <ClCompile Include="directx.cpp" />
- <ClCompile Include="do_post_screen_space_effects.cpp" />
- <ClCompile Include="draw_model_execute.cpp" />
- <ClCompile Include="emit_sound.cpp" />
- <ClCompile Include="extra.cpp" />
- <ClCompile Include="factory.cpp" />
- <ClCompile Include="framestagenotify.cpp" />
- <ClCompile Include="get_viewmodel_fov.cpp" />
- <ClCompile Include="graphics.cpp" />
- <ClCompile Include="hooks.cpp" />
- <ClCompile Include="input_system.cpp" />
- <ClCompile Include="interfaces.cpp" />
- <ClCompile Include="KeyValues.cpp" />
- <ClCompile Include="listener.cpp" />
- <ClCompile Include="math.cpp" />
- <ClCompile Include="movement.cpp" />
- <ClCompile Include="netvars.cpp" />
- <ClCompile Include="on_screen_size_changed.cpp" />
- <ClCompile Include="override_mouse_input.cpp" />
- <ClCompile Include="override_view.cpp" />
- <ClCompile Include="paint.cpp" />
- <ClCompile Include="prediction.cpp" />
- <ClCompile Include="process_movement.cpp" />
- <ClCompile Include="projectile_pred.cpp" />
- <ClCompile Include="renderer.cpp" />
- <ClCompile Include="scene_end.cpp" />
- <ClCompile Include="shut_down.cpp" />
- <ClCompile Include="simple_settings.cpp" />
- <ClCompile Include="Source.cpp" />
- <ClCompile Include="aim.cpp" />
- <ClCompile Include="util.cpp" />
- <ClCompile Include="visuals_draw.cpp" />
- <ClCompile Include="visuals_local.cpp" />
- <ClCompile Include="visuals_players.cpp" />
- <ClCompile Include="visuals_world.cpp" />
- <ClCompile Include="window_procedure.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="base_cheat.h" />
- <ClInclude Include="ButtonCode_t.h" />
- <ClInclude Include="CAttribute.h" />
- <ClInclude Include="CBaseWeapon.h" />
- <ClInclude Include="chams.h" />
- <ClInclude Include="checksum_crc.h" />
- <ClInclude Include="CHLClient.h" />
- <ClInclude Include="CInput.hpp" />
- <ClInclude Include="ClientClass.h" />
- <ClInclude Include="color.hpp" />
- <ClInclude Include="conditions.h" />
- <ClInclude Include="console.hpp" />
- <ClInclude Include="con_alias.hpp" />
- <ClInclude Include="con_fn.hpp" />
- <ClInclude Include="ctx.hpp" />
- <ClInclude Include="CBasePlayer.h" />
- <ClInclude Include="d3d.hpp" />
- <ClInclude Include="d3d_sprite.hpp" />
- <ClInclude Include="dt_common.h" />
- <ClInclude Include="dt_recv.h" />
- <ClInclude Include="extra.h" />
- <ClInclude Include="factory.h" />
- <ClInclude Include="factory.hpp" />
- <ClInclude Include="fnv.hpp" />
- <ClInclude Include="GlowObject.h" />
- <ClInclude Include="graphics.h" />
- <ClInclude Include="icons.hpp" />
- <ClInclude Include="identity.h" />
- <ClInclude Include="IGameEventManager.h" />
- <ClInclude Include="IGameMovement.h" />
- <ClInclude Include="IMaterialSystem.hpp" />
- <ClInclude Include="input_system.hpp" />
- <ClInclude Include="KeyValues.h" />
- <ClInclude Include="IAppSystem.h" />
- <ClInclude Include="IClientEntity.h" />
- <ClInclude Include="ICvar.h" />
- <ClInclude Include="IInputSystem.h" />
- <ClInclude Include="IPlayerInfoManager.h" />
- <ClInclude Include="IVRenderView.h" />
- <ClInclude Include="listener.hpp" />
- <ClInclude Include="math.h" />
- <ClInclude Include="mem.hpp" />
- <ClInclude Include="movement.h" />
- <ClInclude Include="netvars.h" />
- <ClInclude Include="netvar_proxy.hpp" />
- <ClInclude Include="aim.h" />
- <ClInclude Include="prediction.h" />
- <ClInclude Include="projectile_pred.h" />
- <ClInclude Include="renderer.hpp" />
- <ClInclude Include="ScreenSpaceEffects.h" />
- <ClInclude Include="settings.h" />
- <ClInclude Include="simple_settings.h" />
- <ClInclude Include="strings.hpp" />
- <ClInclude Include="ui.h" />
- <ClInclude Include="ui_base_item.h" />
- <ClInclude Include="ui_button.h" />
- <ClInclude Include="ui_checkbox.h" />
- <ClInclude Include="ui_color_picker.h" />
- <ClInclude Include="ui_draw.h" />
- <ClInclude Include="ui_dropdown.h" />
- <ClInclude Include="ui_dropdown_item.h" />
- <ClInclude Include="ui_form.h" />
- <ClInclude Include="ui_key_picker.h" />
- <ClInclude Include="ui_label.h" />
- <ClInclude Include="ui_menu.h" />
- <ClInclude Include="ui_render.h" />
- <ClInclude Include="ui_slider.h" />
- <ClInclude Include="ui_tab_manager.h" />
- <ClInclude Include="ui_text_input.h" />
- <ClInclude Include="util.hpp" />
- <ClInclude Include="UtlMem.h" />
- <ClInclude Include="VFunc.h" />
- <ClInclude Include="hooks.h" />
- <ClInclude Include="IClientEntityList.h" />
- <ClInclude Include="IClientMode.h" />
- <ClInclude Include="IEngineTrace.h" />
- <ClInclude Include="IEngineVGui.h" />
- <ClInclude Include="interfaces.h" />
- <ClInclude Include="CGlobalVarsBase.h" />
- <ClInclude Include="IPanel.h" />
- <ClInclude Include="ISurface.h" />
- <ClInclude Include="IVDebugOverlay.h" />
- <ClInclude Include="IVEngineClient.h" />
- <ClInclude Include="sdk.h" />
- <ClInclude Include="pattern.hpp" />
- <ClInclude Include="vector.hpp" />
- <ClInclude Include="visuals.hpp" />
- <ClInclude Include="vmt.h" />
- <ClInclude Include="x86.hpp" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
\ No newline at end of file diff --git a/tf2/test_cso2.vcxproj.filters b/tf2/test_cso2.vcxproj.filters deleted file mode 100644 index d9d322d..0000000 --- a/tf2/test_cso2.vcxproj.filters +++ /dev/null @@ -1,428 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <ClCompile Include="interfaces.cpp" />
- <ClCompile Include="Source.cpp" />
- <ClCompile Include="aim.cpp">
- <Filter>features</Filter>
- </ClCompile>
- <ClCompile Include="CBasePlayer.cpp">
- <Filter>sdk</Filter>
- </ClCompile>
- <ClCompile Include="simple_settings.cpp">
- <Filter>data</Filter>
- </ClCompile>
- <ClCompile Include="math.cpp">
- <Filter>util</Filter>
- </ClCompile>
- <ClCompile Include="movement.cpp">
- <Filter>features</Filter>
- </ClCompile>
- <ClCompile Include="ctx.cpp">
- <Filter>context</Filter>
- </ClCompile>
- <ClCompile Include="framestagenotify.cpp">
- <Filter>hooks</Filter>
- </ClCompile>
- <ClCompile Include="paint.cpp">
- <Filter>hooks</Filter>
- </ClCompile>
- <ClCompile Include="graphics.cpp">
- <Filter>util</Filter>
- </ClCompile>
- <ClCompile Include="CBaseWeapon.cpp">
- <Filter>sdk</Filter>
- </ClCompile>
- <ClCompile Include="chl_createmove.cpp">
- <Filter>hooks</Filter>
- </ClCompile>
- <ClCompile Include="clientmode_createmove.cpp">
- <Filter>hooks</Filter>
- </ClCompile>
- <ClCompile Include="projectile_pred.cpp">
- <Filter>util</Filter>
- </ClCompile>
- <ClCompile Include="KeyValues.cpp">
- <Filter>sdk</Filter>
- </ClCompile>
- <ClCompile Include="prediction.cpp">
- <Filter>features</Filter>
- </ClCompile>
- <ClCompile Include="process_movement.cpp">
- <Filter>hooks</Filter>
- </ClCompile>
- <ClCompile Include="input_system.cpp">
- <Filter>util</Filter>
- </ClCompile>
- <ClCompile Include="d3d.cpp">
- <Filter>util</Filter>
- </ClCompile>
- <ClCompile Include="d3d_sprite.cpp">
- <Filter>util</Filter>
- </ClCompile>
- <ClCompile Include="directx.cpp">
- <Filter>hooks</Filter>
- </ClCompile>
- <ClCompile Include="factory.cpp" />
- <ClCompile Include="util.cpp">
- <Filter>util</Filter>
- </ClCompile>
- <ClCompile Include="renderer.cpp">
- <Filter>util</Filter>
- </ClCompile>
- <ClCompile Include="netvars.cpp">
- <Filter>data</Filter>
- </ClCompile>
- <ClCompile Include="hooks.cpp">
- <Filter>hooks</Filter>
- </ClCompile>
- <ClCompile Include="checksum_crc.cpp">
- <Filter>sdk</Filter>
- </ClCompile>
- <ClCompile Include="visuals_draw.cpp">
- <Filter>features</Filter>
- </ClCompile>
- <ClCompile Include="visuals_world.cpp">
- <Filter>features</Filter>
- </ClCompile>
- <ClCompile Include="visuals_players.cpp">
- <Filter>features</Filter>
- </ClCompile>
- <ClCompile Include="visuals_local.cpp">
- <Filter>features</Filter>
- </ClCompile>
- <ClCompile Include="override_mouse_input.cpp">
- <Filter>hooks</Filter>
- </ClCompile>
- <ClCompile Include="get_viewmodel_fov.cpp">
- <Filter>hooks</Filter>
- </ClCompile>
- <ClCompile Include="do_post_screen_space_effects.cpp">
- <Filter>hooks</Filter>
- </ClCompile>
- <ClCompile Include="override_view.cpp">
- <Filter>hooks</Filter>
- </ClCompile>
- <ClCompile Include="shut_down.cpp">
- <Filter>hooks</Filter>
- </ClCompile>
- <ClCompile Include="draw_model_execute.cpp">
- <Filter>hooks</Filter>
- </ClCompile>
- <ClCompile Include="scene_end.cpp">
- <Filter>hooks</Filter>
- </ClCompile>
- <ClCompile Include="on_screen_size_changed.cpp">
- <Filter>hooks</Filter>
- </ClCompile>
- <ClCompile Include="emit_sound.cpp">
- <Filter>hooks</Filter>
- </ClCompile>
- <ClCompile Include="window_procedure.cpp">
- <Filter>hooks</Filter>
- </ClCompile>
- <ClCompile Include="chams.cpp">
- <Filter>features</Filter>
- </ClCompile>
- <ClCompile Include="extra.cpp">
- <Filter>features</Filter>
- </ClCompile>
- <ClCompile Include="console.cpp">
- <Filter>util</Filter>
- </ClCompile>
- <ClCompile Include="listener.cpp">
- <Filter>hooks\hookers</Filter>
- </ClCompile>
- <ClCompile Include="aim_lagcomp.cpp">
- <Filter>features</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="interfaces.h" />
- <ClInclude Include="sdk.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="IClientMode.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="CHLClient.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="IEngineVGui.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="IClientEntityList.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="IEngineTrace.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="CGlobalVarsBase.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="IVDebugOverlay.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="IVEngineClient.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="CBasePlayer.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="IPanel.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="ISurface.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="VFunc.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="IClientEntity.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="netvars.h">
- <Filter>data</Filter>
- </ClInclude>
- <ClInclude Include="dt_common.h">
- <Filter>data</Filter>
- </ClInclude>
- <ClInclude Include="dt_recv.h">
- <Filter>data</Filter>
- </ClInclude>
- <ClInclude Include="aim.h">
- <Filter>features</Filter>
- </ClInclude>
- <ClInclude Include="simple_settings.h">
- <Filter>data</Filter>
- </ClInclude>
- <ClInclude Include="settings.h">
- <Filter>data</Filter>
- </ClInclude>
- <ClInclude Include="math.h">
- <Filter>util</Filter>
- </ClInclude>
- <ClInclude Include="base_cheat.h">
- <Filter>features</Filter>
- </ClInclude>
- <ClInclude Include="conditions.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="IPlayerInfoManager.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="ClientClass.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="movement.h">
- <Filter>features</Filter>
- </ClInclude>
- <ClInclude Include="ICvar.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="GlowObject.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="UtlMem.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="IInputSystem.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="IAppSystem.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="ButtonCode_t.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="fnv.hpp">
- <Filter>protection</Filter>
- </ClInclude>
- <ClInclude Include="ctx.hpp">
- <Filter>context</Filter>
- </ClInclude>
- <ClInclude Include="vmt.h">
- <Filter>util</Filter>
- </ClInclude>
- <ClInclude Include="hooks.h">
- <Filter>hooks</Filter>
- </ClInclude>
- <ClInclude Include="graphics.h">
- <Filter>util</Filter>
- </ClInclude>
- <ClInclude Include="factory.hpp">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="IVRenderView.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="CBaseWeapon.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="projectile_pred.h">
- <Filter>util</Filter>
- </ClInclude>
- <ClInclude Include="CAttribute.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="ScreenSpaceEffects.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="KeyValues.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="prediction.h">
- <Filter>features</Filter>
- </ClInclude>
- <ClInclude Include="IGameMovement.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="ui.h">
- <Filter>menu</Filter>
- </ClInclude>
- <ClInclude Include="ui_base_item.h">
- <Filter>menu</Filter>
- </ClInclude>
- <ClInclude Include="ui_button.h">
- <Filter>menu</Filter>
- </ClInclude>
- <ClInclude Include="ui_checkbox.h">
- <Filter>menu</Filter>
- </ClInclude>
- <ClInclude Include="ui_color_picker.h">
- <Filter>menu</Filter>
- </ClInclude>
- <ClInclude Include="ui_draw.h">
- <Filter>menu</Filter>
- </ClInclude>
- <ClInclude Include="ui_dropdown.h">
- <Filter>menu</Filter>
- </ClInclude>
- <ClInclude Include="ui_dropdown_item.h">
- <Filter>menu</Filter>
- </ClInclude>
- <ClInclude Include="ui_form.h">
- <Filter>menu</Filter>
- </ClInclude>
- <ClInclude Include="ui_key_picker.h">
- <Filter>menu</Filter>
- </ClInclude>
- <ClInclude Include="ui_label.h">
- <Filter>menu</Filter>
- </ClInclude>
- <ClInclude Include="ui_menu.h">
- <Filter>menu</Filter>
- </ClInclude>
- <ClInclude Include="ui_render.h">
- <Filter>menu</Filter>
- </ClInclude>
- <ClInclude Include="ui_slider.h">
- <Filter>menu</Filter>
- </ClInclude>
- <ClInclude Include="ui_tab_manager.h">
- <Filter>menu</Filter>
- </ClInclude>
- <ClInclude Include="ui_text_input.h">
- <Filter>menu</Filter>
- </ClInclude>
- <ClInclude Include="input_system.hpp">
- <Filter>util</Filter>
- </ClInclude>
- <ClInclude Include="util.hpp">
- <Filter>util</Filter>
- </ClInclude>
- <ClInclude Include="icons.hpp">
- <Filter>util</Filter>
- </ClInclude>
- <ClInclude Include="d3d.hpp">
- <Filter>util</Filter>
- </ClInclude>
- <ClInclude Include="d3d_sprite.hpp">
- <Filter>util</Filter>
- </ClInclude>
- <ClInclude Include="factory.h" />
- <ClInclude Include="console.hpp" />
- <ClInclude Include="strings.hpp">
- <Filter>protection</Filter>
- </ClInclude>
- <ClInclude Include="x86.hpp">
- <Filter>util</Filter>
- </ClInclude>
- <ClInclude Include="con_fn.hpp" />
- <ClInclude Include="con_alias.hpp" />
- <ClInclude Include="pattern.hpp">
- <Filter>util</Filter>
- </ClInclude>
- <ClInclude Include="vector.hpp">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="color.hpp">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="renderer.hpp">
- <Filter>util</Filter>
- </ClInclude>
- <ClInclude Include="netvar_proxy.hpp">
- <Filter>hooks\hookers</Filter>
- </ClInclude>
- <ClInclude Include="IMaterialSystem.hpp">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="checksum_crc.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="IGameEventManager.h">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="mem.hpp">
- <Filter>util</Filter>
- </ClInclude>
- <ClInclude Include="CInput.hpp">
- <Filter>sdk</Filter>
- </ClInclude>
- <ClInclude Include="visuals.hpp">
- <Filter>features</Filter>
- </ClInclude>
- <ClInclude Include="chams.h">
- <Filter>features</Filter>
- </ClInclude>
- <ClInclude Include="identity.h">
- <Filter>features</Filter>
- </ClInclude>
- <ClInclude Include="extra.h">
- <Filter>features</Filter>
- </ClInclude>
- <ClInclude Include="listener.hpp">
- <Filter>hooks\hookers</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <Filter Include="sdk">
- <UniqueIdentifier>{3662005c-363b-4165-98d1-4cd08efa5aec}</UniqueIdentifier>
- </Filter>
- <Filter Include="data">
- <UniqueIdentifier>{9b96d956-b922-4bc1-a7fd-448a79007f56}</UniqueIdentifier>
- </Filter>
- <Filter Include="features">
- <UniqueIdentifier>{971e8665-630e-40f6-a426-a9c59476dd28}</UniqueIdentifier>
- </Filter>
- <Filter Include="util">
- <UniqueIdentifier>{7abe95b2-6694-4252-9044-b0a3b6ca500d}</UniqueIdentifier>
- </Filter>
- <Filter Include="menu">
- <UniqueIdentifier>{280b6489-8704-41f7-98d1-76e4510e59b1}</UniqueIdentifier>
- </Filter>
- <Filter Include="context">
- <UniqueIdentifier>{45735c33-3420-447c-9257-46d489466c79}</UniqueIdentifier>
- </Filter>
- <Filter Include="hooks">
- <UniqueIdentifier>{8f34dc36-01d7-4458-a53a-f3698e843b94}</UniqueIdentifier>
- </Filter>
- <Filter Include="protection">
- <UniqueIdentifier>{bf4d8bec-9f02-4e3b-99bd-a328befb5cd3}</UniqueIdentifier>
- </Filter>
- <Filter Include="hooks\hookers">
- <UniqueIdentifier>{2c764ae7-bdc8-4a36-b752-8ac395c2c006}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
-</Project>
\ No newline at end of file diff --git a/tf2/ui.h b/tf2/ui.h deleted file mode 100644 index bafb2ce..0000000 --- a/tf2/ui.h +++ /dev/null @@ -1,374 +0,0 @@ -#pragma once
-#include "ui_base_item.h"
-#include "ui_menu.h"
-#include "ui_form.h"
-#include "ui_render.h"
-#include "ui_checkbox.h"
-#include "ui_tab_manager.h"
-#include "ui_slider.h"
-#include "ui_dropdown.h"
-#include "ui_key_picker.h"
-#include "ui_button.h"
-#include "ui_color_picker.h"
-#include "ui_label.h"
-//#include "ui_itemlist.h"
-//#include "ui_itemlist_def.h"
-
-#include "settings.h"
-#include "base_cheat.h"
-
-namespace ui
-{
- int current_category = 0;
-
- static std::string date_str = __DATE__;
- auto menu = std::make_shared< ui::c_menu >( 10, 10, 580, 470, xors( "quebot" ),
- __DATE__ );
-
- static void render( ) {
- static bool was_setup = false;
- if( !was_setup ) {
- std::transform( date_str.begin( ), date_str.end( ), date_str.begin( ),
- [ ]( char c ) { return ::tolower( c ); }
- );
-
- menu.reset( );
- menu = std::make_shared< ui::c_menu >( 10, 10, 580, 470, xors( "moneybot - tf2" ),
- date_str.c_str( ) );
- auto tab_sheet = std::make_shared< ui::c_tab_manager >( );
-
- //todo: replace with icons?
- auto tab_legit = std::make_shared< ui::c_tab_sheet >( xors( "legit" ), &icons::sprite_legit ); {
- auto subtab_sheet = std::make_shared< ui::c_subtab_manager >( );
-
- auto subtab_main = std::make_shared< ui::c_tab_sheet >( xors( "main" ) ); {
- auto left_column = std::make_shared< ui::base_item >( 0, 0, 0, 0 );
- auto right_column = std::make_shared< ui::base_item >( 220, -5, 0, 0 );
-
- auto main_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "main" ) ); {
- main_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "enabled" ), &g_settings.legit.enabled ) );
- auto activation_dropdown = std::make_shared< ui::c_dropdown< > >(
- 0, 0, 120, xors( "activation type" ),
- &g_settings.legit.activation_type,
- &ui::dropdowns::activation_types_aimbot );
- activation_dropdown->add_item( std::make_shared< ui::c_key_picker_small >( 195, 0, &g_settings.legit.key ) )->set_cond(
- [ ]( ) { return g_settings.legit.activation_type == 1; } );
- main_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "friendlies" ), &g_settings.legit.friendlies ) );
- main_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "aim assist" ), &g_settings.legit.assist ) );
-
- main_form->add_item( activation_dropdown );
- }
-
- auto smooth_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "smoothing" ) ); {
- smooth_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "dynamic smoothing" ), &g_settings.legit.dynamic_smoothing ) );
- smooth_form->add_item( std::make_shared< ui::c_slider< size_t > >( 0, 0, 120, 2, 28, xors( "sample size" ), &g_settings.legit.sample_size ) );
- smooth_form->add_item( std::make_shared< ui::c_slider< float > >( 0, 0, 120, 0.1f, 2.0f, xors( "multiplier" ), &g_settings.legit.smooth_factor ) );
- }
-
- auto backtracking_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "backtracking" ) ); {
- backtracking_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "enabled" ), &g_settings.legit.backtracking ) );
- backtracking_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "target" ), &g_settings.legit.backtracking_target ) );
- auto visualize_checkbox = backtracking_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "visualize" ), &g_settings.legit.backtracking_visualize ) );
- visualize_checkbox->add_item( std::make_shared< ui::c_color_picker >( 175, 2, 15, &g_settings.legit.backtracking_col ) );
- visualize_checkbox->set_cond( [ ] { return !g_settings.misc.hide_from_obs( ); } );
-
- backtracking_form->add_item( std::make_shared< ui::c_slider< float > >( 0, 0, 120, 0.f, 50.f, xors( "max fov" ), &g_settings.legit.backtracking_fov ) );
- backtracking_form->add_item( std::make_shared< ui::c_slider< float > >( 0, 0, 120, 0.f, 0.2f, xors( "max time" ), &g_settings.legit.backtracking_time, "s" ) );
- }
-
- auto triggerbot_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "triggerbot" ) ); {
- triggerbot_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "enabled" ), &g_settings.legit.triggerbot ) )->add_item(
- std::make_shared< ui::c_key_picker_small >( 195, 0, &g_settings.legit.trigger_key ) );
-
- triggerbot_form->add_item( std::make_shared< ui::c_slider< float > >( 0, 0, 120, 0.f, 0.2f, xors( "trigger delay" ), &g_settings.legit.trigger_delay, "s" )
- )->set_cond( [ ] { return g_settings.legit.triggerbot( ); } );
- }
-
- left_column->add_item( main_form );
- left_column->add_item( smooth_form );
-
- right_column->add_item( backtracking_form );
- right_column->add_item( triggerbot_form );
-
- subtab_main->add_item( left_column );
- subtab_main->add_item( right_column );
- }
-
- //make a subtab for each weapon type?
- auto subtab_weapons = std::make_shared< ui::c_tab_sheet >( xors( "weapons" ) ); {
- auto left_column = std::make_shared< ui::base_item >( 0, 0, 0, 0 );
- auto right_column = std::make_shared< ui::base_item >( 220, -5, 0, 0 );
-
- auto general_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "general" ) ); {
- general_form->add_item( std::make_shared< ui::c_slider< float > >( 0, 0, 140, 0.f, 40.f, xors( "fov" ), &g_settings.legit.primary.m_fov ) );
- general_form->add_item( std::make_shared< ui::c_slider< float > >( 0, 0, 140, 0.f, 50.f, xors( "speed" ), &g_settings.legit.primary.m_speed ) );
- general_form->add_item( std::make_shared< ui::c_dropdown< > >( 0, 0, 120, xors( "bone - dropdown" ), &g_settings.legit.primary.m_bone, &ui::dropdowns::aimbot_bone ) );
- general_form->add_item( std::make_shared< ui::c_slider< float > >( 0, 0, 140, 0.f, 1.f, xors( "assist strength" ), &g_settings.legit.primary.m_assist_strength ) );
- }
-
- auto snipers_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "snipers" ) ); {
- snipers_form->add_item( std::make_shared< ui::c_slider< float > >( 0, 0, 140, 0.f, 40.f, xors( "fov" ), &g_settings.legit.melee.m_fov ) );
- snipers_form->add_item( std::make_shared< ui::c_slider< float > >( 0, 0, 140, 0.f, 50.f, xors( "speed" ), &g_settings.legit.melee.m_speed ) );
- snipers_form->add_item( std::make_shared< ui::c_dropdown< > >( 0, 0, 120, xors( "bone - dropdown" ), &g_settings.legit.melee.m_bone, &ui::dropdowns::aimbot_bone ) );
- snipers_form->add_item( std::make_shared< ui::c_slider< float > >( 0, 0, 140, 0.f, 1.f, xors( "assist strength" ), &g_settings.legit.melee.m_assist_strength ) );
- }
-
- auto rifles_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "rifles" ) ); {
- rifles_form->add_item( std::make_shared< ui::c_slider< float > >( 0, 0, 140, 0.f, 40.f, xors( "fov" ), &g_settings.legit.secondary.m_fov ) );
- rifles_form->add_item( std::make_shared< ui::c_slider< float > >( 0, 0, 140, 0.f, 50.f, xors( "speed" ), &g_settings.legit.secondary.m_speed ) );
- rifles_form->add_item( std::make_shared< ui::c_dropdown< > >( 0, 0, 120, xors( "bone - dropdown" ), &g_settings.legit.secondary.m_bone, &ui::dropdowns::aimbot_bone ) );
- rifles_form->add_item( std::make_shared< ui::c_slider< float > >( 0, 0, 140, 0.f, 1.f, xors( "assist strength" ), &g_settings.legit.secondary.m_assist_strength ) );
- }
-
-
-
- left_column->add_item( general_form );
- left_column->add_item( snipers_form );
- right_column->add_item( rifles_form );
-
- subtab_weapons->add_item( left_column );
- subtab_weapons->add_item( right_column );
- }
-
- subtab_sheet->add_item( subtab_weapons );
- subtab_sheet->add_item( subtab_main );
-
- tab_legit->add_item( subtab_sheet );
- }
-
-
- auto tab_rage = std::make_shared< ui::c_tab_sheet >( xors( "rage" ), &icons::sprite_rage ); {
-
-
-
- }
-
-
- auto tab_visuals = std::make_shared< ui::c_tab_sheet >( xors( "visuals" ), &icons::sprite_visuals ); {
- auto subtab_sheet = std::make_shared< ui::c_subtab_manager >( );
-
- auto subtab_players = std::make_shared< ui::c_tab_sheet >( xors( "players" ) ); {
- auto left_column = std::make_shared< ui::base_item >( 0, 0, 0, 0 );
- auto right_column = std::make_shared< ui::base_item >( 220, -5, 0, 0 );
-
- auto main_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "main" ) ); {
- main_form->add_item( std::make_shared< ui::c_dropdown< > >( 0, 0, 120, xors( "activation type" ), &g_settings.visuals.activation_type, &dropdowns::activation_type_visuals ) )->add_item(
- std::make_shared< ui::c_key_picker_small >( 195, 0, &g_settings.visuals.key ) )->set_cond( [ ]( ) { return g_settings.visuals.activation_type > 1; } );
- main_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "friendlies" ), &g_settings.visuals.friendlies ) );
- }
-
- auto player_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "players" ) ); {
- auto box_checkbox = player_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "box" ), &g_settings.visuals.box ) );
- box_checkbox->add_item( std::make_shared< ui::c_color_picker >( 160, 4, 15, &g_settings.visuals.box_enemy( ) ) );
- box_checkbox->add_item( std::make_shared< ui::c_color_picker >( 180, -9, 15, &g_settings.visuals.box_friendly( ) ) )->set_cond(
- [ ]( ) { return g_settings.visuals.friendlies; } );
-
- auto glow_checkbox = player_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "glow - test" ), &g_settings.visuals.glow ) );
- glow_checkbox->add_item( std::make_shared< ui::c_color_picker >( 160, 2, 15, &g_settings.visuals.glow_enemy ) );
- glow_checkbox->add_item( std::make_shared< ui::c_color_picker >( 180, -11, 15, &g_settings.visuals.glow_friendly ) )->set_cond(
- [ ]( ) { return g_settings.visuals.friendlies || g_settings.visuals.chams.friendlies; } );
- glow_checkbox->set_cond( [ ]( ) { return !g_settings.misc.hide_from_obs; } );
-
- auto skeleton_checkbox = player_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "skeleton" ), &g_settings.visuals.skeleton ) );
- skeleton_checkbox->add_item( std::make_shared< ui::c_color_picker >( 160, 2, 15, &g_settings.visuals.skeleton_enemy ) );
- skeleton_checkbox->add_item( std::make_shared< ui::c_color_picker >( 180, -11, 15, &g_settings.visuals.skeleton_friendly ) )->set_cond(
- [ ]( ) { return g_settings.visuals.friendlies; } );
-
- player_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "dormant" ), &g_settings.visuals.dormant ) );
- player_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "health" ), &g_settings.visuals.health ) );
- player_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "name" ), &g_settings.visuals.name ) );
- player_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "weapon" ), &g_settings.visuals.weapon ) );
-
- player_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "ammo" ), &g_settings.visuals.ammo ) );
- player_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "conditions - close" ), &g_settings.visuals.conditions ) );
- player_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "class" ), &g_settings.visuals.player_class ) );
- //player_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "resolver indicator - when i add hvh" ), &g_settings.visuals.resolver_indicator ) );
- player_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "sound" ), &g_settings.visuals.sound ) )->set_cond( [ ]( ) { return !g_settings.misc.hide_from_obs; } );
- player_form->add_item( std::make_shared< ui::c_slider< int > >( 0, 0, 120, 220, 500, &g_settings.visuals.sound_range ) )->set_cond( [ ]( ) { return g_settings.visuals.sound && !g_settings.misc.hide_from_obs; } );
- }
-
- auto hud_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "hud" ) ); {
- hud_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "out of pov - weird angles" ), &g_settings.visuals.out_of_pov ) );
- hud_form->add_item( std::make_shared< ui::c_slider< float > >( 0, 0, 120, 0.25f, 1.f, &g_settings.visuals.out_of_pov_radius )
- )->set_cond( [ ]( ) { return g_settings.visuals.out_of_pov( ); } );
-
- hud_form->add_item( std::make_shared< ui::c_slider< int > >( 0, 0, 120, 15, 40, &g_settings.visuals.out_of_pov_size, xors( "px" ) )
- )->set_cond( [ ]( ) { return g_settings.visuals.out_of_pov( ); } );
- //hud_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "hitmarkers - not done" ), &g_settings.visuals.hitmarkers ) ); no need
- hud_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "spectator list" ), &g_settings.visuals.spec_list ) );
- }
-
- auto other_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "other" ) ); {
- //other_form->add_item( std::make_shared< ui::c_dropdown< > >( 0, 0, 120, xors( "bullet tracers - not done" ), &g_settings.visuals.bullet_tracers, &dropdowns::tracer_type ) ); no bullet_impact event or any equivalent
- other_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "floating ragdolls - hopefully" ), &g_settings.visuals.floating_ragdolls ) );
- }
-
- auto chams_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "chams - crash" ), 170 ); {
- chams_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "enabled" ), &g_settings.visuals.chams.enabled( ) ) );
- chams_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "through walls" ), &g_settings.visuals.chams.ignore_z( ) ) );
- chams_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "friendlies" ), &g_settings.visuals.chams.friendlies( ) ) );
- chams_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "flat" ), &g_settings.visuals.chams.flat( ) ) )->set_cond( [ ]( ) { return !g_settings.misc.hide_from_obs( ); } );
- chams_form->add_item( std::make_shared< ui::c_slider< float > >( 0, 0, 120, 0.f, 1.f, xors( "reflectivity" ), &g_settings.visuals.chams.reflectivity )
- )->set_cond( [ ]( ) { return !g_settings.visuals.chams.flat && !g_settings.misc.hide_from_obs; } );
-
- chams_form->add_item( std::make_shared< ui::c_slider< float > >( 0, 0, 120, 0.f, 1.f, xors( "shine" ), &g_settings.visuals.chams.shine )
- )->set_cond( [ ]( ) { return !g_settings.visuals.chams.flat && !g_settings.misc.hide_from_obs; } );
-
- chams_form->add_item( std::make_shared< ui::c_color_picker >( 0, 0, 120, xors( "friendlies visible" ), &g_settings.visuals.chams.color_visible_friendly( ) ) )->set_cond(
- [ ]( ) { return g_settings.visuals.chams.friendlies( ); } );
- chams_form->add_item( std::make_shared< ui::c_color_picker >( 0, 0, 120, xors( "friendlies hidden" ), &g_settings.visuals.chams.color_hidden_friendly( ) ) )->set_cond(
- [ ]( ) { return g_settings.visuals.chams.friendlies( ) && g_settings.visuals.chams.ignore_z( ); } );
- chams_form->add_item( std::make_shared< ui::c_color_picker >( 0, 0, 120, xors( "enemies visible" ), &g_settings.visuals.chams.color_visible_enemy( ) ) );
- chams_form->add_item( std::make_shared< ui::c_color_picker >( 0, 0, 120, xors( "enemies hidden" ), &g_settings.visuals.chams.color_hidden_enemy( ) ) )->set_cond(
- [ ]( ) { return g_settings.visuals.chams.ignore_z( ); } );
- }
-
- chams_form->set_cond( [ ]( ) { return !g_settings.misc.hide_from_obs( ); } );
-
- left_column->add_item( main_form );
- left_column->add_item( player_form );
-
- right_column->add_item( hud_form );
- right_column->add_item( other_form );
- right_column->add_item( chams_form );
-
- subtab_players->add_item( left_column );
- subtab_players->add_item( right_column );
- }
-
- auto subtab_other = std::make_shared< ui::c_tab_sheet >( xors( "other" ) ); {
- auto left_column = std::make_shared< ui::base_item >( 0, 0, 0, 0 );
- auto right_column = std::make_shared< ui::base_item >( 220, -5, 0, 0 );
-
- auto world_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "world" ) ); {
- world_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "world modulate - not done" ), &g_settings.visuals.world_modulate )
- )->set_cond( [ ]( ) { return !g_settings.misc.hide_from_obs( ); } );
- world_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "night mode - not done" ), &g_settings.visuals.night_mode )
- )->set_cond( [ ]( ) { return g_settings.visuals.world_modulate && !g_settings.misc.hide_from_obs( ); } );
- world_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "transparent props - maybe" ), &g_settings.visuals.transparent_props ) //maybe?
- )->set_cond( [ ]( ) { return g_settings.visuals.world_modulate && !g_settings.misc.hide_from_obs( ); } );
-
- world_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "fullbright - not done" ), &g_settings.visuals.fullbright ) );
- world_form->add_item( std::make_shared< ui::c_dropdown< > >( 0, 0, 120, xors( "projectiles" ), &g_settings.visuals.projectile_esp, &dropdowns::world_esp_type )
- )->add_item( std::make_shared< ui::c_color_picker >( 180, 4, 15, &g_settings.visuals.building_esp_clr( ) ) );
-
- world_form->add_item( std::make_shared< ui::c_dropdown< > >( 0, 0, 120, xors( "buildings" ), &g_settings.visuals.building_esp, &dropdowns::world_esp_type )
- )->add_item( std::make_shared< ui::c_color_picker >( 180, 4, 15, &g_settings.visuals.building_esp_clr( ) ) );
-
- world_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "building owner - not done" ), &g_settings.visuals.building_owner )
- )->set_cond( [ ]( ) { return g_settings.visuals.building_esp == 1 || g_settings.visuals.building_esp == 3; } );
- }
-
- //auto local_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "local player" ) ); {
- // local_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "projectile prediction - hopefully" ), &g_settings.visuals.grenade_prediction( ) ) );
- //}
-
- auto view_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "view" ) ); {
- view_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "watermark" ), &g_settings.misc.watermark ) );
- view_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "thirdperson - crash" ), &g_settings.misc.thirdperson( ) ) )->add_item(
- std::make_shared< ui::c_key_picker_small >( 195, 0, &g_settings.misc.thirdperson_key )
- );
- view_form->add_item( std::make_shared< ui::c_slider< int > >( 0, 0, 120, 0, 40, xors( "viewmodel fov" ), &g_settings.misc.viewmodel_fov( ) ) );
- view_form->add_item( std::make_shared< ui::c_slider< int > >( 0, 0, 120, 90, 130, xors( "view fov - broken" ), &g_settings.misc.fov_changer( ) ) );
- }
-
- auto removals_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "removals" ) ); {
- removals_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "no scope - not done" ), &g_settings.misc.no_scope ) );
- removals_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "transparent viewmodel - hopefully" ), &g_settings.misc.transparent_vm ) );
- removals_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "no post processing - not done" ), &g_settings.misc.disable_post_process ) );
- }
-
- left_column->add_item( world_form );
- //left_column->add_item( local_form );
-
- right_column->add_item( view_form );
- right_column->add_item( removals_form );
-
- subtab_other->add_item( left_column );
- subtab_other->add_item( right_column );
- }
-
- subtab_sheet->add_item( subtab_other );
- subtab_sheet->add_item( subtab_players );
-
- tab_visuals->add_item( subtab_sheet );
- }
-
-
- auto tab_misc = std::make_shared< ui::c_tab_sheet >( xors( "miscellaneous" ), &icons::sprite_misc ); {
- auto subtab_sheet = std::make_shared< ui::c_subtab_manager >( );
-
- auto subtab_general = std::make_shared< ui::c_tab_sheet >( xors( "general" ) ); {
- auto column_left = subtab_general->add_item( std::make_shared< ui::base_item >( 0, 0, 0, 0 ) );
- auto column_right = subtab_general->add_item( std::make_shared< ui::base_item >( 220, -5, 0, 0 ) );
-
- auto movement_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "movement" ) ); {
- movement_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "auto strafe" ), &g_settings.misc.auto_strafe ) );
- movement_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "bhop" ), &g_settings.misc.bunny_hop( ) ) );
- }
-
- auto identity_form = std::make_shared< ui::c_form >( 0, 1, 215, 0, xors( "timeshift - not done" ) ); {
- //enabled (key)
- //on attack
- //value
- }
-
-
- auto helpers_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "helpers - not done" ) ); {
- //no push
- //auto backstab
- //
- }
-
- auto other_form = std::make_shared< ui::c_form >( 0, 0, 215, 0, xors( "other" ) ); {
- other_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "remove gun sounds" ), &g_settings.misc.no_sound ) );
- other_form->add_item( std::make_shared< ui::c_checkbox >( 0, 0, xors( "hide from obs" ), &g_settings.misc.hide_from_obs ) );
- //other_form->add_item( std::make_shared< ui::c_button >( 0, 0, 120, 20, xors( "unlock hidden cvars" ), [ ]( ) { g_cheat.extra.unlock_hidden_cvars( ); } ) );
- }
-
- column_left->add_item( movement_form );
- column_right->add_item( identity_form );
- column_right->add_item( helpers_form );
- column_left->add_item( other_form );
-
- }
- subtab_sheet->add_item( subtab_general );
-
- tab_misc->add_item( subtab_sheet );
- }
-
-
- auto tab_config = std::make_shared< ui::c_tab_sheet >( xors( "config" ), &icons::sprite_config ); {
- auto cfg_form = std::make_shared< ui::c_form >( 0, 10, 200, 93, xors( "config" ) );
- cfg_form->add_item( std::make_shared< ui::c_dropdown< > >( 0, 0, 180, xors( "setting" ), &g_settings.menu.cur_setting, &dropdowns::configs ) );
- cfg_form->add_item( std::make_shared< ui::c_button >( 0, 0, 85, 20, xors( "save" ), [ ]( ) { g_settings.save( ); } ) );
- cfg_form->add_item( std::make_shared< ui::c_button >( 95, -25, 85, 20, xors( "load" ), [ ]( ) { g_settings.load( ); } ) );
- //cfg_form->add_item( std::make_shared< ui::c_button >( 0, -25, 85, 20, xors( "to clipboard" ), [ ]( ) { g_settings.copy_to_clipboard( ); } ) );
- //cfg_form->add_item( std::make_shared< ui::c_button >( 95, -50, 85, 20, xors( "from clipboard" ), [ ]( ) { g_settings.load_from_clipboard( ); } ) );
- cfg_form->add_item( std::make_shared< ui::c_checkbox >( 0, -25, xors( "anti-untrusted" ), &g_settings.menu.anti_untrusted ) );
-
- tab_config->add_item( cfg_form );
- }
-
- tab_sheet->add_item( tab_config );
- tab_sheet->add_item( tab_misc );
- tab_sheet->add_item( tab_visuals );
- tab_sheet->add_item( tab_rage );
- tab_sheet->add_item( tab_legit );
-
- menu->add_item( tab_sheet );
-
- was_setup = true;
- }
-
- render_item( menu.get( ) );
-
- //reset the menu if home is pressed for debugging purposes
- if( g_input.is_key_pressed( KEYS_END ) ) {
- menu.reset( );
- menu = std::make_shared< c_menu >( 10, 10, 580, 470, xors( "golden cheat" ) );
- was_setup = false;
- }
-
- }
-}
\ No newline at end of file diff --git a/tf2/ui_base_item.h b/tf2/ui_base_item.h deleted file mode 100644 index 68c2198..0000000 --- a/tf2/ui_base_item.h +++ /dev/null @@ -1,164 +0,0 @@ -#pragma once
-#include <memory>
-#include <vector>
-#include <functional>
-
-#include "ui_draw.h"
-
-namespace ui
-{
- //the offset between each item
- constexpr int ITEM_OFFSET = 5;
-
- class base_item : public std::enable_shared_from_this< base_item > {
- public:
- base_item( ) { }
- base_item( int x, int y, int w, int h, const char* name = nullptr ) :
- m_x( x ), m_y( y ), m_width( w ), m_height( h ) {
- if( name ) {
- strcpy( m_text, name );
- }
- }
-
- virtual void render( ) { };
- virtual bool is_hovered( ) { return false; }
- virtual bool is_form( ) const { return false; }
-
- virtual void reset( ) {
- m_y_offset = 0;
- }
-
- virtual int get_total_height( ) const {
- return m_height;
- }
-
- void set_y_offset( int offset ) {
- m_y_offset = offset;
- }
-
- int get_y_offset( ) const {
- return m_y_offset;
- }
-
- auto add_item( std::shared_ptr< base_item > item ) {
- item.get( )->m_parent = shared_from_this( );
- m_items.emplace( m_items.begin( ), item );
-
- return item;
- }
-
- auto& get_items( ) { return m_items; }
- auto get_parent( ) { return m_parent; }
-
- virtual int x( ) const { return m_x; }
- virtual int y( ) const { return m_y; }
- virtual int w( ) const { return m_width; }
- virtual int h( ) const { return m_height; }
-
- void set_x( int x ) { m_x = x; }
- void set_y( int y ) { m_y = y; }
-
- void set_width( int w ) { m_width = w; }
- void set_height( int h ) { m_height = h; }
-
- bool get_visible( ) const {
- if( m_cond && !m_cond( ) ) {
- return false;
- }
-
- return m_visible;
- }
-
- void set_cond( std::function< bool( ) > func ) {
- m_cond = func;
- }
-
- void set_visible( bool vis ) { m_visible = vis; }
- void set_text( const char* text ) {
- strcpy( m_text, text );
- }
- auto get_text( ) const {
- return m_text;
- }
-
- std::shared_ptr< base_item > find_item( const char* name ) {
- if( !m_items.empty( ) ) {
- for( auto& it : m_items ) {
- if( it->get_text( ) && !strcmp( it->get_text( ), name ) ) {
- return it;
- }
-
- auto it_find = it->find_item( name );
- if( it_find != it ) return it_find;
- }
- }
-
- return shared_from_this( );
- }
-
- auto get_top_parent( ) {
- for( auto parent = m_parent; ;
- parent = parent->get_parent( ) ) {
- if( !parent->get_parent( ) ) {
- return parent;
- }
- }
-
- return shared_from_this( );
- }
-
- int get_relative_x( ) {
- int x = m_x;
- for( auto parent = get_parent( ); !!parent;
- parent = parent->get_parent( ) ) {
- x += parent->x( );
- }
-
- return x;
- }
-
- int get_relative_y( ) {
- int y = m_y + get_y_offset( );
- for( auto parent = get_parent( ); !!parent;
- parent = parent->get_parent( ) ) {
- y += parent->y( ) + parent->get_y_offset( );
- }
-
- return y;
- }
-
- void set_disabled( bool disabled ) {
- m_disabled = disabled;
-
- for( auto& it : m_items ) {
- it->set_disabled( disabled );
- }
- }
-
- void set_disabled_callbacks( bool disabled ) {
- auto top = get_top_parent( );
-
- top->set_disabled( disabled );
-
- m_disabled = false;
- }
-
- protected:
- int m_x{ };
- int m_y{ };
-
- int m_width{ };
- int m_height{ };
-
- //current y position for rendering
- int m_y_offset{ };
-
- bool m_visible = true;
- bool m_disabled = false;
- char m_text[ 256 ]{ };
-
- std::shared_ptr< base_item > m_parent;
- std::vector< std::shared_ptr< base_item > > m_items;
- std::function< bool( ) > m_cond;
- };
-}
\ No newline at end of file diff --git a/tf2/ui_button.h b/tf2/ui_button.h deleted file mode 100644 index 022fc67..0000000 --- a/tf2/ui_button.h +++ /dev/null @@ -1,56 +0,0 @@ -#pragma once
-
-#include <functional>
-
-#include "ui_base_item.h"
-
-namespace ui
-{
- class c_button : public base_item {
- public:
- c_button( int x, int y, int w, int h, const char* name, std::function< void( ) > fn ) :
- base_item( x, y, w, h, name ), m_fn( fn ) { }
-
- virtual bool is_hovered( ) override {
- if ( m_disabled ) return false;
-
- int x = get_relative_x( );
- int y = get_relative_y( );
- int h = m_height;
-
- int mouse_x, mouse_y;
- ui_get_cursor_pos( mouse_x, mouse_y );
-
-
- return mouse_x >= x && mouse_x <= x + m_width
- && mouse_y >= y && mouse_y <= y + h;
- }
-
-
- virtual void render( ) override {
- int x = get_relative_x( );
- int y = get_relative_y( );
-
- ui_draw_rect( x, y, m_width, m_height, ui_get_disabled_col( ) );
- ui_draw_outlined_rect( x - 1, y - 1, m_width + 1, m_height + 1,
- is_hovered( ) ? ui_get_text_col( ) : ui_get_accent_col( ) );
-
- if ( is_hovered( ) && g_input.is_key_pressed( KEYS_MOUSE1 ) ) {
- ui_draw_rect( x, y, m_width, m_height, ui_get_bg_col( ) );
- if ( !m_mouse_held ) {
- m_fn( );
- }
- m_mouse_held = true;
- }
- else {
- m_mouse_held = false;
- }
-
- ui_draw_string( x + m_width / 2, y + 2, true, ui_get_text_col( ), m_text );
- }
-
- protected:
- std::function< void( ) > m_fn;
- bool m_mouse_held{ };
- };
-}
\ No newline at end of file diff --git a/tf2/ui_checkbox.h b/tf2/ui_checkbox.h deleted file mode 100644 index 50cad1c..0000000 --- a/tf2/ui_checkbox.h +++ /dev/null @@ -1,68 +0,0 @@ -#pragma once
-#include "ui_base_item.h"
-
-namespace ui
-{
- class c_checkbox : public base_item {
- public:
- c_checkbox( int x, int y, const char* txt, bool* setting ) :
- base_item( x, y, 16, 16, txt ), m_setting( setting ) { }
-
- virtual bool is_hovered( ) override {
- if ( m_disabled ) return false;
-
- int mouse_x, mouse_y;
- ui_get_cursor_pos( mouse_x, mouse_y );
-
- int rel_x = get_relative_x( );
- int rel_y = get_relative_y( );
-
- return mouse_x >= rel_x && mouse_x <= rel_x + m_width
- && mouse_y >= rel_y && mouse_y <= rel_y + m_height;
- }
-
- inline void render_checkbox( const int& x, const int& y ) {
- clr_t col = ui_get_bg_col( );
- if ( is_hovered( ) ) {
- col = *m_setting ? ui_get_accent_col( ) * 0.8f : ui_get_bg_col( ) * 1.3f;
- }
- else if ( *m_setting ) {
- col = ui_get_accent_col( );
- }
-
- ui_draw_rect( x, y, m_width, m_height, ui_get_disabled_col( ) );
- ui_draw_rect( x + 1, y + 1, m_width - 2, m_height - 2, col );
-
- //ui_draw_outlined_rect( x, y, m_width, m_height, ui_get_accent_col( ) );
- }
-
- inline void input( ) {
- bool mouse_presesed = g_input.is_key_pressed( KEYS_MOUSE1 );
-
- if ( is_hovered( ) && mouse_presesed ) {
- if ( !m_mouse_held ) {
- *m_setting = !*m_setting;
- }
- m_mouse_held = true;
- }
- else {
- m_mouse_held = false;
- }
- }
-
- virtual void render( ) override {
- int x = get_relative_x( );
- int y = get_relative_y( );
-
- render_checkbox( x, y );
- input( );
-
-
- ui_draw_string( x + m_width + 6, y + 2, false, ui_get_text_col( ), m_text );
- }
-
- protected:
- bool* m_setting;
- bool m_mouse_held{ };
- };
-}
\ No newline at end of file diff --git a/tf2/ui_color_picker.h b/tf2/ui_color_picker.h deleted file mode 100644 index 2711d29..0000000 --- a/tf2/ui_color_picker.h +++ /dev/null @@ -1,201 +0,0 @@ -#pragma once
-
-#include "ui_base_item.h"
-#include "d3d.hpp"
-
-namespace ui
-{
- class c_color_picker : public base_item {
- static constexpr int BOX_WIDTH = 106;
- static constexpr int BOX_HEIGHT = 125;
- public:
- c_color_picker( int x, int y, int w, const char* name, clr_t* setting ) :
- base_item( x, y, w, 4, name ), m_setting( setting ),
- m_has_text( true ) { }
-
- c_color_picker( int x, int y, int w, clr_t* setting ) :
- base_item( x, y, w, 8, xors( "COLOR_PICKER" ) ), m_setting( setting ),
- m_has_text( false ) { }
-
- virtual bool is_hovered( ) override {
- if ( m_disabled ) return false;
-
- int x = get_relative_x( );
- int y = get_relative_y( );
-
- int cursor_x, cursor_y;
- ui_get_cursor_pos( cursor_x, cursor_y );
-
- if ( m_has_text ) y += 12;
-
- if ( !m_active ) {
- return cursor_x >= x && cursor_x <= x + m_width
- && cursor_y >= y && cursor_y <= y + m_height;
- }
-
- return cursor_x >= x && cursor_x <= x + BOX_WIDTH + 23
- && cursor_y >= y && cursor_y <= y + BOX_HEIGHT + 2;
- }
-
- virtual int get_total_height( ) const override {
- return m_has_text ? ( m_height + 12 ) : m_height;
- }
-
- void input( ) {
- bool active_backup = m_active;
- bool active_changed = false;
-
- if ( is_hovered( ) && g_input.is_key_pressed( KEYS_MOUSE1 ) ) {
- if ( !m_active ) {
- m_mouse_held = true;
- }
-
- m_active = true;
- }
- else if ( m_active && !is_hovered( ) && g_input.is_key_pressed( KEYS_MOUSE1 ) ) {
- m_active = false;
- }
- else {
- m_mouse_held = false;
- }
-
- active_changed = active_backup != m_active;
- if ( active_changed ) {
- set_disabled_callbacks( m_active );
- }
-
- m_hue = m_setting->hue( );
- if ( m_hue > 1.0f ) {
- m_hue -= 359.f;
- }
-
- m_saturation = m_setting->saturation( );
- m_brightness = m_setting->brightness( ) / 255.f;
- m_alpha = m_setting->a( );
- }
-
- void output( ) {
- *m_setting = clr_t::from_hsb( m_hue, m_saturation, m_brightness );
- m_setting->a( ) = m_alpha;
- }
-
- virtual void render( ) override {
- int x = get_relative_x( );
- int y = get_relative_y( );
-
- if ( m_has_text ) {
- ui_draw_string( x + 2, y, false, ui_get_text_col( ), m_text );
- y += 12;
- }
-
- input( );
-
- if ( m_active ) {
- RECT old_rect;
- g_d3d.get_device( )->GetScissorRect( &old_rect );
-
- RECT new_rect{
- x - 1, y - 1,
- x + BOX_WIDTH + 22,
- y + BOX_HEIGHT + 2
- };
-
- g_d3d.get_device( )->SetScissorRect( &new_rect );
-
- int mouse_x, mouse_y;
- ui_get_cursor_pos( mouse_x, mouse_y );
-
- clr_t bg_col( 0, 0, 0, 90 );
- ui_draw_rect( x, y, BOX_WIDTH + 20, BOX_HEIGHT, bg_col );
- ui_draw_outlined_rect( x - 1, y - 1, BOX_WIDTH + 22, BOX_HEIGHT + 2, ui_get_accent_col( ) );
-
- for ( int i{ }; i < 100; i += 3 ) {
- for ( int i2{ }; i2 < 100; i2 += 3 ) {
- ui_draw_rect( x + i + 1, y + i2 + 1, 3, 3,
- clr_t::from_hsb( m_hue, float( i2 ) * 0.01f, float( i ) * 0.01f ) );
- }
- }
-
- if ( g_input.is_key_pressed( KEYS_MOUSE1 ) && !m_mouse_held
- && mouse_x > x && mouse_x <= x + 100
- && mouse_y > y && mouse_y <= y + 100 ) {
-
- int mouse_x_c = std::clamp( mouse_x, x, x + 100 );
- int mouse_y_c = std::clamp( mouse_y, y, y + 100 );
-
- int delta_y = std::clamp( mouse_y_c - y, 0, 100 );
- int delta_x = std::clamp( mouse_x_c - x, 0, 100 );
-
- m_saturation = float( delta_y ) * 0.01f;
- m_brightness = float( delta_x ) * 0.01f;
- }
-
- auto is_hue_slider_hovered = [&]( ) -> bool {
- return mouse_x > x + 110 && mouse_x < x + 122
- && mouse_y > y && mouse_y < y + 100;
- };
-
- auto draw_slider_hue = [&]( ) {
- for ( int i{ }; i < 100; ++i ) {
- auto cur_col = clr_t::from_hsb( float( i ) * 0.01f, m_saturation, m_brightness );
-
- ui_draw_rect( x + 110, y + i + 1, 12, 2, cur_col );
- }
-
- ui_draw_outlined_rect( x + 109, y + int( m_hue * 100.f ) + 1, 14, 3,
- is_hue_slider_hovered( ) ? ui_get_text_col( ) : ui_get_disabled_col( ) );
- };
-
- auto is_alpha_slider_hovered = [&]( ) -> bool {
- return mouse_x > x + 1 && mouse_x < x + 122
- && mouse_y > y + 110 && mouse_y < y + 124;
- };
-
- auto draw_slider_alpha = [&]( ) {
- for ( int i{ 121 }; i >= 0; --i ) {
- auto col = *m_setting;
- col.a( ) = ( int )( float( i ) * 255.f / 121.f );
-
- ui_draw_rect( x + i + 1, y + 110, 1, 12, col );
- }
-
- int a_pos = ( int )( float( m_alpha ) * 121.f / 255.f );
- ui_draw_outlined_rect( x + 1 + a_pos, y + 109, 3, 14,
- is_alpha_slider_hovered( ) ? ui_get_text_col( ) : ui_get_disabled_col( ) );
- };
-
- draw_slider_hue( );
- if ( is_hue_slider_hovered( ) && g_input.is_key_pressed( KEYS_MOUSE1 ) ) {
- int delta = std::clamp( mouse_y - y, 0, 100 );
- m_hue = float( delta ) * 0.01f;
- }
-
- draw_slider_alpha( );
- if ( is_alpha_slider_hovered( ) && g_input.is_key_pressed( KEYS_MOUSE1 ) ) {
- int delta = std::clamp( mouse_x - x, 0, 121 );
- m_alpha = ( int )( float( delta ) * 255.f / 121.f );
- }
-
- output( );
-
- g_d3d.get_device( )->SetScissorRect( &old_rect );
- }
- else {
- if ( is_hovered( ) ) {
- ui_draw_rect( x - 1, y - 1, m_width + 2, m_height + 2, ui_get_text_col( ) );
- }
- ui_draw_rect( x, y, m_width, m_height, *m_setting );
- }
- }
-
- protected:
- clr_t* m_setting = nullptr;
- bool m_active = false;
- bool m_mouse_held = false;
- float m_saturation = 1.0f;
- float m_brightness = 1.0f;
- float m_hue = 0.f;
- uint8_t m_alpha = 255;
- bool m_has_text = false;
- };
-}
\ No newline at end of file diff --git a/tf2/ui_draw.h b/tf2/ui_draw.h deleted file mode 100644 index 4686bf0..0000000 --- a/tf2/ui_draw.h +++ /dev/null @@ -1,163 +0,0 @@ -#pragma once
-#include "color.hpp"
-#include "d3d.hpp"
-#include "icons.hpp"
-#include "d3d_sprite.hpp"
-#include "input_system.hpp"
-
-namespace ui
-{
- extern float get_tf2_frametime( );
- /*__forceinline auto ui_get_background_texture( ) {
- static auto buffer = std::make_shared< byte[ 512 ] >( );
- static auto color = D3DCOLOR_RGBA( 27, 27, 27, 233 );
- static auto color_bright = D3DCOLOR_RGBA( 31, 31, 31, 255 );
- static IDirect3DTexture9* texture;
-
- if ( !texture ) {
- for ( int i = 0; i < 512; i += 4 ) {
- *( ulong_t* )( uintptr_t( buffer.get( ) ) + i ) = !( i % 12 ) ? color : color_bright;
- }
-
- D3DXCreateTextureFromFileInMemory( g_d3d.get_device( ), buffer.get( ), 512, &texture );
- }
-
- return texture;
- }*/
-
- static float anim_time{ };
-
- __forceinline void set_animtime( float animtime ) {
- anim_time = animtime;
- }
-
- __forceinline void setup_sprites( IDirect3DDevice9* device ) {
- //fuck msvc
- icons::sprite_legit.init( device, icons::legit_icon, icons::legit_size, 66, 66 );
- icons::sprite_rage.init( device, icons::rage_icon, icons::rage_size, 66, 66 );
- icons::sprite_visuals.init( device, icons::raw::visuals_raw, icons::visuals_size, 66, 66 );
- icons::sprite_misc.init( device, icons::misc_icon, icons::misc_size, 66, 66 );
- icons::sprite_config.init( device, icons::config_icon, icons::config_size, 66, 66 );
- }
-
- __forceinline clr_t ui_get_accent_col( ) {
- clr_t col_start = {
- g_settings.menu.menu_color_1r,
- g_settings.menu.menu_color_1g,
- g_settings.menu.menu_color_1b
- };
-
- clr_t col_end = {
- g_settings.menu.menu_color_2r,
- g_settings.menu.menu_color_2g,
- g_settings.menu.menu_color_2b
- };
-
- clr_t col = clr_t::blend( col_start, col_end, anim_time );
-
- return col;
- }
-
- __forceinline clr_t& ui_get_disabled_col( ) {
- static clr_t col = clr_t( 61, 61, 61, 255 );
- return col;
- }
-
- __forceinline clr_t& ui_get_bg_col( ) {
- static clr_t col = clr_t( 24, 25, 27, 255 );
- return col;
- }
-
- __forceinline clr_t& ui_get_text_col( ) {
- static clr_t col = clr_t( 221, 221, 221, 255 );
- return col;
- }
-
- __forceinline void ui_draw_gradient( int x, int y, int w, int h, clr_t start,
- clr_t end, GradientType_t type = GRADIENT_HORIZONTAL ) {
-
- g_d3d.draw_gradient( start, end, x, y, w, h, type );
- }
-
- __forceinline void ui_draw_line( int x, int y, int x1, int y1, clr_t color ) {
- g_d3d.draw_line( color, x, y, x1, y1 );
- }
-
- __forceinline void ui_draw_rect( int x, int y, int w, int h, clr_t color ) {
- g_d3d.draw_filled_rect( color, x, y, w, h );
- }
-
- __forceinline void ui_draw_outlined_rect( int x, int y, int w, int h, clr_t color ) {
- g_d3d.draw_rect( color, x, y, w, h );
- }
-
- __forceinline void ui_draw_circle( int x, int y, int r, clr_t color, int res = 48 ) {
- g_d3d.draw_circle( color, x, y, r, res );
- }
-
- __forceinline void ui_draw_filled_circle( int x, int y, int r, clr_t color, int res = 48 ) {
- g_d3d.draw_filled_circle( color, x, y, r, res );
- }
-
- __forceinline void ui_draw_string( int x, int y, bool center, clr_t color, const char* str, ... ) {
- char buf[ 2048 ]{ };
- va_list list{ };
-
- __crt_va_start( list, str );
- vsprintf_s( buf, 2048, str, list );
- __crt_va_end( list );
-
- g_d3d.draw_text( d3d::fonts.f_menu, color, x, y,
- center ? ALIGN_CENTER : ALIGN_LEFT, D3DFONTFLAG_DROPSHADOW, buf );
- }
-
- __forceinline void ui_get_text_size( int& w, int& h, const char* text, ... ) {
- char* buf = ( char* )_alloca( 2048 );
- va_list list{ };
-
- __crt_va_start( list, text );
- vsprintf_s( buf, 2048, text, list );
- __crt_va_end( list );
-
- w = g_d3d.get_text_width( d3d::fonts.f_menu, 0, buf );
- h = g_d3d.get_text_height( d3d::fonts.f_menu, 0, buf );
- }
-
- __forceinline void ui_get_cursor_pos( int& x, int& y ) {
- g_input.get_cursor_pos( x, y );
- }
-
- __forceinline float ui_get_frametime( ) {
- return get_tf2_frametime( );
- }
-
- __forceinline void ui_draw_cursor( ) {
- const clr_t black( 0, 0, 0, 255 ), accent( ui_get_accent_col( ) );
- int x, y;
- ui_get_cursor_pos( x, y );
-
-
- for( int i{ }; i <= 9; ++i ) {
- ui_draw_line( x, y, x + i, y + 11, accent );
- }
-
- for( int i{ }; i <= 7; ++i ) {
- ui_draw_line( x, y + 9 + i, x + i, y + 9, accent );
- }
-
- for( int i{ }; i <= 3; ++i ) {
- ui_draw_line( x + 6 + i, y + 11, x, y + i, accent );
- }
-
- ui_draw_line( x + 5, y + 11, x + 8, y + 18, accent );
- ui_draw_line( x + 4, y + 11, x + 7, y + 18, accent );
-
- ui_draw_line( x, y, x, y + 17, black );
- ui_draw_line( x, y + 17, x + 3, y + 14, black );
- ui_draw_line( x + 4, y + 14, x + 7, y + 19, black );
- ui_draw_line( x + 7, y + 18, x + 9, y + 18, black );
- ui_draw_line( x + 10, y + 18, x + 7, y + 12, black );
- ui_draw_line( x + 7, y + 12, x + 11, y + 12, black );
- ui_draw_line( x + 11, y + 12, x, y, black );
- }
-}
\ No newline at end of file diff --git a/tf2/ui_dropdown.h b/tf2/ui_dropdown.h deleted file mode 100644 index 0c4e990..0000000 --- a/tf2/ui_dropdown.h +++ /dev/null @@ -1,217 +0,0 @@ -#pragma once
-#include "ui_dropdown_item.h"
-
-namespace ui
-{
- template < typename t = int >
- class c_dropdown : public base_item {
- public:
- c_dropdown( int x, int y, int w, const char* name, t* setting,
- std::vector< dropdowns::dropdown_item_t< t > >* items, size_t max_items = 8 ) :
- base_item( x, y, w, 16, name ), m_dropdown_items( items ), m_setting( setting ),
- m_max_items( max_items ) { }
-
- virtual bool is_hovered( ) override {
- if ( m_disabled ) return false;
-
- int x = get_relative_x( );
- int y = get_relative_y( ) + 12;
- int h = m_height;
-
- int mouse_x, mouse_y;
- ui_get_cursor_pos( mouse_x, mouse_y );
-
-
- return mouse_x >= x && mouse_x <= x + m_width
- && mouse_y >= y && mouse_y <= y + h;
- }
-
- inline bool is_any_item_hovered( ) {
- if ( m_disabled || !m_active ) return false;
-
- int x = get_relative_x( );
- int y = get_relative_y( ) + m_height + 12;
- int h = m_height * ( std::min< size_t >(
- m_dropdown_items->size( ), m_max_items ) );
-
- int mouse_x, mouse_y;
- ui_get_cursor_pos( mouse_x, mouse_y );
-
-
- return mouse_x >= x && mouse_x <= x + m_width
- && mouse_y >= y && mouse_y <= y + h;
- }
-
- virtual int get_total_height( ) const override {
- return m_height + 13;
- }
-
- void draw_box( const int& x, const int& y, const char* str, bool hovered = false ) {
- ui_draw_rect( x, y, m_width, m_height, hovered ? ui_get_disabled_col( ) : ui_get_bg_col( ) );
- ui_draw_line( x, y + m_height, x + m_width, y + m_height, ui_get_accent_col( ) );
-
- ui_draw_string( x + m_width / 2, y + 2, true, ui_get_text_col( ), str );
- }
-
- void update_value( ) {
- for ( auto& it : *m_dropdown_items ) {
- if ( it.m_value == *m_setting ) {
- m_selected_item = ⁢
- }
- }
- }
-
- void draw_items( const int& x, const int& y ) {
- auto& items = *m_dropdown_items;
- auto it = &items.front( );
- int offset = m_height + 1;
- int hovered = 0;
- int mouse_x, mouse_y;
- ui_get_cursor_pos( mouse_x, mouse_y );
-
- auto is_hovered = [ & ] ( int y_offset ) {
- return mouse_x >= x && mouse_x <= x + m_width
- && mouse_y >= y + y_offset && mouse_y <= y + y_offset + m_height;
- };
-
-
- for ( size_t i = items.size( ) > m_max_items ? m_curr_scroll : 0;
- i < std::min< size_t >( m_dropdown_items->size( ), m_max_items + m_curr_scroll );
- ++i, offset += m_height + 1
- ) {
- it = &items.at( i );
-
- draw_box( x, y + offset, it->m_name );
-
- if ( is_hovered( offset ) ) {
- hovered = offset;
- if ( g_input.is_key_pressed( KEYS_MOUSE1 ) ) {
- m_selected_item = it;
- *m_setting = it->m_value;
- m_active = false;
- m_enable_time = GetTickCount( ) * 0.001f + 0.220f;
- m_enable_next_frame = true;
- }
- }
- }
-
- if ( hovered ) {
- ui_draw_outlined_rect( x - 1, y - 1 + hovered,
- m_width + 1, m_height + 1, ui_get_text_col( ) );
- }
- }
-
- void input( ) {
- bool active_backup = m_active;
- bool active_changed = false;
-
- if ( is_hovered( ) && g_input.is_key_pressed( KEYS_MOUSE1 ) ) {
- if ( !m_mouse_held ) {
- m_active = !m_active;
- }
- m_mouse_held = true;
- }
- else if ( !is_any_item_hovered( ) ) {
- m_mouse_held = false;
- }
-
- if ( !is_hovered( ) && g_input.is_key_pressed( KEYS_MOUSE1 ) && !is_any_item_hovered( ) ) {
- m_active = false;
- }
-
- if ( GetTickCount( ) * 0.001f > m_enable_time && m_enable_next_frame ) {
- set_disabled_callbacks( false );
- m_enable_next_frame = false;
- }
-
-
- active_changed = m_active != active_backup;
- //disable input on all items
- if ( active_changed ) {
- if ( !m_active ) {
- m_enable_time = GetTickCount( ) * 0.001f + 0.220f;
- m_enable_next_frame = true;
- }
- else {
- set_disabled_callbacks( true );
- }
- }
-
- if ( m_selected_item ) {
- *m_setting = m_selected_item->m_value;
- }
-
- if ( m_active && m_dropdown_items->size( ) > m_max_items ) {
- int scroll_input = g_input.get_scroll_state( );
-
- if ( m_curr_scroll > 0 || scroll_input < 0 ) //we dont want scroll to loop around from 0 to max
- m_curr_scroll -= scroll_input; //because positive is scroll up, we gotta flip it
-
- if ( m_curr_scroll > m_dropdown_items->size( ) - m_max_items )
- m_curr_scroll = m_dropdown_items->size( ) - m_max_items;
- }
- }
-
- virtual void render( ) override {
- int x = get_relative_x( );
- int y = get_relative_y( );
-
- bool restore = false;
- RECT prev_rect{ };
-
- if ( m_active ) {
- restore = true;
- g_d3d.get_device( )->GetScissorRect( &prev_rect );
-
- RECT new_rect{
- prev_rect.left,
- prev_rect.top,
- g_d3d.m_width,
- g_d3d.m_height,
- };
-
- g_d3d.get_device( )->SetScissorRect( &new_rect );
-
- draw_items( x, y + 11 );
-
-
- //draw scrollbar
- size_t total_items = m_dropdown_items->size( );
- if ( total_items > m_max_items ) {
- const size_t height = ( m_height + 1 ) * m_max_items;
- const float slider_step = ( float )( height ) / float( total_items - m_max_items + 1 );
-
- size_t slider_pos = static_cast< size_t >( slider_step * m_curr_scroll );
- ui_draw_rect( x + m_width - 1, y + slider_pos + m_height + 13, 2, ( int )slider_step, ui_get_accent_col( ) );
- }
- }
-
- update_value( );
- input( );
-
- ui_draw_string( x + 2, y, false, ui_get_text_col( ), m_text );
- ui_draw_rect( x, y + 13, m_width, m_height, ui_get_disabled_col( ) );
- ui_draw_outlined_rect( x - 1, y + 12, m_width + 1, m_height + 1,
- is_hovered( ) || m_active ? ui_get_text_col( ) : ui_get_accent_col( ) );
-
- if ( m_selected_item ) {
- ui_draw_string( x + m_width / 2, y + 14, true, ui_get_text_col( ), m_selected_item->m_name );
- }
-
- if( restore ) {
- g_d3d.get_device( )->SetScissorRect( &prev_rect );
- }
- }
-
- protected:
- std::vector< dropdowns::dropdown_item_t< t > >* m_dropdown_items{ };
- dropdowns::dropdown_item_t< t >* m_selected_item{ };
- bool m_active = false;
- bool m_mouse_held = false;
- t* m_setting{ };
- size_t m_max_items{ };
- size_t m_curr_scroll{ };
- float m_enable_time{ };
- int m_enable_next_frame{ };
- };
-}
\ No newline at end of file diff --git a/tf2/ui_dropdown_item.h b/tf2/ui_dropdown_item.h deleted file mode 100644 index f77a732..0000000 --- a/tf2/ui_dropdown_item.h +++ /dev/null @@ -1,83 +0,0 @@ -#pragma once
-
-#include "ui_base_item.h"
-
-namespace ui
-{
- namespace dropdowns
- {
- template < typename t = int >
- struct dropdown_item_t {
- const char* m_name;
- t m_value;
- };
-
- static std::vector< dropdown_item_t< > > activation_types_aimbot = {
- { xors( "always" ), 0 },
- { xors( "on key" ), 1 },
- };
-
- static std::vector< dropdown_item_t< > > silent_aimbot_types = {
- { xors( "none" ), 0 },
- { xors( "client-side" ), 1 },
- { xors( "server-side" ), 2 },
- };
-
- static std::vector< dropdown_item_t< > > hitboxes = {
- { "head", 0 },
- { "neck", 1 },
- { "pelvis", 3 },
- { "chest", 6 },
- { "thorax", 5 },
- };
-
- static std::vector< dropdown_item_t< > > tracer_type = {
- { xors( "none" ), 0 },
- { xors( "line" ), 1 },
- { xors( "beam" ), 2 }
- };
-
- static std::vector< dropdown_item_t< > > world_esp_type = {
- { xors( "off" ), 0 },
- { xors( "name" ), 1 },
- { xors( "glow" ), 2 },
- { xors( "both" ), 3 }
- };
-
- static std::vector< dropdown_item_t< > > weapon_esp_types = {
- { xors( "none" ), 0 },
- { xors( "icon" ), 1 },
- { xors( "name" ), 2 },
- };
-
- static std::vector< dropdown_item_t< > > activation_type_visuals = {
- { xors( "never" ), 0 },
- { xors( "always" ), 1 },
- { xors( "on hold" ), 2 },
- { xors( "toggle" ), 3 },
- };
-
- static std::vector< dropdown_item_t< > > aimbot_bone = {
- { "head", 0 },
- { "neck", 1 },
- { "pelvis", 3 },
- { "chest", 6 },
- { "thorax", 5 },
- };
-
- static std::vector< dropdown_item_t< > > configs = {
- { xors( "scout" ), 0 },
- { xors( "soldier" ), 1 },
- { xors( "pyro" ), 2 },
- { xors( "demo" ), 3 },
- { xors( "heavy" ), 4 },
- { xors( "engineer" ), 5 },
- { xors( "medic" ), 6 },
- { xors( "sniper" ), 7 },
- { xors( "spy" ), 8 },
- { xors( "rage 1" ), 9 },
- { xors( "rage 2" ), 10 },
- };
-
- }
-}
\ No newline at end of file diff --git a/tf2/ui_form.h b/tf2/ui_form.h deleted file mode 100644 index 0791528..0000000 --- a/tf2/ui_form.h +++ /dev/null @@ -1,187 +0,0 @@ -#pragma once
-#include "ui_base_item.h"
-
-namespace ui
-{
- class c_form : public base_item {
- public:
- c_form( int x, int y, int w, int h, const char* name, int max_h = 0, bool collapse = false ) :
- base_item( x, y, w, h, name ), m_dynamic( !h ), m_max_height( max_h ), m_collapse( collapse ) { };
-
- virtual int x( ) const override {
- return m_x + 10;
- }
-
- virtual int y( ) const override {
- return m_y + m_scroll_offset + 9;
- }
-
- virtual bool is_form( ) const override {
- return true;
- }
-
- virtual bool is_hovered( ) override {
- int mouse_x, mouse_y;
- ui_get_cursor_pos( mouse_x, mouse_y );
-
- int x = get_relative_x( );
- int y = get_relative_y( );
-
- return mouse_x > x && mouse_x < x + w( )
- && mouse_y > y && mouse_y < y + h( );
- }
-
- bool is_collapse_hovered( ) {
- if( !m_collapse ) return false;
-
- int mouse_x, mouse_y;
- ui_get_cursor_pos( mouse_x, mouse_y );
-
- int x = get_relative_x( ) + m_width - 8;
- int y = get_relative_y( ) + 2;
-
- return mouse_x >= x && mouse_x <= x + 5
- && mouse_y >= y && mouse_y <= y + 7;
- }
-
- bool is_collapsed( ) {
- return ( m_collapse && !m_open );
- }
-
- inline void update_size( ) {
- if ( !m_dynamic ) return;
-
- int total_height{ ITEM_OFFSET * 2 };
- for ( auto& it : m_items ) {
- if ( it->get_visible( ) ) {
- auto item_height = it->get_total_height( ) + ITEM_OFFSET;
- if( m_max_height && total_height + item_height > m_max_height ) {
- total_height = m_max_height;
- break;
- }
- total_height += it->get_total_height( ) + ITEM_OFFSET;
- }
- }
-
- m_height = total_height;
- }
-
- virtual int get_total_height( ) const override {
- if( !m_open && m_collapse ) return 18;
- return m_height + 5;
- }
-
- int get_total_item_height( ) {
- int total_height{ ITEM_OFFSET * 2 };
- for( auto& it : m_items ) {
- if( it->get_visible( ) ) {
- auto item_height = it->get_total_height( ) + ITEM_OFFSET;
- total_height += it->get_total_height( ) + ITEM_OFFSET;
- }
- }
-
- return total_height;
- }
-
- void input( ) {
- if( m_collapse ) {
- bool hovered = is_collapse_hovered( );
- bool clicked = g_input.is_key_pressed( KEYS_MOUSE1 );
- if( hovered && clicked ) {
- if( !m_was_pressed ) {
- m_open ^= 1;
- }
- m_was_pressed = true;
- }
- else {
- m_was_pressed = false;
- }
- }
-
- if( m_max_height && get_total_item_height( ) > m_max_height ) {
- if( !m_disabled && is_hovered( ) ) {
- auto scroll_state = g_input.get_scroll_state( );
- if( !!scroll_state && m_was_hovered ) {
- scroll_state > 0 ? m_scroll_offset += 13 : m_scroll_offset -= 13;
- }
- m_scroll_offset = std::clamp( m_scroll_offset, -( get_total_item_height( ) - m_height + 3 ), 0 );
- }
- }
- else {
- m_scroll_offset = 0;
- }
- }
-
- virtual void render( ) override {
- update_size( );
- input( );
- int x = get_relative_x( );
- int y = get_relative_y( );
-
- int text_w, text_h;
- ui_get_text_size( text_w, text_h, m_text );
-
- if( m_collapse ) {
- if( !m_open && m_collapse ) {
- ui_draw_outlined_rect( x, y, m_width, 14, ui_get_accent_col( ) );
- ui_draw_line( x + 3, y, x + text_w + 1, y, ui_get_bg_col( ) );
- ui_draw_string( x + 3, y - 7, false, ui_get_text_col( ), m_text );
-
- int button_x = x + m_width - 6;
- int button_y = y + 2;
-
- ui_draw_string( button_x, button_y, true,
- is_collapse_hovered( ) ? ui_get_accent_col( ) : ui_get_text_col( ), "+" );
- return;
- }
- }
-
- for( int i{ }; i < 8; ++i ) {
- clr_t col = ui_get_bg_col( ) * ( 0.72f + i * 0.04f );
- ui_draw_rect( x, y + i, m_width, m_height - i * 2, col );
- }
-
- ui_draw_outlined_rect( x, y, m_width, m_height, ui_get_accent_col( ) );
-
- if( m_max_height && get_total_item_height( ) > m_height ) {
- const size_t height = get_total_height( ) - 20;
- const float delta = ( float )( get_total_item_height( ) - height + 1 );
- const float slider_step = ( ( float )( height ) / delta );
- const float slider_height = slider_step * 13.f;
-
- size_t slider_pos = static_cast< size_t >( slider_step * m_scroll_offset );
- ui_draw_rect( x + m_width - 7, y + 8, 4, height, ui_get_disabled_col( ) );
- ui_draw_rect( x + m_width - 7, y - slider_pos + 8, 4, ( int )slider_height + 1, ui_get_accent_col( ) );
- }
-
- if( is_hovered( ) != m_was_hovered ) {
- bool backup = m_disabled;
- if( !backup ) {
- set_disabled( !is_hovered( ) );
- }
- m_disabled = backup;
- }
-
- ui_draw_line( x + 3, y, x + text_w + 1, y, ui_get_bg_col( ) );
- ui_draw_string( x + 3, y - 7, false, ui_get_text_col( ), m_text );
- if( m_collapse ) {
- int button_x = x + m_width - 6;
- int button_y = y + 2;
-
- ui_draw_string( button_x, button_y, true,
- is_collapse_hovered( ) ? ui_get_accent_col( ) : ui_get_text_col( ), "-" );
- }
-
- m_was_hovered = is_hovered( );
- }
-
- protected:
- bool m_dynamic{ };
- bool m_was_hovered{ };
- int m_max_height{ };
- int m_scroll_offset{ };
- bool m_was_pressed{ };
- bool m_collapse{ };
- bool m_open{ true };
- };
-}
\ No newline at end of file diff --git a/tf2/ui_key_picker.h b/tf2/ui_key_picker.h deleted file mode 100644 index 03aed84..0000000 --- a/tf2/ui_key_picker.h +++ /dev/null @@ -1,164 +0,0 @@ -#pragma once
-#include "ui_base_item.h"
-
-namespace ui
-{
- class c_key_picker : public base_item {
- public:
- c_key_picker( int x, int y, int w, const char* name, int* setting ) :
- base_item( x, y, w, 16, name ), m_setting( setting ) { }
-
- virtual bool is_hovered( ) override {
- if ( m_disabled ) return false;
-
- int x = get_relative_x( );
- int y = get_relative_y( ) + 12;
- int h = m_height;
-
- int mouse_x, mouse_y;
- ui_get_cursor_pos( mouse_x, mouse_y );
-
-
- return mouse_x >= x && mouse_x <= x + m_width
- && mouse_y >= y && mouse_y <= y + h;
- }
-
- virtual int get_total_height( ) const override {
- return m_height + 12;
- }
-
- void input( ) {
- bool active_backup = m_active;
- bool active_changed = false;
-
- if ( is_hovered( ) && g_input.is_key_pressed( KEYS_MOUSE1 ) ) {
- if ( !m_mouse_held ) {
- m_active = true;
- }
- m_mouse_held = true;
- }
-
- if ( g_input.is_key_pressed( KEYS_ESCAPE ) ) {
- m_active = false;
- *m_setting = KEYS_NONE;
- }
-
- if ( m_active && !m_mouse_held ) {
- int key = g_input.is_any_key_pressed( );
- if ( key != KEYS_NONE ) {
- *m_setting = key;
- m_active = false;
- }
- }
-
- active_changed = active_backup != m_active;
- if ( active_changed ) {
- set_disabled_callbacks( m_active );
- }
- }
-
- virtual void render( ) override {
- int x = get_relative_x( );
- int y = get_relative_y( );
-
- input( );
-
- ui_draw_string( x + 2, y, false, ui_get_text_col( ), m_text );
- ui_draw_rect( x, y + 13, m_width, m_height, ui_get_disabled_col( ) );
- ui_draw_outlined_rect( x - 1, y + 12, m_width + 1, m_height + 1,
- is_hovered( ) || m_active ? ui_get_text_col( ) : ui_get_accent_col( ) );
-
- ui_draw_string( x + m_width / 2, y + 14, true, ui_get_text_col( ),
- g_input.get_key_name( ( VirtualKeys_t )*m_setting ) );
- }
-
- protected:
- int* m_setting{ };
- bool m_active{ };
- bool m_mouse_held{ };
- };
-
- //skEeT PiCkErS
- class c_key_picker_small : public base_item {
- public:
- c_key_picker_small( int x, int y, int* setting ) :
- base_item( x, y, 0, 0, xors( "KEY_PICKER" ) ), m_setting( setting ) { }
-
- virtual int get_total_height( ) const override {
- const char* name = g_input.get_short_name( ( VirtualKeys_t )*m_setting );
- int w, h;
- ui_get_text_size( w, h, name );
-
- return h;
- }
-
- virtual bool is_hovered( ) override {
- if ( m_disabled ) return false;
-
- const char* name = g_input.get_short_name( ( VirtualKeys_t )*m_setting );
- int x = get_relative_x( );
- int y = get_relative_y( );
- int mouse_x, mouse_y;
- int w, h;
-
- ui_get_text_size( w, h, "[%s]", name );
- ui_get_cursor_pos( mouse_x, mouse_y );
-
- return mouse_x >= x - w && mouse_x <= x
- && mouse_y >= y && mouse_y <= y + h;
- }
-
- void input( ) {
-
- bool active_backup = m_active;
- bool active_changed = false;
-
- if ( g_input.is_key_pressed( KEYS_ESCAPE ) ) {
- m_active = false;
- *m_setting = KEYS_NONE;
- }
-
- if ( m_active && !m_mouse_held ) {
- int key = g_input.is_any_key_pressed( );
- if ( key != KEYS_NONE ) {
- *m_setting = key;
- m_active = false;
- }
- }
-
- if ( is_hovered( ) && g_input.is_key_pressed( KEYS_MOUSE1 ) ) {
- if ( !m_mouse_held ) {
- m_active = true;
- }
- m_mouse_held = true;
- }
- else {
- m_mouse_held = false;
- }
-
- active_changed = active_backup != m_active;
- if ( active_changed ) {
- set_disabled_callbacks( m_active );
- }
- }
-
- virtual void render( ) override {
- const char* name = g_input.get_short_name( ( VirtualKeys_t )*m_setting );
- int x = get_relative_x( );
- int y = get_relative_y( );
-
- int w, h;
- ui_get_text_size( w, h, "[%s]", name );
-
- input( );
-
- ui_draw_string( x - w, y, false, is_hovered( ) || m_active ?
- ui_get_accent_col( ) : ui_get_text_col( ), "[%s]", name );
- }
-
- protected:
- int* m_setting;
- bool m_active{ };
- bool m_mouse_held{ };
- };
-}
\ No newline at end of file diff --git a/tf2/ui_label.h b/tf2/ui_label.h deleted file mode 100644 index 9df46b5..0000000 --- a/tf2/ui_label.h +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once
-#include "ui_base_item.h"
-
-namespace ui
-{
- class c_label : public base_item {
- public:
- c_label( int x, int y, const char* text ) :
- base_item( x, y, 0, 16, text ) { }
-
- virtual void render( ) override {
- int x = get_relative_x( );
- int y = get_relative_y( );
-
- ui_draw_string( x + 2, y + 2, false, ui_get_text_col( ), m_text );
- }
- };
-}
\ No newline at end of file diff --git a/tf2/ui_menu.h b/tf2/ui_menu.h deleted file mode 100644 index aae68a9..0000000 --- a/tf2/ui_menu.h +++ /dev/null @@ -1,89 +0,0 @@ -#pragma once
-#include "ui_base_item.h"
-
-namespace ui
-{
- class c_menu : public base_item {
- public:
- c_menu( int start_x, int start_y, int width,
- int height, const char* name, const char* right_text = nullptr ) :
- base_item( start_x, start_y, width, height, name ),
- m_right_text( right_text ) { }
-
- virtual bool is_hovered( ) override {
- if( m_disabled ) return false;
-
- int mouse_x, mouse_y;
- ui_get_cursor_pos( mouse_x, mouse_y );
-
- return mouse_x >= m_x && mouse_x <= m_x + w( )
- && mouse_y >= m_y && mouse_y <= m_y + 19;
- }
-
- virtual int y( ) const override {
- return m_y + 19;
- }
-
- inline void input( ) {
- int mouse_x, mouse_y;
- ui_get_cursor_pos( mouse_x, mouse_y );
- bool mouse_clicked = g_input.is_key_pressed( KEYS_MOUSE1 );
-
- if( is_hovered( ) ) {
- m_mouse_held = true;
- }
-
- if( !mouse_clicked ) {
- m_mouse_held = is_hovered( );
- }
-
- if( m_mouse_held && !mouse_clicked ) {
- m_drag_offset_y = mouse_y - m_y;
- m_drag_offset_x = mouse_x - m_x;
- }
-
- if( m_mouse_held && mouse_clicked ) {
- m_x = mouse_x - m_drag_offset_x;
- m_y = mouse_y - m_drag_offset_y;
- }
- }
-
- virtual void render( ) override {
- constexpr auto top_height = 19;
-
- input( );
-
- //draw a c00l shadow
- ui_draw_outlined_rect( m_x, m_y + 1, m_width + 1, m_height, clr_t( 0, 0, 0, 166 ) );
-
- ui_draw_rect( m_x + 1, m_y + 1, m_width - 1, top_height - 2, ui_get_bg_col( ) * 1.2f );
- if( is_hovered( ) ) {
- ui_draw_rect( m_x + 1, m_y + 1, m_width - 1, top_height - 2, clr_t( 61, 61, 61 ) );
- }
-
- for( int i{ }; i < 8; ++i ) {
- clr_t col = ui_get_bg_col( ) * ( 0.72f + i * 0.04f );
- ui_draw_rect( m_x, m_y + i + top_height - 1, m_width, m_height - i * 2 - top_height + 1, col );
- }
- ui_draw_outlined_rect( m_x, m_y, m_width, m_height, ui_get_accent_col( ) );
-
- if( m_right_text ) {
- ui_draw_string( m_x + 5, m_y + 4, false, ui_get_text_col( ), m_text );
-
- int width, height;
- ui_get_text_size( width, height, m_right_text );
-
- ui_draw_string( m_x + m_width - 5 - width, m_y + 4, false, ui_get_text_col( ), m_right_text );
- }
- else {
- ui_draw_string( m_x + m_width / 2, m_y + 4, true, ui_get_text_col( ), m_text );
- }
- }
-
- protected:
- int m_drag_offset_x{ };
- int m_drag_offset_y{ };
- bool m_mouse_held{ };
- const char* m_right_text{ };
- };
-}
\ No newline at end of file diff --git a/tf2/ui_render.h b/tf2/ui_render.h deleted file mode 100644 index f67f16b..0000000 --- a/tf2/ui_render.h +++ /dev/null @@ -1,63 +0,0 @@ -#pragma once
-
-#include "ui_base_item.h"
-
-namespace ui
-{
- //recursively render all items
- static void render_item( base_item* item, int offset = 0, bool allow_rect = true ) {
- if( !item->get_visible( ) ) return;
-
- item->reset( );
- item->render( );
- bool reset = false;
- RECT original;
-
- if( allow_rect && item->is_form( ) ) {
- auto device = g_d3d.get_device( );
- device->GetScissorRect( &original );
-
- auto x = item->get_relative_x( );
- auto y = item->get_relative_y( );
-
- RECT new_rect{
- x,
- y + 4,
- x + item->w( ),
- y + item->get_total_height( ) - 7
- };
-
- device->SetScissorRect( &new_rect );
- reset = true;
- }
-
- bool draw = true;
- if( item->is_form( ) ) {
- auto form_cast = static_cast< c_form* >( item );
- draw = !form_cast->is_collapsed( );
- }
-
- if( item->get_items( ).size( ) && draw ) {
- //madr0fl
- int* height_offset = ( int* )_alloca( sizeof( int ) * item->get_items( ).size( ) );
- int cur_offset = 0;
- for( int i = ( int )item->get_items( ).size( ) - 1; i >= 0; --i ) {
- auto& cur_item = item->get_items( )[ i ];
- height_offset[ i ] = cur_offset;
- cur_offset += cur_item->get_visible( ) ? cur_item->get_total_height( ) + ITEM_OFFSET : 0;
- }
-
- int i{ };
- for( auto& it : item->get_items( ) ) {
- item->set_y_offset( height_offset[ i ] );
- render_item( it.get( ), height_offset[ i ], !reset && allow_rect );
- ++i;
- }
- }
-
- if( reset ) {
- auto device = g_d3d.get_device( );
- device->SetScissorRect( &original );
- }
- }
-}
\ No newline at end of file diff --git a/tf2/ui_slider.h b/tf2/ui_slider.h deleted file mode 100644 index 0e55a73..0000000 --- a/tf2/ui_slider.h +++ /dev/null @@ -1,165 +0,0 @@ -#pragma once
-
-#include "ui_base_item.h"
-
-namespace ui
-{
- template < typename t >
- class c_slider : public base_item {
- public:
- c_slider( int x, int y, int w, t min, t max, const char* text, t* setting, t full, const char* suffix = 0 ) :
- base_item( x, y, w, 5, text ), m_setting( setting ), m_suffix( suffix ),
- m_min( float( min ) ), m_max( float( max ) ), m_full( full ), m_has_text( true ) { };
-
- c_slider( int x, int y, int w, t min, t max, const char* text, t* setting, const char* suffix = 0 ) :
- base_item( x, y, w, 5, text ), m_setting( setting ), m_suffix( suffix ),
- m_min( float( min ) ), m_max( float( max ) ), m_full( max ), m_has_text( true ) { };
-
- c_slider( int x, int y, int w, t min, t max, t* setting, const char* suffix = 0 ) :
- base_item( x, y, w, 5, nullptr ), m_setting( setting ), m_suffix( suffix ),
- m_min( float( min ) ), m_max( float( max ) ), m_full( max ), m_has_text( false ) { }
-
- virtual bool is_hovered( ) override {
- if ( m_disabled ) return false;
-
- int x = get_relative_x( );
- int y = get_relative_y( ) + ( m_has_text ? 11 : 2 );
-
- int mouse_x, mouse_y;
- ui_get_cursor_pos( mouse_x, mouse_y );
-
- if( !m_has_text ) {
- x += 4;
- return mouse_x >= x && mouse_x <= x + m_width - 8
- && mouse_y >= y && mouse_y <= y + m_height + 2;
- }
-
- return mouse_x >= x - 1 && mouse_x <= x + m_width + 1
- && mouse_y >= y && mouse_y <= y + m_height + 2;
- }
-
- void input( ) {
- bool mouse_clicked = g_input.is_key_pressed( KEYS_MOUSE1 );
- bool hovered = is_hovered( );
- float progress = 0.f;
- int x = get_relative_x( );
- int y = get_relative_y( ) + 2;
- int mouse_x, mouse_y;
-
- *m_setting = ( t )( std::clamp< float >( *m_setting, m_min, m_max ) );
- ui_get_cursor_pos( mouse_x, mouse_y );
-
- if ( hovered && mouse_clicked ) {
-
- float progress{ };
-
- if( m_has_text ) {
- progress = std::clamp< float >( float( mouse_x - x ) / ( m_width - 3 ), 0.f, 1.0f );
- }
- else {
- progress = std::clamp< float >( float( mouse_x - x - 4 ) / ( m_width - 10 ), 0.f, 1.0f );
- }
-
- *m_setting = progress == 1.0f ? m_full : ( t )( ( ( m_max - m_min ) * progress ) + m_min );
- }
-
- if( !m_has_text ) {
- bool y_hover = mouse_y >= y && mouse_y <= y + m_height + 1;
-
- bool minus_hovered = mouse_x >= x - 1 && mouse_x <= x + 3 && y_hover;
- bool plus_hovered = mouse_x >= x + m_width - 2 && mouse_x <= x + m_width + 2 && y_hover;
-
- if( mouse_clicked ) {
- if( !m_mouse_held ) {
- if( !std::is_floating_point< t >::value ) {
- if( minus_hovered ) *m_setting -= ( t )1;
- if( plus_hovered ) *m_setting += ( t )1;
- }
- else if( m_max - m_min <= 2.0f ) {
- if( minus_hovered ) *m_setting -= ( t )0.1f;
- if( plus_hovered ) *m_setting += ( t )0.1f;
- }
- }
-
- m_mouse_held = true;
- }
- else {
- m_mouse_held = false;
- }
- }
- };
-
- void draw_slider( int x, int y ) {
- float val = float( *m_setting );
- float progress = ( val - m_min ) / ( m_max - m_min );
-
- ui_draw_rect( x, y, m_width, m_height, ui_get_disabled_col( ) );
-
- ui_draw_rect( x, y, ( int )( ( m_width - 3 ) * progress ), m_height, ui_get_accent_col( ) );
- ui_draw_rect( x + ( int )( ( m_width - 3 ) * progress ), y, 3, m_height,
- is_hovered( ) ? ui_get_text_col( ) : ui_get_accent_col( ) * 0.7f );
- }
-
- void draw_slider_small( int x, int y ) {
- float val = float( *m_setting );
- float progress = ( val - m_min ) / ( m_max - m_min );
- x -= 1; //i couldnt be fucked
-
- ui_draw_rect( x + 5, y, m_width - 8, m_height, ui_get_disabled_col( ) );
-
- ui_draw_rect( x + 5, y, ( int )( ( m_width - 10 ) * progress ), m_height, ui_get_accent_col( ) );
- ui_draw_rect( x + ( int )( ( m_width - 10 ) * progress ) + 3, y, 3, m_height,
- is_hovered( ) ? ui_get_text_col( ) : ui_get_accent_col( ) * 0.7f );
-
- ui_draw_string( x, y - 3, false, ui_get_text_col( ), "-" );
- ui_draw_string( x + m_width - 2, y - 3, false, ui_get_text_col( ), "+" );
-
- char val_str[ 12 ];
- if( m_suffix )
- sprintf_s( val_str, 12, t( 0.1f ) == t( 0 ) ? "%d %s" : "%0.2f %s", *m_setting, m_suffix );
- else
- sprintf_s( val_str, 12, t( 0.1f ) == t( 0 ) ? "%d" : "%0.2f", *m_setting );
-
- ui_draw_string( x + ( int )( ( m_width - 8 ) * progress ) + 3, y + 2, true, ui_get_text_col( ), val_str );
- }
-
- virtual int get_total_height( ) const override {
- return m_height + ( m_has_text ? 12 : 6 );
- }
-
- virtual void render( ) override {
- int x = get_relative_x( );
- int y = get_relative_y( );
- int text_w, text_h;
- char val[ 12 ];
-
- input( );
-
- //weird hacky fix for floating point vars
- if ( m_suffix )
- sprintf_s( val, 12, t( 0.1f ) == t( 0 ) ? "%d %s" : "%0.2f %s", *m_setting, m_suffix );
- else
- sprintf_s( val, 12, t( 0.1f ) == t( 0 ) ? "%d" : "%0.2f", *m_setting );
-
- if( m_has_text ) {
- ui_draw_string( x + 2, y, false, ui_get_text_col( ), m_text );
- ui_get_text_size( text_w, text_h, val );
- ui_draw_string( x + m_width - text_w - 1, y, false, ui_get_text_col( ), val );
- draw_slider( x, y + 12 );
- }
- else {
- draw_slider_small( x, y + 2 );
- }
- }
-
-
- protected:
- t* m_setting;
- t m_full;
- float m_min;
- float m_max;
- bool m_has_text = true;
- const char* m_suffix;
- bool m_mouse_held = false;
- };
-}
\ No newline at end of file diff --git a/tf2/ui_tab_manager.h b/tf2/ui_tab_manager.h deleted file mode 100644 index 76258c8..0000000 --- a/tf2/ui_tab_manager.h +++ /dev/null @@ -1,227 +0,0 @@ -#pragma once
-#include "ui_base_item.h"
-
-
-
-namespace ui
-{
- namespace {
- constexpr int BUTTON_WIDTH = 120;
- constexpr int BUTTON_HEIGHT = 80;
-
- constexpr int SUBTAB_HEIGHT = 25;
- }
-
- class c_tab_sheet : public base_item {
- public:
- c_tab_sheet( const char* tab_name ) :
- base_item( 0, 0, 0, 0, tab_name ),
- m_fade_progress( 0 ) { };
-
- c_tab_sheet( const char* tab_name, d3d::c_sprite* sprite ) :
- base_item( 0, 0, 0, 0, tab_name ), m_sprite( sprite ),
- m_fade_progress( 0.f ) { };
-
- virtual void render( ) override { };
- virtual bool is_hovered( ) override {
- return false;
- };
-
- public:
- float m_fade_progress{ };
- d3d::c_sprite* m_sprite{ };
- };
-
-
- class c_tab_manager : public base_item {
- public:
- c_tab_manager( ) : base_item( BUTTON_WIDTH + 11, 0, 0, 0,
- xors( "TAB_MANAGER" ) ) { };
-
- virtual bool is_hovered( ) override {
- return false;
- }
-
- inline void scale_button_fade( c_tab_sheet* item, bool hovered ) {
- if ( hovered ) {
- constexpr float frequency = 1.f / 0.3f;
- const float step = ui_get_frametime( ) * frequency;
-
- item->m_fade_progress = std::clamp( item->m_fade_progress + step, 0.f, 0.8f );
- }
- else {
- item->m_fade_progress = 0.f;
- }
- }
-
- auto get_selected_tab( ) {
- return m_selected_tab;
- }
-
- void draw_tab_button( decltype( m_parent )& button, int start, bool hovered ) {
- auto item = ( c_tab_sheet* )button.get( );
- auto text = item->get_text( );
- auto parent_x = m_parent->x( ) + 5;
- auto parent_y = m_parent->y( ) + 5;
- int item_height = BUTTON_HEIGHT;
-
- scale_button_fade( item, hovered );
-
- ui_draw_rect( parent_x, parent_y + start, BUTTON_WIDTH + 1,
- item_height + 1, ui_get_bg_col( ) );
-
- ui_draw_line( parent_x + BUTTON_WIDTH - 8, parent_y + start - 1,
- parent_x + BUTTON_WIDTH - 8, parent_y + start + BUTTON_HEIGHT + 2,
- ui_get_disabled_col( ) );
-
- if( hovered ) {
- ui_draw_line( parent_x + BUTTON_WIDTH - 8, parent_y + start - 1,
- parent_x + BUTTON_WIDTH - 8, parent_y + start + BUTTON_HEIGHT + 2,
- ui_get_accent_col( ) * ( item->m_fade_progress + 0.2f ) * 0.8f );
- }
-
- if( item->m_sprite ) {
- auto sprite_color = hovered ? ui_get_text_col( ) * ( ( item->m_fade_progress + 0.3f ) * 0.7f ) : ui_get_disabled_col( );
- item->m_sprite->draw( parent_x + ( BUTTON_WIDTH - 8 ) / 2 - 2,
- parent_y + BUTTON_HEIGHT / 2 + start, sprite_color );
- }
- else {
- g_con->log( "sprite is null" );
- }
- }
-
- inline bool is_button_hovered( int start ) {
- auto item_x = m_parent->x( ) + 5;
- auto item_y = m_parent->y( ) + 5 + start;
- int item_height = BUTTON_HEIGHT;
- int mouse_x, mouse_y;
-
- ui_get_cursor_pos( mouse_x, mouse_y );
-
- return mouse_x >= item_x && mouse_x <= item_x + BUTTON_WIDTH - 8
- && mouse_y >= item_y && mouse_y <= item_y + item_height;
- }
-
- virtual void render( ) override {
- if ( !m_items.empty( ) ) {
- int cur_y{ 10 };
- for ( auto& it : m_items ) {
- it->set_visible( false );
- bool hovered = is_button_hovered( cur_y );
- if ( g_input.is_key_pressed( KEYS_MOUSE1 ) && hovered ) {
- //fix items that disable input mess it up when changing tabs
- set_disabled_callbacks( false );
- m_selected_tab = it;
- }
-
- draw_tab_button( it, cur_y, hovered || it == m_selected_tab );
- cur_y += BUTTON_HEIGHT + 4;
- }
- }
-
- if ( !m_selected_tab ) {
- m_selected_tab = m_items.front( );
- }
-
- m_selected_tab->set_visible( true );
- }
-
- protected:
- decltype( m_parent ) m_selected_tab{ };
- };
-
-
- class c_subtab_manager : public base_item {
- public:
- c_subtab_manager( ) : base_item( 0, 35, 0, 5,
- xors( "SUBTAB_MANAGER" ) ) { }
-
- virtual bool is_hovered( ) override { return false; }
-
- int get_button_width( ) {
- int width = get_top_parent( )->w( ) - BUTTON_WIDTH - 26;
-
- if ( !m_items.empty( ) )
- return ( int )std::ceilf( float( width ) / float( m_items.size( ) ) );
-
- return width;
- }
-
- inline void scale_button_fade( c_tab_sheet* item, bool hovered ) {
- if ( hovered ) {
- constexpr float frequency = 1.f / 0.3f;
- const float step = ui_get_frametime( ) * frequency;
-
- item->m_fade_progress = std::clamp( item->m_fade_progress + step, 0.f, 0.8f );
- }
- else {
- item->m_fade_progress = 0.f;
- }
- }
-
- auto get_selected_tab( ) {
- return m_selected_tab;
- }
-
- void render_button( decltype( m_parent )& button, int start, bool hovered ) {
- auto item = ( c_tab_sheet* )button.get( );
- auto item_x = get_relative_x( ) + start - 2;
- auto item_y = get_relative_y( ) + 3 - m_y;
- auto width = get_button_width( );
-
- scale_button_fade( item, hovered );
- clr_t tab_clr = ui_get_disabled_col( );
-
- //ui_draw_rect( item_x, item_y, get_button_width( ), SUBTAB_HEIGHT, ui_get_bg_col( ) );
- ui_draw_rect( item_x + 1, item_y + SUBTAB_HEIGHT - 2, width, 2, tab_clr );
- if ( hovered ) {
- clr_t col = ui_get_accent_col( );
- col.a( ) *= item->m_fade_progress;
- ui_draw_rect( item_x + 1, item_y + SUBTAB_HEIGHT - 2, width, 2, col );
- }
-
- ui_draw_string( item_x + width / 2, item_y + 4, true, ui_get_text_col( ), item->get_text( ) );
- }
-
- bool is_button_hovered( decltype( m_parent )& button, int start ) {
- int item_x = get_relative_x( ) + start - 2;
- int item_y = get_relative_y( ) + 3 - m_y - 3;
- int item_w = get_button_width( );
- int mouse_x, mouse_y;
-
- ui_get_cursor_pos( mouse_x, mouse_y );
-
- return mouse_x >= item_x && mouse_x <= item_x + item_w &&
- mouse_y >= item_y && mouse_y <= item_y + SUBTAB_HEIGHT;
- }
-
- virtual void render( ) override {
- if ( !m_items.empty( ) ) {
- int start = 2;
- int width = get_button_width( );
-
- for ( auto& it : m_items ) {
- it->set_visible( false );
- bool hovered = is_button_hovered( it, start );
- if ( g_input.is_key_pressed( KEYS_MOUSE1 ) && hovered ) {
- //fix items that disable input mess it up when changing tabs
- set_disabled_callbacks( false );
- m_selected_tab = it;
- }
-
- render_button( it, start, hovered || it == m_selected_tab );
- start += width;
- }
-
- if ( !m_selected_tab ) {
- m_selected_tab = m_items.front( );
- }
-
- m_selected_tab->set_visible( true );
- }
- }
-
- protected:
- decltype( m_parent ) m_selected_tab;
- };
-}
\ No newline at end of file diff --git a/tf2/ui_text_input.h b/tf2/ui_text_input.h deleted file mode 100644 index f486106..0000000 --- a/tf2/ui_text_input.h +++ /dev/null @@ -1,47 +0,0 @@ -#pragma once
-#include "ui_base_item.h"
-
-namespace ui
-{
- class c_text_input : public base_item {
- c_text_input( int x, int y, int w, const char* name, size_t max_chars, char* str ) :
- base_item( x, y, w, 16, name ), m_length( max_chars ), m_str( str ) { }
-
- virtual bool is_hovered( ) override {
-
- }
-
- void input( ) {
- static float last_press[ KEYS_MAX ]{ };
-
- int key = g_input.is_any_key_pressed( );
- if ( key == KEYS_BACK ) {
- if ( strlen( m_str ) ) {
- m_str[ strlen( m_str ) - 1 ] = 0;
- }
- }
- if ( key != KEYS_NONE ) {
- float cur_time = GetTickCount( ) * 0.001f;
- if ( std::abs( cur_time - last_press[ key ] ) > 0.1f ) {
-
- auto scan_code = MapVirtualKeyA( key, MAPVK_VK_TO_VSC );
- uword_t ascii;
- ToAscii( key, scan_code, 0, &ascii, 0 );
- char str[ 2 ] = { ( char )ascii, 0 };
- strcat_s( m_str, m_length, str );
-
- last_press[ key ] = cur_time;
- }
- }
- }
-
- virtual void render( ) override {
-
- }
-
- protected:
- size_t m_length{ };
- char* m_str{ };
-
- };
-}
\ No newline at end of file diff --git a/tf2/util.cpp b/tf2/util.cpp deleted file mode 100644 index 424df71..0000000 --- a/tf2/util.cpp +++ /dev/null @@ -1,223 +0,0 @@ -#include "util.hpp"
-
-#include "interfaces.h"
-#include "CBasePlayer.h"
-#include "pattern.hpp"
-#include "ctx.hpp"
-#include "settings.h"
-#include "math.h"
-#include "base_cheat.h"
-
-float TICK_INTERVAL( ) {
- return cl.m_globals->interval_per_tick;
-}
-
-int TIME_TO_TICKS( float dt ) {
- return static_cast< int >( 0.5f + dt / TICK_INTERVAL( ) );
-}
-
-float TICKS_TO_TIME( int tick ) {
- return tick * TICK_INTERVAL( );
-}
-
-bool util::is_low_fps( ) {
- return cl.m_globals->frametime > cl.m_globals->interval_per_tick;
-}
-
-int util::get_closest_player( ) {
- float cur_fov{ 360.f };
- int ret{ -1 };
- vec3_t viewangles{ };
- vec3_t local_pos{ };
-
- bool friendlies = g_settings.legit.friendlies;
-
- local_pos = g_ctx.m_local->get_eye_pos( );
- cl.m_engine( )->GetViewAngles( viewangles );
-
- for( int i{ 1 }; i < cl.m_globals->maxclients; ++i ) {
- auto ent = cl.m_entlist( )->get_client_entity< c_base_player >( i );
-
- if( !ent ) continue;
- if( ent == g_ctx.m_local ) continue;
- if( !ent->is_valid( ) ) continue;
- int team = ent->get_team( );
- if( team == g_ctx.m_local->get_team( ) && !friendlies ) {
- continue;
- }
-
- auto ang = math::vector_angles( local_pos, ent->get_hitbox_position( 0 ) );
- ang.clamp( );
-
- float fov = ( viewangles - ang ).clamp( ).length2d( );
- if( fov < cur_fov ) {
- ret = i;
- cur_fov = fov;
- }
- }
-
- return ret;
-}
-
-void util::clip_trace_to_player( IClientEntity* player, vec3_t& src, vec3_t& end,
- unsigned mask, CTraceFilter* filter, CGameTrace* tr ) {
- CGameTrace player_trace;
- Ray_t ray;
- float smallest_fraction = tr->fraction;
-
- ray.Init( src, end );
-
- if( !filter->ShouldHitEntity( player, mask ) ) {
- return;
- }
-
- cl.m_trace( )->clip_ray_to_ent( ray, mask | CONTENTS_HITBOX, player, &player_trace );
-
- if( player_trace.fraction < smallest_fraction ) {
- *tr = player_trace;
- smallest_fraction = player_trace.fraction;
- }
-}
-
-
-bool util::trace_ray( vec3_t& start, vec3_t& end, IClientEntity* a, IClientEntity* b ) {
- CGameTrace tr;
- Ray_t ray;
- CTraceFilter filter;
-
- filter.pSkip = a;
-
- ray.Init( start, end );
-
- cl.m_trace( )->trace_ray( ray, 0x46004003 | CONTENTS_HITBOX, &filter, &tr );
- clip_trace_to_player( b, start, end, ( unsigned )0x46004003, &filter, &tr );
-
- return tr.m_pEnt == b || tr.fraction > 0.98f;
-}
-
-void util::set_random_seed( int seed ) {
- using fn = int( __cdecl* )( int );
- fn fn_ptr = ( fn )( GetProcAddress(
- GetModuleHandleA( xors( "vstdlib.dll" ) ),
- xors( "RandomSeed" ) ) );
-
- fn_ptr( seed );
-}
-
-float util::get_random_float( float min, float max ) {
- using fn = float( *)( float, float );
- fn fn_ptr = ( fn )( GetProcAddress(
- GetModuleHandleA( xors( "vstdlib.dll" ) ),
- xors( "RandomFloat" ) ) );
-
- return fn_ptr( min, max );
-}
-
-vec3_t util::get_spread_dir( float inaccuracy, float spread, vec3_t angles, int seed ) {
- set_random_seed( ( seed & 0xff ) + 1 );
-
- float rand_a = get_random_float( 0.0f, 1.0f );
- float pi_rand_a = get_random_float( 0.f, 2.f * M_PI );
- float rand_b = get_random_float( 0.f, 1.0f );
- float pi_rand_b = get_random_float( 0.f, 2.f * M_PI );
-
- float spread_x = cos( pi_rand_a ) * ( rand_a * inaccuracy ) + cos( pi_rand_b ) * ( rand_b * spread );
- float spread_y = sin( pi_rand_a ) * ( rand_a * inaccuracy ) + sin( pi_rand_b ) * ( rand_b * spread );
-
- vec3_t forward, right, up;
- math::angle_vectors( angles, &forward, &right, &up );
-
- vec3_t spread_dir = forward + ( right * spread_x ) + ( up * spread_y );
- spread_dir.normalize_vector( );
-
- return spread_dir;
-}
-
-bool __vectorcall util::intersects_hitbox( vec3_t eye_pos, vec3_t end_pos, vec3_t min, vec3_t max, float radius ) {
- auto dist = math::dist_segment_to_segment( eye_pos, end_pos, min, max );
-
- return ( dist < radius );
-}
-
-float util::get_total_latency( ) {
- auto nci = cl.m_engine( )->GetNetChannelInfo( );
-
- if( nci ) {
- float latency = nci->GetLatency( 0 ) + nci->GetLatency( 1 );
- return latency;
- }
-
- return 0.f;
-}
-
-float util::get_lerptime( ) {
- static cvar_t* cl_interpolate = cl.m_cvar( )->FindVar( xors( "cl_interpolate" ) );
- static cvar_t* cl_interp = cl.m_cvar( )->FindVar( xors( "cl_interp" ) );
- static cvar_t* cl_updaterate = cl.m_cvar( )->FindVar( xors( "cl_updaterate" ) );
- static cvar_t* cl_interp_ratio = cl.m_cvar( )->FindVar( xors( "cl_interp_ratio" ) );
-
- if( cl_interp && cl_interpolate && cl_updaterate && cl_interp_ratio ) {
- bool interpolate = cl_interpolate->get_int( );
- if( interpolate ) {
- float interp = cl_interp->get_float( );
- float interp_ratio = cl_interp_ratio->get_float( );
- float updaterate = cl_updaterate->get_float( );
-
- return std::max< float >( interp, interp_ratio / updaterate );
- }
- }
-
- return 0.f;
-}
-
-bool util::is_tick_valid( int tickcount ) {
- float latency = get_total_latency( );
- float correct = std::clamp( latency + get_lerptime( ), 0.f, 1.f );
- float delta = correct - ( g_ctx.pred_time( ) - TICKS_TO_TIME( tickcount ) );
-
-
- return std::abs( delta ) < 0.2f;
-}
-
-void util::disable_pvs( ) {
- for( int i{ 1 }; i < 65; ++i ) {
- auto ent = cl.m_entlist( )->get_client_entity< c_base_player >( i );
-
- if( !ent || !ent->is_valid( ) )
- continue;
-
- if( ent == g_ctx.m_local )
- continue;
-
- *( int* )( uintptr_t( ent ) + 0xa30 ) = cl.m_globals->framecount;
- *( int* )( uintptr_t( ent ) + 0xa28 ) = 0;
- }
-}
-
-vec2_t util::screen_transform( vec3_t world ) {
- vec3_t tmp; cl.m_overlay( )->ScreenPosition( world, tmp );
- const matrix3x4& w2s_matrix = cl.m_engine( )->GetWorldToScreenMatrix( );
- float w = w2s_matrix[ 3 ][ 3 ];
- for( int i{ }; i < 3; i++ ) {
- w += w2s_matrix[ 3 ][ i ] * world[ i ];
- }
- if( w < 0.001f ) return{ 10000.f, 10000.f };
-
- return{ tmp.x, tmp.y };
-}
-
-const char* util::object_index_to_name( int index ) {
- index = std::clamp( index, 0, 65 );
-
- switch( index ) {
- case 89:
- return xors( "teleporter" );
- case 86:
- return xors( "dispenser" );
- case 88:
- return xors( "sentry" );
- default:
- return xors( "none" );
- }
-}
-
diff --git a/tf2/util.hpp b/tf2/util.hpp deleted file mode 100644 index 7aaa007..0000000 --- a/tf2/util.hpp +++ /dev/null @@ -1,100 +0,0 @@ -#pragma once
-#include <inttypes.h>
-#include <string>
-#include "strings.hpp"
-
-#define NAMESPACE_REGION( x ) namespace x {
-#define END_REGION }
-
-extern int TIME_TO_TICKS( float dt );
-extern float TICKS_TO_TIME( int tick );
-extern float TICK_INTERVAL( );
-
-//WEE WOO WEE WOO ITS THE DWORD POLICE
-using ulong_t = unsigned long;
-using uword_t = unsigned short;
-
-class IClientEntity;
-class CTraceFilter;
-class CGameTrace;
-class vec3_t;
-class vec2_t;
-
-NAMESPACE_REGION( util )
-
-template < typename t >
-struct reverse_iterable {
- reverse_iterable( t&& it ) :
- iterable( it ) { }
-
- t& iterable;
- inline auto begin( ) {
- return std::rbegin( iterable );
- }
-
- inline auto end( ) {
- return std::rend( iterable );
- }
-};
-
-template< typename t >
-reverse_iterable< t >
-reverse_iterator( t&& iter ) {
- return reverse_iterable< t >{ iter };
-}
-
-template < typename fn > __forceinline fn get_vfunc( void* classbase, int index ) {
- if( !classbase ) return fn{ };
- return ( fn )( *( uintptr_t** )classbase )[ index ];
-}
-
-template < size_t index, typename ret, class ... args_ >
-__forceinline ret get_vfunc( void* thisptr, args_... args ) {
- using fn = ret( __thiscall* )( void*, args_... );
-
- auto fn_ptr = ( fn )( *( uintptr_t** )thisptr )[ index ];
- return fn_ptr( thisptr, args... );
-}
-
-__forceinline std::string unicode_to_ascii( const std::wstring& unicode ) {
- std::string ascii_str( unicode.begin( ), unicode.end( ) );
- return ascii_str;
-}
-
-__forceinline std::wstring ascii_to_unicode( const std::string& ascii ) {
- std::wstring unicode_str( ascii.begin( ), ascii.end( ) );
- return unicode_str;
-}
-
-template < typename integer >
-__forceinline auto to_hex_str( const integer& w,
- size_t hex_len = sizeof( integer ) << 1 ) {
- constexpr char* hex_digits = xors( "0123456789abcdef" );
- std::string rc( hex_len, 0 );
-
- for( size_t i{ }, j{ ( hex_len - 1 ) * 4 }; i < hex_len; ++i, j -= 4 )
- rc[ i ] = hex_digits[ ( w >> j ) & 0x0f ];
-
- return rc;
-}
-
-extern void clip_trace_to_player( IClientEntity* player, vec3_t& src, vec3_t& end,
- unsigned mask, CTraceFilter* filter, CGameTrace* trace );
-
-extern bool trace_ray( vec3_t& start, vec3_t& end, IClientEntity* a, IClientEntity* b );
-extern bool is_low_fps( );
-extern bool is_tick_valid( int tickcount );
-extern void set_random_seed( int seed );
-extern vec3_t get_spread_dir( float inaccuracy, float spread, vec3_t angles, int seed );
-extern float get_random_float( float min, float max );
-extern bool __vectorcall intersects_hitbox( vec3_t eye_pos, vec3_t end_pos, vec3_t min, vec3_t max, float radius );
-extern bool hitchance( int target, const vec3_t& angles, int percentage );
-extern bool hitchance( int target, const vec3_t& angle, int percentage, int hi );
-extern float get_total_latency( );
-extern float get_lerptime( );
-extern int get_closest_player( );
-extern vec2_t screen_transform( vec3_t world );
-extern const char* object_index_to_name( int index );
-extern void disable_pvs( );
-
-END_REGION
\ No newline at end of file diff --git a/tf2/vector.hpp b/tf2/vector.hpp deleted file mode 100644 index af24136..0000000 --- a/tf2/vector.hpp +++ /dev/null @@ -1,334 +0,0 @@ -#pragma once
-#include <cmath>
-#include <algorithm>
-
-
-class vec2_t {
-public:
- vec2_t( ) {
- x = y = 0.0f;
- }
-
- vec2_t( float X, float Y ) {
- x = X; y = Y;
- }
-
- vec2_t( float* v ) {
- x = v[ 0 ]; y = v[ 1 ];
- }
-
- vec2_t( const float* v ) {
- x = v[ 0 ]; y = v[ 1 ];
- }
-
- vec2_t( const vec2_t& v ) {
- x = v.x; y = v.y;
- }
-
- vec2_t& operator=( const vec2_t& v ) {
- x = v.x; y = v.y; return *this;
- }
-
- float& operator[]( int i ) {
- return ( ( float* )this )[ i ];
- }
-
- float operator[]( int i ) const {
- return ( ( float* )this )[ i ];
- }
-
- vec2_t& operator+=( const vec2_t& v ) {
- x += v.x; y += v.y; return *this;
- }
-
- vec2_t& operator-=( const vec2_t& v ) {
- x -= v.x; y -= v.y; return *this;
- }
-
- vec2_t& operator*=( const vec2_t& v ) {
- x *= v.x; y *= v.y; return *this;
- }
-
- vec2_t& operator/=( const vec2_t& v ) {
- x /= v.x; y /= v.y; return *this;
- }
-
- vec2_t& operator+=( float v ) {
- x += v; y += v; return *this;
- }
-
- vec2_t& operator-=( float v ) {
- x -= v; y -= v; return *this;
- }
-
- vec2_t& operator*=( float v ) {
- x *= v; y *= v; return *this;
- }
-
- vec2_t& operator/=( float v ) {
- x /= v; y /= v; return *this;
- }
-
- vec2_t operator+( const vec2_t& v ) const {
- return vec2_t( x + v.x, y + v.y );
- }
-
- vec2_t operator-( const vec2_t& v ) const {
- return vec2_t( x - v.x, y - v.y );
- }
-
- vec2_t operator*( const vec2_t& v ) const {
- return vec2_t( x * v.x, y * v.y );
- }
-
- vec2_t operator/( const vec2_t& v ) const {
- return vec2_t( x / v.x, y / v.y );
- }
-
- vec2_t operator+( float v ) const {
- return vec2_t( x + v, y + v );
- }
-
- vec2_t operator-( float v ) const {
- return vec2_t( x - v, y - v );
- }
-
- vec2_t operator*( float v ) const {
- return vec2_t( x * v, y * v );
- }
-
- vec2_t operator/( float v ) const {
- return vec2_t( x / v, y / v );
- }
-
- void set( float X = 0.0f, float Y = 0.0f ) {
- x = X; y = Y;
- }
-
- float length( void ) const {
- return sqrtf( x * x + y * y );
- }
-
- float lengthsqr( void ) const {
- return ( x * x + y * y );
- }
-
- float dist_to( const vec2_t& v ) const {
- return ( *this - v ).length( );
- }
-
- float dist_to_sqr( const vec2_t& v ) const {
- return ( *this - v ).lengthsqr( );
- }
-
- float dot( const vec2_t& v ) const {
- return ( x * v.x + y * v.y );
- }
-
- bool is_zero( void ) const {
- return ( x > -FLT_EPSILON && x < FLT_EPSILON &&
- y > -FLT_EPSILON && y < FLT_EPSILON );
- }
-
- operator bool( ) const noexcept {
- return !is_zero( );
- }
-
-public:
- float x, y;
-};
-
-class vec3_t {
-public:
- vec3_t( ) {
- x = y = z = 0.0f;
- }
-
- vec3_t( float X, float Y, float Z ) {
- x = X; y = Y; z = Z;
- }
-
- vec3_t( float* v ) {
- x = v[ 0 ]; y = v[ 1 ]; z = v[ 2 ];
- }
-
- vec3_t( const float* v ) {
- x = v[ 0 ]; y = v[ 1 ]; z = v[ 2 ];
- }
-
- vec3_t( const vec3_t& v ) {
- x = v.x; y = v.y; z = v.z;
- }
-
- vec3_t( const vec2_t& v ) {
- x = v.x; y = v.y; z = 0.0f;
- }
-
- __forceinline vec3_t& operator=( const vec3_t& v ) {
- x = v.x; y = v.y; z = v.z; return *this;
- }
-
- __forceinline vec3_t& operator=( const vec2_t& v ) {
- x = v.x; y = v.y; z = 0.0f; return *this;
- }
-
- float& operator[]( int i ) {
- return ( ( float* )this )[ i ];
- }
-
- __forceinline float operator[]( int i ) const {
- return ( ( float* )this )[ i ];
- }
-
- vec3_t& operator+=( const vec3_t& v ) {
- x += v.x; y += v.y; z += v.z; return *this;
- }
-
- vec3_t& operator-=( const vec3_t& v ) {
- x -= v.x; y -= v.y; z -= v.z; return *this;
- }
-
- vec3_t& operator*=( const vec3_t& v ) {
- x *= v.x; y *= v.y; z *= v.z; return *this;
- }
-
- vec3_t& operator/=( const vec3_t& v ) {
- x /= v.x; y /= v.y; z /= v.z; return *this;
- }
-
- vec3_t& operator+=( float v ) {
- x += v; y += v; z += v; return *this;
- }
-
- vec3_t& operator-=( float v ) {
- x -= v; y -= v; z -= v; return *this;
- }
-
- vec3_t& operator*=( float v ) {
- x *= v; y *= v; z *= v; return *this;
- }
-
- vec3_t& operator/=( float v ) {
- x /= v; y /= v; z /= v; return *this;
- }
-
- __forceinline vec3_t operator+( const vec3_t& v ) const {
- return vec3_t( x + v.x, y + v.y, z + v.z );
- }
-
- __forceinline vec3_t operator-( const vec3_t& v ) const {
- return vec3_t( x - v.x, y - v.y, z - v.z );
- }
-
- __forceinline vec3_t operator*( const vec3_t& v ) const {
- return vec3_t( x * v.x, y * v.y, z * v.z );
- }
-
- __forceinline vec3_t operator/( const vec3_t& v ) const {
- return vec3_t( x / v.x, y / v.y, z / v.z );
- }
-
- __forceinline vec3_t operator+( float v ) const {
- return vec3_t( x + v, y + v, z + v );
- }
-
- __forceinline vec3_t operator-( float v ) const {
- return vec3_t( x - v, y - v, z - v );
- }
-
- __forceinline vec3_t operator*( float v ) const {
- return vec3_t( x * v, y * v, z * v );
- }
-
- __forceinline vec3_t operator/( float v ) const {
- return vec3_t( x / v, y / v, z / v );
- }
-
- __forceinline float length( ) const {
- return sqrtf( x * x + y * y + z * z );
- }
-
- __forceinline float lengthsqr( ) const {
- return ( x * x + y * y + z * z );
- }
-
- __forceinline float length2d( ) const {
- return sqrtf( x * x + y * y );
- }
-
- __forceinline float length2dsqr( ) const {
- return ( x * x + y * y );
- }
-
- __forceinline float dist_to( const vec3_t& v ) const {
- return ( *this - v ).length( );
- }
-
- __forceinline float dist_to_sqr( const vec3_t& v ) const {
- return ( *this - v ).lengthsqr( );
- }
-
- __forceinline float dot( const vec3_t& v ) const {
- return ( x * v.x + y * v.y + z * v.z );
- }
-
- __forceinline float fov_to( vec3_t to ) {
- const float from_length = length( );
- const float to_length = to.length( );
-
- if( from_length && to_length ) {
- return acos( dot( to ) / from_length * to_length );
- }
-
- return 0.f;
- }
-
- vec3_t cross( const vec3_t& v ) const {
- return vec3_t( y * v.z - z * v.y, z * v.x - x * v.z, x * v.y - y * v.x );
- }
-
- bool is_zero( ) const {
- return ( x > -FLT_EPSILON && x < FLT_EPSILON &&
- y > -FLT_EPSILON && y < FLT_EPSILON &&
- z > -FLT_EPSILON && z < FLT_EPSILON );
- }
-
- operator bool( ) const {
- return !is_zero( );
- }
-
- inline void normalize_vector( ) {
- vec3_t& v = *this;
-
- float iradius = 1.f / ( this->length( ) + FLT_EPSILON ); //FLT_EPSILON
-
- v.x *= iradius;
- v.y *= iradius;
- v.z *= iradius;
- }
-
- vec3_t abs( ) const {
- return vec3_t{ std::abs( x ), std::abs( y ), std::abs( z ) };
- }
-
- vec3_t clamp( ) {
- for( size_t axis{ }; axis < 2; axis++ ) {
- auto &cur_axis = operator[]( axis );
- if( !std::isfinite( cur_axis ) ) {
- cur_axis = 0.f;
- }
- }
-
- x = std::clamp( x, -89.f, 89.f );
- y = std::clamp( std::remainder( y, 360.f ), -180.f, 180.f );
- z = 0.f;
- return *this;
- }
-
-public:
- float x, y, z;
-};
-
-__forceinline vec3_t operator*( float f, const vec3_t& v ) {
- return v * f;
-}
diff --git a/tf2/visuals.hpp b/tf2/visuals.hpp deleted file mode 100644 index 2f8e9f3..0000000 --- a/tf2/visuals.hpp +++ /dev/null @@ -1,56 +0,0 @@ -#pragma once
-#include <vector>
-#include "vector.hpp"
-#include "color.hpp"
-#include <unordered_map>
-#include "strings.hpp"
-#include "IVRenderView.h"
-class c_base_player;
-
-namespace features
-{
- class c_visuals {
- private:
- static const clr_t esp_green( uint8_t alpha = 255 ) {
- return clr_t( 1, 216, 62, alpha );
- }
- static const clr_t esp_red( uint8_t alpha = 255 ) {
- return clr_t( 240, 0, 0, alpha );
- }
- static const clr_t esp_blue( uint8_t alpha = 255 ) {
- return clr_t( 84, 173, 247, alpha );
- }
-
- void draw_line( const vec2_t& a, const vec2_t& b, const clr_t& clr );
- void draw_line( int x, int y, int x1, int y1, const clr_t& clr );
- void draw_rect( int x, int y, int w, int h, const clr_t& clr );
- void draw_filled_rect( int x, int y, int w, int h, const clr_t& clr );
- void draw_circle( int x, int y, int r, const clr_t& clr, int res = 48 );
-
- void draw_really_big_string( int x, int y, const clr_t& clr, const char* msg, ... );
- void draw_string( int x, int y, int align, bool big, const clr_t& clr, const char* msg, ... );
-
-
- void draw_local( );
- void draw_players( );
- void draw_world( );
-
- void draw_hits( );
- void spectator_list( );
- //void throwable_prediction( );
-
- void invalidate_glow( );
-
- vec3_t m_stored_pos[ 65 ]{ };
- float m_anim_progress[ 65 ]{ };
- float m_last_hit{ };
- int m_ent_dmg[ 65 ]{ };
- public:
- void update_glow( );
- void world_modulate( );
- void update_position( int index, const vec3_t& pos );
- void out_of_fov( c_base_player* ent, const vec3_t& pos, clr_t col );
- void store_hit( );
- void operator()( );
- };
-}
\ No newline at end of file diff --git a/tf2/visuals_draw.cpp b/tf2/visuals_draw.cpp deleted file mode 100644 index 87c476b..0000000 --- a/tf2/visuals_draw.cpp +++ /dev/null @@ -1,94 +0,0 @@ -#include "d3d.hpp"
-#include "interfaces.h"
-#include "renderer.hpp"
-#include "visuals.hpp"
-#include "settings.h"
-
-namespace features
-{
- void c_visuals::draw_line( const vec2_t& a, const vec2_t& b, const clr_t& clr ) {
- if( g_settings.misc.hide_from_obs )
- g_d3d.draw_line( clr, a.x, a.y, b.x, b.y );
- else
- g_renderer.draw_line( a, b, clr );
- }
-
- void c_visuals::draw_line( int x, int y, int x1, int y1, const clr_t& clr ) {
- if( g_settings.misc.hide_from_obs )
- g_d3d.draw_line( clr, x, y, x1, y1 );
- else
- g_renderer.draw_line( x, y, x1, y1, clr );
- }
-
- void c_visuals::draw_rect( int x, int y, int w, int h, const clr_t& clr ) {
- if( g_settings.misc.hide_from_obs )
- g_d3d.draw_rect( clr, x, y, w, h );
- else
- g_renderer.draw_box( x, y, w, h, clr );
- }
-
- void c_visuals::draw_filled_rect( int x, int y, int w, int h, const clr_t& col ) {
- if( g_settings.misc.hide_from_obs )
- g_d3d.draw_filled_rect( col, x, y, w, h );
- else
- g_renderer.draw_rect( x, y, w, h, col );
- }
-
- void c_visuals::draw_circle( int x, int y, int r, const clr_t& col, int res ) {
- if( g_settings.misc.hide_from_obs )
- g_d3d.draw_circle( col, x, y, r, res );
- else
- g_renderer.draw_circle( x, y, r, col, res );
- }
-
- void c_visuals::draw_string( int x, int y, int align, bool big, const clr_t& col, const char* msg, ... ) {
- char* buffer = ( char* )_alloca( 1024 );
- va_list list{ };
-
- memset( buffer, 0, 1024 );
-
- __crt_va_start( list, msg );
- vsprintf_s( buffer, 1024, msg, list );
- __crt_va_end( list );
-
- switch( align ) {
- case ALIGN_CENTER:
- if( g_settings.misc.hide_from_obs )
- g_d3d.draw_text< ALIGN_CENTER >( big ? ::d3d::fonts.f_12 : ::d3d::fonts.f_esp_small, col, x, y, big ? D3DFONTFLAG_DROPSHADOW : D3DFONTFLAG_OUTLINE, buffer );
- else
- g_renderer.draw_string< ALIGN_CENTER >( big ? g_fonts.f_12 : g_fonts.f_esp_small, x, y, col, buffer );
-
- break;
- case ALIGN_LEFT:
- if( g_settings.misc.hide_from_obs )
- g_d3d.draw_text< ALIGN_LEFT >( big ? ::d3d::fonts.f_12 : ::d3d::fonts.f_esp_small, col, x, y, big ? D3DFONTFLAG_DROPSHADOW : D3DFONTFLAG_OUTLINE, buffer );
- else
- g_renderer.draw_string< ALIGN_LEFT >( big ? g_fonts.f_12 : g_fonts.f_esp_small, x, y, col, buffer );
-
- break;
- case ALIGN_RIGHT:
- if( g_settings.misc.hide_from_obs )
- g_d3d.draw_text< ALIGN_RIGHT >( big ? ::d3d::fonts.f_12 : ::d3d::fonts.f_esp_small, col, x, y, big ? D3DFONTFLAG_DROPSHADOW : D3DFONTFLAG_OUTLINE, buffer );
- else
- g_renderer.draw_string< ALIGN_RIGHT >( big ? g_fonts.f_12 : g_fonts.f_esp_small, x, y, col, buffer );
-
- break;
- }
- }
-
- void c_visuals::draw_really_big_string( int x, int y, const clr_t& col, const char* msg, ... ) {
- char* buffer = ( char* )_alloca( 1024 );
- va_list list{ };
-
- memset( buffer, 0, 1024 );
-
- __crt_va_start( list, msg );
- vsprintf_s( buffer, 1024, msg, list );
- __crt_va_end( list );
-
- if( g_settings.misc.hide_from_obs )
- g_d3d.draw_text< ALIGN_LEFT >( ::d3d::fonts.f_18, col, x, y, D3DFONTFLAG_OUTLINE, buffer );
- else
- g_renderer.draw_string< ALIGN_LEFT >( g_fonts.f_bold, x, y, col, msg );
- }
-}
\ No newline at end of file diff --git a/tf2/visuals_local.cpp b/tf2/visuals_local.cpp deleted file mode 100644 index 7f549d9..0000000 --- a/tf2/visuals_local.cpp +++ /dev/null @@ -1,207 +0,0 @@ -#include <algorithm>
-
-#include "visuals.hpp"
-#include "ctx.hpp"
-#include "base_cheat.h"
-#include "renderer.hpp"
-#include "input_system.hpp"
-#include "math.h"
-#include "settings.h"
-#include "interfaces.h"
-namespace features
-{
- void c_visuals::draw_local( ) {
- int screen_w, screen_h;
- cl.m_engine( )->GetScreenSize( screen_w, screen_h );
-
- int cur_pos{ };
-
-
- if( g_settings.misc.no_scope( ) &&
- g_ctx.m_local->m_bIsScoped( ) ) {
- int w, h;
- cl.m_engine( )->GetScreenSize( w, h );
-
- draw_line( 0, h / 2, w, h / 2, clr_t( 0, 0, 0 ) );
- draw_line( w / 2, 0, w / 2, h, clr_t( 0, 0, 0 ) );
- }
- spectator_list( );
- //throwable_prediction( ); -- sometime when i can be fucked
- }
-
- void c_visuals::spectator_list( ) {
- if( !g_settings.visuals.spec_list )
- return;
-
- std::vector< std::string > spec_list;
-
- for( size_t i{ }; i < 65; ++i ) {
- auto ent = cl.m_entlist( )->get_client_entity< c_base_player >( i );
- if( ent && ent->is_player( ) && !ent->ce( )->is_dormant( ) ) {
- auto spec_handle = ent->m_hObserverTarget( );
- auto spec_ent = cl.m_entlist( )->get_entity_from_handle< c_base_player >( spec_handle );
-
- if( spec_ent == g_ctx.m_local ) {
- char player_name[ 32 ];
- ent->get_name_safe( player_name );
- spec_list.push_back( player_name );
- }
- }
- }
-
- int screen_w, screen_h;
- cl.m_engine( )->GetScreenSize( screen_w, screen_h );
-
- int cur_pos{ };
-
- if( g_settings.misc.watermark ) {
- cur_pos = 20;
- }
-
- for( auto& it : spec_list ) {
- draw_string( screen_w - 3, cur_pos, ALIGN_RIGHT, true, clr_t( 255, 255, 255 ), it.c_str( ) );
- cur_pos += 10;
- }
- }
- //i wanna do this
- /*
- void c_visuals::throwable_prediction( ) {
- static auto sv_gravity = cl.m_cvar( )->FindVar( xors( "sv_gravity" ) );
-
- if( !g_settings.visuals.grenade_prediction )
- return;
-
-
- /*
- auto get_detonate_time = [ ]( int defindex ) {
- switch( defindex ) {
- case WEAPON_FLASHBANG:
- case WEAPON_HEGRENADE:
- return 1.5f;
- case WEAPON_INCGRENADE:
- case WEAPON_MOLOTOV:
- return molotov_detonate_time->get_float( );
- case WEAPON_DECOY:
- return 5.f;
- default: return 3.f;
- }
- };
-
- auto draw_3d_line = [ this ]( const vec3_t& start, const vec3_t& end, clr_t col, bool circle = false ) {
- vec2_t start_w2s = util::screen_transform( start );
- vec2_t end_w2s = util::screen_transform( end );
-
- draw_line( start_w2s, end_w2s, col );
- if( circle )
- draw_rect( end_w2s.x - 1, end_w2s.y - 1, 2, 2, clr_t( 230, 230, 230 ) );
- };
-
- auto clip_velocity = [ ]( const vec3_t& in, const vec3_t& normal, vec3_t& out, float overbounce ) {
- int blocked = 0;
- float angle = normal[ 2 ];
-
- if( angle > 0.f )
- blocked |= 1;
-
- if( !angle )
- blocked |= 2;
-
- float backoff = in.dot( normal ) * overbounce;
-
- for( int i{ }; i < 3; ++i ) {
- out[ i ] = in[ i ] - ( normal[ i ] * backoff );
-
- if( out[ i ] > -0.1f && out[ i ] < 0.1f ) {
- out[ i ] = 0.f;
- }
- }
-
- return blocked;
- };
-
- auto weapon = g_ctx.m_local->get_active_weapon( );
- if( !weapon ) return;
-
- int def_index = weapon->m_iItemDefinitionIndex( );
- if( weapon->has_trajectory( ) )
- return;
-
- auto wpn_info = weapon->get_wpn_info( );
-
- vec3_t throw_ang, forward;
- cl.m_engine( )->GetViewAngles( throw_ang );
- throw_ang.x -= ( 90.f - abs( throw_ang.x ) ) * 0.11111111f;
- throw_ang.x = std::remainderf( throw_ang.x, 360.f );
-
- forward = math::angle_vectors( throw_ang );
-
- float throw_strength = weapon->m_flThrowStrength( );
- float throw_velocity = std::min( std::max( wpn_info->throw_velocity * 0.9f, 15.f ), 750.f );
-
- float throw_height = ( throw_strength * 12.f ) - 12.f;
- float v68 = throw_velocity * ( ( 0.7f * throw_strength ) + 0.3f );
-
- vec3_t start_pos = g_ctx.m_local->get_eye_pos( ) + vec3_t( 0, 0, throw_height );
- vec3_t end_pos = start_pos + ( forward * 22.f );
-
- CTraceFilter filter;
- filter.pSkip = g_ctx.m_local;
-
- CGameTrace trace;
- Ray_t ray;
- ray.Init( start_pos, end_pos, vec3_t( -2.f, -2.f, -2.f ), vec3_t( 2.f, 2.f, 2.f ) );
-
- cl.m_trace( )->trace_ray( ray, CONTENTS_SOLID | CONTENTS_MONSTER | CONTENTS_MOVEABLE | CONTENTS_CURRENT_90, &filter, &trace );
- end_pos = trace.endpos - forward * 6.f;
- vec3_t throw_pos = g_ctx.m_local->m_vecVelocity( ) * 1.25f + forward * v68;
-
- //draw_3d_line( start_pos, end_pos, clr_t( 255, 255, 255 ) );
- float gravity = sv_gravity->get_float( ) * 0.4f;
-
- player_info_t info{ };
-
- for( int ticks = TIME_TO_TICKS( get_detonate_time( def_index ) ); ticks >= 0; --ticks ) {
- auto throw_dir = vec3_t( throw_pos.x, throw_pos.y, ( throw_pos.z + ( throw_pos.z - ( gravity * TICK_INTERVAL( ) ) ) ) * 0.5f );
- auto temp = throw_dir * TICK_INTERVAL( );
- throw_pos.z -= gravity * TICK_INTERVAL( );
-
- vec3_t src = end_pos, end = end_pos + temp;
- Ray_t ray;
- ray.Init( src, end, vec3_t( -2.f, -2.f, -2.f ), vec3_t( 2.f, 2.f, 2.f ) );
-
- cl.m_trace( )->trace_ray( ray, CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_MONSTER | CONTENTS_CURRENT_90, &filter, &trace );
- if( trace.allsolid )
- throw_pos = vec3_t( );
-
- end_pos = trace.endpos;
- draw_3d_line( src, end_pos, clr_t( 66, 143, 244 ) );
-
- if( trace.fraction != 1.f ) {
- float surf_elasticity = 1.f;
- vec3_t throw_pos2{ };
- clip_velocity( throw_pos, trace.plane.normal, throw_pos2, 2.f );
-
- if( trace.m_pEnt && cl.m_engine( )->GetPlayerInfo( trace.m_pEnt->index( ), &info ) ) {
- surf_elasticity = 0.3f;
- }
-
- throw_pos2 *= std::clamp( surf_elasticity * 0.45f, 0.f, 0.9f );
- end = end_pos + throw_pos2 * ( ( 1.f - trace.fraction ) * TICK_INTERVAL( ) );
-
- if( def_index == WEAPON_MOLOTOV || def_index == WEAPON_INCGRENADE ) {
- if( trace.plane.normal.z >= cos( DEG2RAD( molotov_detonate_slope->get_float( ) ) ) ) {
- return;
- }
- }
-
- ray.Init( end_pos, end, vec3_t( -2.f, -2.f, -2.f ), vec3_t( 2.f, 2.f, 2.f ) );
- cl.m_trace( )->trace_ray( ray, CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_MONSTER | CONTENTS_CURRENT_90, &filter, &trace );
-
- draw_3d_line( end_pos, end, clr_t( 66, 143, 244 ), true );
- end_pos = trace.endpos;
- throw_pos = throw_pos2;
- }
- }
- }*/
-
-}
\ No newline at end of file diff --git a/tf2/visuals_objects.cpp b/tf2/visuals_objects.cpp deleted file mode 100644 index e69de29..0000000 --- a/tf2/visuals_objects.cpp +++ /dev/null diff --git a/tf2/visuals_players.cpp b/tf2/visuals_players.cpp deleted file mode 100644 index 8b9aaf9..0000000 --- a/tf2/visuals_players.cpp +++ /dev/null @@ -1,551 +0,0 @@ -#include <algorithm>
-
-#include "visuals.hpp"
-#include "ctx.hpp"
-#include "base_cheat.h"
-#include "renderer.hpp"
-#include "input_system.hpp"
-#include "math.h"
-#include "settings.h"
-#include "interfaces.h"
-//2k lines of code here
-int screen_w, screen_h;
-
-namespace features
-{
- void c_visuals::update_position( int index, const vec3_t& pos ) {
- m_stored_pos[ index ] = pos;
- if( m_anim_progress[ index ] <= 0.3f && g_settings.visuals.dormant ) {
- m_anim_progress[ index ] = 0.3f;
- }
- }
-
- void c_visuals::store_hit( ) {
- if( !g_settings.visuals.hitmarkers )
- return;
-
- cl.m_surface( )->play_sound( xors( "buttons\\arena_switch_press_02.wav" ) );
- m_last_hit = cl.m_globals->curtime;
- }
-
-
- void c_visuals::draw_hits( ) {
- if( !g_settings.visuals.hitmarkers || !g_ctx.run_frame( ) )
- return;
-
- static const clr_t col_start = clr_t( 231, 75, 75, 255 );
- static const clr_t col_end = clr_t( 0xf4, 0x7c, 0xa8, 255 );
-
- float delta = ( cl.m_globals->curtime - m_last_hit ) * 1.5f;
- if( std::abs( delta ) > 1.0f ) return;
-
- clr_t blend = clr_t::blend( col_start, col_end, delta );
- if( delta > 0.75f ) {
- blend.a( ) = 255 * ( 1.0f - delta ) * 4.f;
- }
-
- auto get_rotated_point = [ ]( vec2_t point, float rotation, float distance ) {
- float rad = DEG2RAD( rotation );
-
- point.x += sin( rad ) * distance;
- point.y += cos( rad ) * distance;
-
- return point;
- };
-
-
- for( size_t i{ }; i < 2; ++i ) {
- float rotation = 135.f + i * 90.f;
-
- vec2_t center = { screen_w * 0.5f, screen_h * 0.5f };
- vec2_t start = get_rotated_point( center, rotation, 8.f );
- vec2_t end = get_rotated_point( center, rotation, 17.f );
-
- vec2_t rot_start = get_rotated_point( center, rotation - 180.f, 8.f );
- vec2_t rot_end = get_rotated_point( center, rotation - 180.f, 17.f );
-
- draw_line( start, end, blend );
- draw_line( rot_start, rot_end, blend );
- }
- }
-
- struct box_t {
- int x, y, w, h;
- };
-
- box_t get_box( c_base_player* ent ) {
- const matrix3x4& matrix = ent->m_CollisionGroup( );
-
- vec3_t min = ent->m_vecMins( );
- vec3_t max = ent->m_vecMaxs( );
-
- std::array< vec3_t, 8 > point_list = {
- vec3_t{ min.x, min.y, min.z },
- vec3_t{ min.x, max.y, min.z },
- vec3_t{ max.x, max.y, min.z },
- vec3_t{ max.x, min.y, min.z },
- vec3_t{ max.x, max.y, max.z },
- vec3_t{ min.x, max.y, max.z },
- vec3_t{ min.x, min.y, max.z },
- vec3_t{ max.x, min.y, max.z }
- };
-
- std::array< float, 8 > x_points;
- std::array< float, 8 > y_points;
-
- vec2_t origin = util::screen_transform( ent->m_vecOrigin( ) );
-
- for( auto& it : point_list ) {
- vec3_t backup = it;
- for( int i{ }; i < 3; ++i ) {
- it[ i ] = backup.dot( ( const vec3_t& )( matrix[ i ] ) ) + matrix[ i ][ 3 ];
- }
- }
-
- for( size_t i{ }; i < 8; ++i ) {
- vec2_t w2s = util::screen_transform( point_list[ i ] );
- x_points[ i ] = w2s.x;
- y_points[ i ] = w2s.y;
- }
-
- std::sort( x_points.begin( ), x_points.end( ) );
- std::sort( y_points.begin( ), y_points.end( ) );
-
- int x = ( int )x_points.front( );
- int w = ( int )x_points.back( ) - x;
-
- int y = ( int )y_points.front( );
- int h = ( int )y_points.back( ) - y;
-
- return { x - ( int )origin.x, y - ( int )origin.y, w, h };
- }
-
- void c_visuals::out_of_fov( c_base_player* ent, const vec3_t& pos, clr_t col ) {
- vec2_t screen;
- vec2_t circle;
-
- auto find_point = [ ]( vec2_t& point, float deg_x, float deg_y ) {
- float x2 = screen_w / 2.f;
- float y2 = screen_h / 2.f;
-
- float d = sqrt( pow( point.x - x2, 2 ) + pow( point.y - y2, 2 ) );
- float r_x = deg_x / d;
- float r_y = deg_y / d;
-
- point.x = r_x * point.x + ( 1.f - r_x ) * x2;
- point.y = r_y * point.y + ( 1.f - r_y ) * y2;
- };
-
- auto get_screen_point = [ ]( vec2_t& screen, const vec3_t& delta ) {
- decltype( auto ) w2s_matrix = cl.m_engine( )->GetWorldToScreenMatrix( );
- float x;
- float w;
- float y;
-
- screen.x = w2s_matrix[ 0 ][ 0 ] * delta[ 0 ] + w2s_matrix[ 0 ][ 1 ] * delta[ 1 ] + w2s_matrix[ 0 ][ 2 ] * delta[ 2 ] + w2s_matrix[ 0 ][ 3 ];
- screen.y = w2s_matrix[ 1 ][ 0 ] * delta[ 0 ] + w2s_matrix[ 1 ][ 1 ] * delta[ 1 ] + w2s_matrix[ 1 ][ 2 ] * delta[ 2 ] + w2s_matrix[ 1 ][ 3 ];
- w = w2s_matrix[ 3 ][ 0 ] * delta[ 0 ] + w2s_matrix[ 3 ][ 1 ] * delta[ 1 ] + w2s_matrix[ 3 ][ 2 ] * delta[ 2 ] + w2s_matrix[ 3 ][ 3 ];
-
- if( w < 0.001f ) {
- float invw = -1.0f / w;
- screen.x *= invw;
- screen.y *= invw;
- }
- else {
- float invw = 1.0f / w;
- screen.x *= invw;
- screen.y *= invw;
- }
-
- x = float( screen_w ) / 2.f;
- y = float( screen_h ) / 2.f;
- x += 0.5f * screen.x * screen_w + 0.5f;
- y -= 0.5f * screen.y * screen_h + 0.5f;
- screen.x = x;
- screen.y = y;
- };
-
- screen = util::screen_transform( pos );//get_screen_point( screen, pos );
- circle = util::screen_transform( pos );// get_screen_point( circle, pos );
-
- float radius = g_settings.visuals.out_of_pov_radius * 0.49f;
-
- float ratio = g_settings.visuals.out_of_pov_radius;
-
- float w = screen_w * ratio + screen_h * ( 1.0f - ratio );
-
- find_point( screen, w * radius,
- float( screen_h ) * radius );
-
- auto min = std::min< int >( screen_w, screen_h ) * radius;
- find_point( circle, float( min ), float( min ) );
-
- auto rot_around_center = [ ]( vec2_t start, float rot ) {
- float rad = rot * ( M_PI / 180.f );
-
- start.x += sin( rad ) * float( g_settings.visuals.out_of_pov_size );
- start.y += cos( rad ) * float( g_settings.visuals.out_of_pov_size );
-
- return start;
- };
-
- float delta_x = ( float( screen_w / 2 ) - circle.x );
- float delta_y = ( float( screen_h / 2 ) - circle.y );
-
- auto hyp = sqrt( delta_x * delta_x + delta_y * delta_y );
-
- float cos_ = delta_x / hyp;
-
- float deg = RAD2DEG( acos( cos_ ) );
-
- if( screen.y < screen_h / 2 ) {
- deg *= -1.f;
- }
-
- auto rotated_pos_1 = rot_around_center( screen, deg + 115 );
- auto rotated_pos_2 = rot_around_center( screen, deg + 65 );
-
- col.a( ) *= 0.8f;
-
- vertex_t v[ ] = {
- { screen },
- { rotated_pos_1 },
- { rotated_pos_2 }
- };
-
- if( !g_settings.misc.hide_from_obs )
- g_renderer.draw_polygon( 3, v, col );
- else {
- draw_line( screen, rotated_pos_1, col );
- draw_line( screen, rotated_pos_2, col );
- draw_line( rotated_pos_1, rotated_pos_2, col );
- }
- }
-
- void c_visuals::update_glow( ) {
- if( !g_settings.visuals.active || g_settings.misc.hide_from_obs )
- return;
-
- static auto glow_object_manager = *pattern::first_code_match< GlowObjectManager_t** >( cl.m_chl.dll( ), xors ( "8B 0D ? ? ? ? A1 ? ? ? ? 56 8B 37" ) ) + 0x2;
- if( !glow_object_manager ) return; - - static bool invalidated; - if( !g_settings.visuals.glow ) { - if( !invalidated ) { - invalidate_glow( ); - invalidated = true; - } - return; - }
-
- invalidated = false;
- for( int i{ }; i < 64; ++i ) {
- auto ent = cl.m_entlist( )->get_client_entity< c_base_player >( i );
- if( !ent ) continue;
-
-
- if( !ent->is_valid( ) ) { - continue; - } - - if( ent->is_enemy( ) || g_settings.visuals.friendlies ) { - ent->m_bGlowEnabled( ) = true; - ent->update_glow_effect( ); - }
- }
-
- if( !glow_object_manager->data.Count( ) ) return; //data count crashed yea lazy cool cool? cool
- for( int i{ }; i < glow_object_manager->data.Count( ); ++i ) {
- auto ent = ( c_base_player* )cl.m_entlist( )->get_entity_from_handle( glow_object_manager->data[ i ].ent_ptr );
- if( ent && ent->is_valid( ) && ( ent->is_enemy( ) || g_settings.visuals.friendlies( ) ) ) { - clr_t clr = ent->m_iTeamNum( ) == g_ctx.m_local->m_iTeamNum( ) ? g_settings.visuals.glow_friendly : g_settings.visuals.glow_enemy; - clr.a( ) = 200; - glow_object_manager->data[ i ].glow_color = clr.to_fclr( ); - }
- }
-
- }
-
- void c_visuals::invalidate_glow( ) {
- for( int i{ }; i < 64; i++ ) { - auto ent = cl.m_entlist( )->get_client_entity< c_base_player >( i ); - if( !ent ) continue; - if( ent->get_client_class( )->m_class_id == CTFPlayer ) { - ent->m_bGlowEnabled( ) = false; - ent->destroy_glow_effect( ); - } - }
- }
-
- inline clr_t blend_clr( clr_t in, float progress ) {
- static const clr_t clr_gray = { 160, 160, 160, 255 };
- int a = in.a( );
-
- clr_t ret = clr_t::blend( clr_gray, in, 0.1f + progress * 0.9f );
- ret.a( ) = a;
- return ret;
- }
-
- void c_visuals::draw_players( ) {
- static constexpr float anim_rate = 1.0f / 0.3f;
- static float pov_progress[ 65 ]{ };
-
- auto resource = c_base_player::get_player_resource( );
-
- for( int i{ }; i < 65; ++i ) {
- auto ent = cl.m_entlist( )->get_client_entity< c_base_player >( i );
-
- if( !ent || !ent->is_player( ) || !ent->is_alive( ) || ent == g_ctx.m_local )
- continue;
-
- if( i == ( g_ctx.m_local->m_hObserverTarget( ) & 0xfff ) )
- continue;
-
- if( ent->m_iTeamNum( ) == g_ctx.m_local->m_iTeamNum( ) &&
- !g_settings.visuals.friendlies( ) )
- continue;
-
- float rate = cl.m_globals->frametime * anim_rate;
- float& anim = m_anim_progress[ i ];
- float alpha = anim;
- bool dormant = ent->ce( )->is_dormant( );
- int health = ent->m_iHealth( );
- auto origin = ent->m_vecOrigin( );
- auto box = get_box( ent );
- int right_pos = 0;
- int bottom_pos = 0;
- bool too_distant = true;
- if( g_ctx.m_local )
- too_distant = ent->m_vecOrigin( ).dist_to( g_ctx.m_local->m_vecOrigin( ) ) > 2500.f;
-
- if( !dormant ) {
- update_position( i, origin );
- anim = 1.0f;
- }
- else {
- if( anim < 0.3f && g_settings.visuals.dormant && !too_distant ) {
- rate *= 0.01f;
- }
- anim = std::clamp( anim -= rate, 0.f, 1.0f );
- if( m_anim_progress[ i ] <= 0.f )
- continue;
- }
-
- clr_t col = ent->m_iTeamNum( ) == g_ctx.m_local->m_iTeamNum( ) ?
- g_settings.visuals.box_friendly : g_settings.visuals.box_enemy;
-
- if( dormant ) {
- col = blend_clr( col, anim );
- col.a( ) *= anim;
- }
-
- auto w2s_cur_origin = util::screen_transform( m_stored_pos[ i ] );
-
- box.x += w2s_cur_origin.x;
- box.y += w2s_cur_origin.y;
-
- if( box.x > screen_w || box.x + box.w < 0 ||
- box.y > screen_h || box.y + box.h < 0 ) {
- if( g_settings.visuals.out_of_pov ) {
- auto& anim = pov_progress[ i ];
- anim = std::clamp( anim += cl.m_globals->frametime * anim_rate, 0.f, 1.0f );
- if( dormant )
- anim = std::clamp( anim -= cl.m_globals->frametime * anim_rate, 0.f, 1.0f );
- else
- anim = std::clamp( anim += cl.m_globals->frametime * anim_rate, 0.f, 1.0f );
-
- col.a( ) *= anim;
- out_of_fov( ent, origin, col );
- }
- continue;
- }
-
- pov_progress[ i ] = 0.f;
-
- if( g_settings.visuals.skeleton( ) && !dormant ) {
- clr_t col = ent->m_iTeamNum( ) == g_ctx.m_local->m_iTeamNum( ) ? g_settings.visuals.skeleton_friendly : g_settings.visuals.skeleton_enemy;
- col.a( ) *= alpha;
-
- auto hdr = cl.m_modelinfo( )->GetStudioModel( ent->ce( )->get_model( ) );
- if( hdr ) {
- matrix3x4 matrix[ 128 ];
- ent->ce( )->setup_bones( matrix, 128, 0x100, 0.f );
-
- for( size_t bone{ }; bone < hdr->numbones; ++bone ) {
- auto b = hdr->GetBone( bone );
- if( b && b->flags & 0x100 && b->parent != -1 ) {
- vec3_t child = vec3_t{ matrix[ bone ][ 0 ][ 3 ], matrix[ bone ][ 1 ][ 3 ], matrix[ bone ][ 2 ][ 3 ] };
- vec3_t parent = vec3_t{ matrix[ b->parent ][ 0 ][ 3 ], matrix[ b->parent ][ 1 ][ 3 ], matrix[ b->parent ][ 2 ][ 3 ] };
-
- auto child_screen = util::screen_transform( child );
- auto parent_screen = util::screen_transform( parent );
-
- draw_line( child_screen, parent_screen, col );
- }
- }
- }
- }
-
- if( g_settings.visuals.box( ) ) {
- auto alpha_ = col.a( );
- float percent = float( alpha_ ) / 255.f;
- draw_rect( box.x + 1, box.y + 1, box.w - 2, box.h - 2, clr_t( 0, 0, 0, 180 * alpha * percent ) );
- draw_rect( box.x, box.y, box.w, box.h, col );
- }
-
- if( g_settings.visuals.health( ) ) {
- auto fill = box.h - 1;
- fill *= std::clamp( health, 0, 100 ) * 0.01f;
-
- auto hp_col = clr_t(
- std::min< int >( 510 * ( 100 - health ) / 100, 255 ),
- std::min< int >( 510 * health / 100, 255 ),
- 0,
- 255 * alpha );
-
- draw_filled_rect( box.x - 4, box.y, 3, box.h + 1, clr_t( 0, 0, 0, 170 * alpha ) );
- draw_filled_rect( box.x - 3, box.y + box.h - fill, 1, fill, hp_col );
-
- if( health != 100 )
- draw_string( box.x - 2, box.y + 1 + box.h - fill - 3, ALIGN_CENTER, false, clr_t( 255, 255, 255, 255 * alpha ), "%d", health );
- }
-
- if( g_settings.visuals.name( ) ) {
- draw_string( box.x + box.w / 2, box.y - 12, ALIGN_CENTER, true,
- blend_clr( clr_t( 255, 255, 255, alpha * 255 ), anim ), ent->get_info( ).name );
- }
-
- if( g_settings.visuals.player_class( ) ) {
- int x_pos = box.x + box.w + 2;
- int y_pos = box.y - 1 + right_pos;
- draw_string( x_pos, y_pos, ALIGN_LEFT, false,
- blend_clr( esp_green( 255 * alpha ), anim ), ent->get_class_name( ) );
-
- right_pos += 9;
- }
-
- if( g_settings.visuals.weapon( ) ) {
- auto weapon = ent->get_active_weapon( );
- if( weapon ) { //magic font
- int max = weapon->get_max_clip_1( );
-
- if( g_settings.visuals.ammo && max > 1 && g_settings.visuals.weapon == 1 && !g_settings.misc.hide_from_obs ) {
- auto progress = float( weapon->m_iClip1( ) ) / max;
- float fill = box.w - 2.f;
- float percent = fill * progress;
-
- draw_filled_rect( box.x, box.y + box.h + 3 + bottom_pos,
- box.w, 3, clr_t( 0, 0, 0, 180 * alpha ) );
-
- draw_filled_rect( box.x + 1, box.y + box.h + 4 + bottom_pos,
- percent, 1, blend_clr( clr_t( 66, 143, 244, 255 * alpha ), anim ) );
-
- if( progress < 0.25f ) {
- draw_string(
- box.x + percent, box.y + box.h + 2 + bottom_pos, ALIGN_LEFT, false,
- clr_t( 255, 255, 255, 180 * alpha ), "%d", weapon->m_iClip1( ) );
- }
-
- bottom_pos += 4;
- }
-
- /*if( g_settings.visuals.weapon == 1 && !g_settings.misc.hide_from_obs ) {
- g_renderer.draw_string< ALIGN_CENTER >( 0xa1, box.x + box.w / 2, box.y + box.h + bottom_pos + 3,
- clr_t( 255, 255, 255, alpha * 255 ), "%c", weapon->get_hud_icon( ) );
- }*/
- else {
- char wep_str[ 64 ];
- if( g_settings.visuals.ammo( ) && weapon->m_iClip1( ) > -1 )
- sprintf_s< 64 >( wep_str, "%s [%d]", weapon->get_print_name( ), weapon->m_iClip1( ) );
- else
- sprintf_s< 64 >( wep_str, "%s", weapon->get_print_name( ) );
-
- draw_string( box.x + box.w / 2, box.y + box.h + 3 + bottom_pos, ALIGN_CENTER, false,
- clr_t( 255, 255, 255, alpha * 255 ), wep_str );
- }
- }
- }
-
- if( g_settings.visuals.conditions( ) ) {
- int x_pos = box.x + box.w + 3;
- int y_pos = box.y - 1;
-
- switch( ent->m_nPlayerCond( ) ) {
- case TFCond_Slowed:
- draw_string( x_pos, y_pos + right_pos, ALIGN_LEFT, false, clr_t( 255, 255, 255, 255 * alpha ), xors( "slow" ) );
- right_pos += 9;
- break;
- case TFCond_Zoomed: //dont work too lazy
- draw_string( x_pos, y_pos + right_pos, ALIGN_LEFT, false, clr_t( 255, 255, 255, 255 * alpha ), xors( "scoped" ) );
- right_pos += 9;
- break;
- case TFCond_Bonked:
- draw_string( x_pos, y_pos + right_pos, ALIGN_LEFT, false, clr_t( 255, 255, 255, 255 * alpha ), xors( "bonk" ) );
- right_pos += 9;
- break;
- case TFCond_Disguised:
- draw_string( x_pos, y_pos + right_pos, ALIGN_LEFT, false, clr_t( 255, 255, 255, 255 * alpha ), xors( "disg" ) );
- right_pos += 9;
- break;
- case TFCond_Cloaked:
- draw_string( x_pos, y_pos + right_pos, ALIGN_LEFT, false, clr_t( 255, 255, 255, 255 * alpha ), xors( "cloak" ) );
- right_pos += 9;
- break;
- case TFCond_Ubercharged:
- draw_string( x_pos, y_pos + right_pos, ALIGN_LEFT, false, clr_t( 255, 255, 255, 255 * alpha ), xors( "uber" ) );
- right_pos += 9;
- break;
- case TFCond_UberchargeFading:
- draw_string( x_pos, y_pos + right_pos, ALIGN_LEFT, false, clr_t( 255, 255, 255, 255 * alpha ), xors( "uber" ) );
- right_pos += 9;
- break;
- }
-
- }
-
- }
- }
-
- void c_visuals::operator()( ) {
- cl.m_engine( )->GetScreenSize( screen_w, screen_h );
- if( g_ctx.run_frame( ) ) {
- draw_local( );
- }
-
- if( !g_ctx.m_local )
- return;
-
- switch( g_settings.visuals.activation_type( ) ) {
- case 0:
- g_settings.visuals.active = false;
- break;
- case 1:
- g_settings.visuals.active = true;
- break;
- case 2:
- g_settings.visuals.active = g_input.is_key_pressed( g_settings.visuals.key );
- break;
- case 3: {
- static bool held = false;
- bool pressed = g_input.is_key_pressed( g_settings.visuals.key );
- if( pressed ) {
- if( !held )
- g_settings.visuals.active ^= 1;
- held = true;
- }
- else held = false;
- }
- break;
- default:
- g_settings.visuals.active = false;
- break;
- }
-
- if( g_settings.visuals.active ) {
- draw_players( );
- }
-
- draw_world( );
- draw_hits( );
- }
-}
\ No newline at end of file diff --git a/tf2/visuals_world.cpp b/tf2/visuals_world.cpp deleted file mode 100644 index b727798..0000000 --- a/tf2/visuals_world.cpp +++ /dev/null @@ -1,344 +0,0 @@ -#include <unordered_map>
-#include <cmath>
-#include "ctx.hpp"
-#include "visuals.hpp"
-#include "interfaces.h"
-#include "renderer.hpp"
-#include "base_cheat.h"
-#include "settings.h"
-namespace features
-{
- void fix_static_props( ) {
- static auto cvar = cl.m_cvar( )->FindVar( xors( "r_drawspecificstaticprop" ) );
- static bool fixed{ };
- if( !fixed ) {
- cvar->m_flags |= 0;
- cvar->set_value( 1 );
-
- fixed = true;
- }
- }
-
-
- void c_visuals::draw_world( ) {
- if( !g_settings.visuals.active )
- return;
-
- static const auto m_bShouldGlow = g_netvars.get_netvar( fnv( "DT_DynamicProp" ), fnv( "m_bShouldGlow" ) );
-
-
- for( int i{ }; i < cl.m_entlist( )->get_highest_entity_index( ); ++i ) {
- auto ent = cl.m_entlist( )->get_client_entity< IClientEntity >( i );
- if( !ent ) continue;
-
- auto client_class = ent->get_client_class( );
- if( !client_class ) continue;
-
- int class_id = client_class->m_class_id;
- std::string name = "";
-
- auto is_object = [ &name ]( int class_id ) -> bool {
- switch( class_id ) {
- case CObjectSentrygun:
- name = xors( "sentry" );
- return true;
- case CObjectDispenser:
- name = xors( "dispenser" );
- return true;
- case CObjectTeleporter:
- name = xors( "teleporter" );
- return true;
- default:
- return false;
- }
-
- return false;
- };
-
- auto is_projectile = [ &name ]( int class_id ) -> bool {
- switch( class_id ) {
- case CTFProjectile_Arrow:
- name = xors( "arrow" );
- return true;
- case CTFProjectile_Cleaver:
- name = xors( "cleaver" );
- return true;
- case CTFProjectile_EnergyBall:
- name = xors( "energy ball" );
- return true;
- case CTFProjectile_EnergyRing:
- name = xors( "energy ring" );
- return true;
- case CTFProjectile_Flare:
- name = xors( "flare" );
- return true;
- case CTFProjectile_HealingBolt:
- name = xors( "healing bolt" );
- return true;
- case CTFProjectile_Jar:
- name = xors( "jar" );
- return true;
- case CTFProjectile_JarMilk:
- name = xors( "jar milk" );
- return true;
- case CTFGrenadePipebombProjectile:
- name = xors( "pipe bomb" );
- return true;
- case CTFProjectile_Rocket:
- name = xors( "rocket" );
- return true;
- case CTFProjectile_Throwable:
- name = xors( "throwable" );
- return true;
- case CTFProjectile_ThrowableBreadMonster:
- name = xors( "bread monster" );
- return true;
- case CTFProjectile_ThrowableBrick:
- name = xors( "brick" );
- return true;
- case CTFProjectile_ThrowableRepel:
- name = xors( "repel" );
- return true;
- case CTFProjectile_SentryRocket:
- name = xors( "rocket" );
- return true;
- default:
- return false;
- }
- return false;
- };
-
- //objects
- if( is_object( class_id ) ) {
-
- //wont work
- if( ( g_settings.visuals.building_esp == 2 || g_settings.visuals.building_esp == 3 ) && !g_settings.misc.hide_from_obs ) {
- //*( bool* )( uintptr_t( ent ) + m_bShouldGlow ) = true;
- }
-
- if( g_settings.visuals.building_esp == 1 || g_settings.visuals.building_esp == 3 ) {
- auto pos = ent->get_abs_origin( );
- auto w2s = util::screen_transform( pos );
- //currently they are not cute
- //auto cutie = cl.m_entlist( )->get_entity_from_handle< c_base_player >( ent->as< c_base_weapon >( )->m_hOwnerEntity( ) );
- draw_string( w2s.x, w2s.y, ALIGN_CENTER, false,
- g_settings.visuals.building_esp_clr, name.c_str( ) );
-
- //later
-
- //if( g_settings.visuals.building_owner( ) )
- // draw_string( w2s.x, w2s.y + 10, ALIGN_CENTER, false, g_settings.visuals.building_esp_clr, cutie->get_info( ).name );
- }
- }
-
-
-
-
- //projectiles
- if( is_projectile( class_id ) ) {
- //wont work
- if( ( g_settings.visuals.projectile_esp == 2 || g_settings.visuals.projectile_esp == 3 ) && !g_settings.misc.hide_from_obs ) {
- //*( bool* )( uintptr_t( ent ) + m_bShouldGlow ) = true;
- }
-
- if( g_settings.visuals.projectile_esp == 1 || g_settings.visuals.projectile_esp == 3 ) {
- auto pos = ent->get_abs_origin( );
- auto w2s = util::screen_transform( pos );
- //again not cute
- //auto cutie = cl.m_entlist( )->get_entity_from_handle< c_base_player >( ent->as< c_base_weapon >( )->m_hOwnerEntity( ) );
- draw_string( w2s.x, w2s.y, ALIGN_CENTER, false,
- g_settings.visuals.projectile_esp_clr, name.c_str( ) );
-
- //later when i can be fucked
-
- //if( g_settings.visuals.building_owner( ) )
- // draw_string( w2s.x, w2s.y + 10, ALIGN_CENTER, false, g_settings.visuals.projectile_esp_clr, cutie->get_info( ).name );
- }
- }
-
-
-
-
-
- /*if( class_id == CObjectTeleporter || class_id == CObjectDispenser || class_id == CObjectSentrygun ) {
- auto owner = ( int )ent->as< c_base_weapon >( )->m_hBuilder( ) & 0xfff;
- if( owner <= 0 || owner > 64 ) {
- auto origin = ent->get_render_origin( );
- if( origin ) {
- bool draw = g_settings.visuals.grenade_esp( ) == 1;
- bool glow = g_settings.visuals.grenade_esp( ) == 2;
-
- if( draw || g_settings.visuals.grenade_esp == 3 ) {
- if( !glow && !g_settings.misc.hide_from_obs ) {
- *( bool* )( uintptr_t( ent ) + m_bShouldGlow ) = false;
- }
-
- auto w2s = util::screen_transform( origin );
- auto name = util::object_index_to_name( class_id );
-
- draw_string( w2s.x, w2s.y, ALIGN_CENTER, false,
- g_settings.visuals.grenade_esp_clr( ), name );
- }
- if( ( glow || g_settings.visuals.grenade_esp == 3 ) && !g_settings.misc.hide_from_obs ) {
- *( bool* )( uintptr_t( ent ) + m_bShouldGlow ) = true;
- }
- }
- }
- }*/
- /*else {
- if( g_settings.visuals.weapon_esp && strstr( client_class->m_name, xors( "Projectile" ) ) ) {
- auto model = ent->get_model( );
- if( !model ) continue;
-
- std::string name = xors( "Rocket" );
-
- auto hdr = cl.m_modelinfo( )->GetStudioModel( model );
- if( !hdr )
- continue;
-
- if( !strstr( hdr->name, xors( "thrown" ) ) && !strstr( hdr->name, xors( "dropped" ) ) )
- continue;
-
-
-
-
- if( strstr( hdr->name, xors( "JarGas" ) ) ) {
- name = xors( "jargas" );
- }
- else if( strstr( hdr->name, xors( "Cleaver" ) ) ) {
- name = xors( "Cleaver" );
- }
- else if( strstr( hdr->name, xors( "JarMilk" ) ) ) {
- name = xors( "Milk" );
- }
- else if( strstr( hdr->name, xors( "incendiary" ) ) || strstr( hdr->name, xors( "molotov" ) ) ) {
- name = xors( "molotov" );
- }
-
- if( ( g_settings.visuals.weapon_esp == 2 || g_settings.visuals.weapon_esp == 3 ) && !g_settings.misc.hide_from_obs ) {
- *( bool* )( uintptr_t( ent ) + m_bShouldGlow ) = true;
- }
-
- if( g_settings.visuals.weapon_esp == 1 || g_settings.visuals.weapon_esp == 3 ) {
- auto pos = ent->get_render_origin( );
- auto w2s = util::screen_transform( pos );
- auto cutie = cl.m_entlist( )->get_entity_from_handle< c_base_player >( ent->as< c_base_weapon >( )->m_hOwnerEntity( ) );
- draw_string( w2s.x, w2s.y, ALIGN_CENTER, false,
- g_settings.visuals.grenade_esp_clr, name.c_str( ) );
-
- if( g_settings.visuals.grenade_owner( ) )
- draw_string( w2s.x, w2s.y + 10, ALIGN_CENTER, false, g_settings.visuals.grenade_esp_clr, cutie->get_info( ).name );
- }
- }
- }
- }*/
-
- }
-}
-
-
- void c_visuals::world_modulate( ) {
- static std::unordered_map< MaterialHandle_t, fclr_t > world_materials;
- static std::unordered_map< MaterialHandle_t, fclr_t > world_materials2;
- static c_base_player* local_player = nullptr;
- static auto night_mode = false;
- static bool modulated = false;
- static bool alpha = false;
-
- if( !g_settings.visuals.world_modulate || !cl.m_engine( )->IsInGame( ) || g_settings.misc.hide_from_obs ) {
- modulated = false;
- if( !world_materials2.empty( ) ) {
- for( auto& it : world_materials2 ) {
- auto mat = cl.m_mat_system( )->GetMaterial( it.first );
- if( !mat ) continue;
-
- auto original_col = it.second;
- mat->ColorModulate( original_col.r( ), original_col.g( ), original_col.b( ) );
- mat->AlphaModulate( original_col.a( ) );
- }
-
- world_materials.clear( );
- world_materials2.clear( );
- }
-
- return;
- }
-
- if( g_ctx.m_stage == FRAME_NET_UPDATE_POSTDATAUPDATE_END ) {
- fix_static_props( );
-
- if( local_player == g_ctx.m_local &&
- night_mode == g_settings.visuals.night_mode( ) &&
- alpha == g_settings.visuals.transparent_props( ) &&
- modulated == g_settings.visuals.world_modulate( ) )
- return;
-
-
- for( auto i = cl.m_mat_system( )->FirstMaterial( );
- i != cl.m_mat_system( )->InvalidMaterial( );
- i = cl.m_mat_system( )->NextMaterial( i ) ) {
-
- auto mat = cl.m_mat_system( )->GetMaterial( i );
- if( !mat ) continue;
-
- const char* group = mat->GetTextureGroupName( );
- bool is_world = strstr( group, xors( "World" ) );
- bool is_sky = strstr( group, xors( "Sky" ) );
- bool is_prop = strstr( group, xors( "StaticProp" ) );
-
- if( is_world || is_sky || is_prop ) {
- const char* name = mat->GetName( );
- if( world_materials.find( i ) == world_materials.end( ) ) {
- fclr_t clr;
-
- mat->GetColorModulate( &clr.r( ), &clr.g( ), &clr.b( ) );
- clr.a( ) = mat->GetAlphaModulation( );
-
- world_materials.emplace( i, clr );
- world_materials2.emplace( i, clr );
- }
-
- fclr_t new_color;
-
- new_color = world_materials2.find( i )->second;
- bool apply = g_settings.visuals.night_mode && g_settings.visuals.world_modulate;
-
- if( is_world ) {
- if( apply ) {
- new_color.r( ) *= 0.15f;
- new_color.g( ) *= 0.15f;
- new_color.b( ) *= 0.15f;
- }
- }
- else if( is_prop ) {
- if( apply ) {
- new_color.r( ) *= 0.3f;
- new_color.g( ) *= 0.3f;
- new_color.b( ) *= 0.3f;
- }
- if( g_settings.visuals.world_modulate && g_settings.visuals.transparent_props ) {
- new_color.a( ) *= 0.6f;
- }
- }
- else if( is_sky ) {
- if( apply ) {
- new_color = fclr_t( 0.f, 0.f, 0.f );
- }
- }
-
- if( !( world_materials.at( i ) == new_color ) ) {
- mat->ColorModulate( new_color.r( ), new_color.g( ), new_color.b( ) );
- mat->AlphaModulate( new_color.a( ) );
-
- world_materials.at( i ) = new_color;
- }
- }
- }
-
- modulated = g_settings.visuals.world_modulate;
- night_mode = g_settings.visuals.night_mode;
- alpha = g_settings.visuals.transparent_props;
- local_player = g_ctx.m_local;
- }
- }
-}
\ No newline at end of file diff --git a/tf2/vmt.h b/tf2/vmt.h deleted file mode 100644 index f2a39ac..0000000 --- a/tf2/vmt.h +++ /dev/null @@ -1,79 +0,0 @@ -#pragma once
-#include <vector>
-#include "util.hpp"
-
-// todo - dex; rewrite this, VirtualQuery (except for custom codeptr / readptr) and VirtualProtect shouldnt be used
-// and we need to copy rtti over too or stuff will break later on
-
-// correct me if im wrong, but the vtable isnt replaced, instead the original is edited during hooking, rtti should be intact and accessable by game
-// class could definetly do with a rewrite tho!
-
-// ^ you're corrct, but changing page rights and replacing ptrs direclty in rdata (or usually the heap, since thats where vmts go) is not a safe solution
-// copying table + aligning it to compensate for rtti is safer
-// vac loves scanning memory regions but it doesnt really do much outside of game servers (only loads some shit for checking DEP and stuff)
-
-// trash
-
-//llama is a fucking nigger
-//true
-
-namespace hooks
-{
- class c_vmt {
- uintptr_t* m_table;
- uintptr_t* m_original;
- std::vector< uintptr_t > m_new;
- public:
- int count( ) {
- int vfunc_count{ };
-
- while( m_original[ vfunc_count ] ) {
- vfunc_count++;
- };
-
- return vfunc_count;
- }
-
- c_vmt( void* table ) {
- if( !table ) {
- return;
- }
-
- this->m_table = reinterpret_cast< uintptr_t* >( table );
- this->m_original = *reinterpret_cast< uintptr_t** >( this->m_table );
-
- for( int i = -1; i < this->count( ); ++i ) {
- this->m_new.push_back( this->m_original[ i ] );
- }
-
- auto data = this->m_new.data( );
- *this->m_table = uintptr_t( &data[ 1 ] );
- }
-
- ~c_vmt( ) { }
-
- template< typename T = uintptr_t > T get_function( int index ) {
- return( ( T )( this->m_new.at( index + 1 ) ) );
- }
-
- template< typename T = uintptr_t > T get_old_function( int index ) {
- return( ( T )( this->m_original[ index ] ) );
- }
-
- void hook( int index, uintptr_t new_func ) {
- this->m_new.at( index + 1 ) = new_func;
- }
-
- void unhook( int index ) {
- this->m_new.at( index + 1 ) = this->m_original[ index ];
- }
-
- void hook( int index, void* new_func ) {
- hook( index, reinterpret_cast< uintptr_t >( new_func ) );
- }
-
- void restore( ) const {
- *this->m_table = uintptr_t( m_original );
- }
- };
-}
\ No newline at end of file diff --git a/tf2/window_procedure.cpp b/tf2/window_procedure.cpp deleted file mode 100644 index b67f9bb..0000000 --- a/tf2/window_procedure.cpp +++ /dev/null @@ -1,59 +0,0 @@ -#include "hooks.h"
-#include "input_system.hpp"
-#include "settings.h"
-
-//im pretty sure half this shit is redundant rn but idrc
-
-
-decltype( &hooks::window_procedure ) hooks::window_procedure_o;
-long __stdcall hooks::window_procedure( HWND hwnd, uint32_t msg, uint32_t wparam, long lparam ) {
- if( cl.m_panic ) {
- return CallWindowProcA( ( WNDPROC )window_procedure_o, hwnd, msg, wparam, lparam );
- }
-
- if( msg == WM_ACTIVATE && wparam == WA_INACTIVE ) {
- g_input.clear_keys( );
- }
-
- if( msg == WM_MOUSEMOVE ) {
- g_input.capture_mouse_move( lparam );
- g_con->get_input( )->capture_mouse_move( lparam );
- }
- static auto con_pressed = false;
- if( g_con->get_input( )->is_key_pressed( KEYS_HOME ) ) {
- if( !con_pressed ) {
- if( !g_con->m_open ) {
- g_con->m_consuming_input = true;
- }
-
- g_con->m_open ^= 1;
- }
- con_pressed = true;
- }
- else con_pressed = false;
-
- if( g_con->get_input( )->register_key_press( VirtualKeyEvents_t( msg ), VirtualKeys_t( wparam ) ) ) {
- if( g_con->m_open ) return false;
- }
-
- if( !g_con->m_open ) {
- static bool was_pressed = false;
- if( g_input.is_key_pressed( KEYS_INSERT ) ) {
- if( !was_pressed ) {
- g_settings.menu.open ^= 1;
-
- was_pressed = true;
- }
- }
- else {
- was_pressed = false;
- }
-
- if( g_input.register_key_press( VirtualKeyEvents_t( msg ), VirtualKeys_t( wparam ) )
- && g_settings.menu.open ) {
- return false;
- }
- }
-
- return CallWindowProcA( ( WNDPROC )window_procedure_o, hwnd, msg, wparam, lparam );
-}
\ No newline at end of file diff --git a/tf2/x86.hpp b/tf2/x86.hpp deleted file mode 100644 index e96c469..0000000 --- a/tf2/x86.hpp +++ /dev/null @@ -1,47 +0,0 @@ -#pragma once
-#include <inttypes.h>
-
-namespace x86
-{
- enum class reg : size_t {
- eax = 0,
- ecx,
- edx,
- ebx,
- esp,
- ebp,
- esi,
- edi,
-
- /*
- x64:
- r8,
- r9,
- r10,
- r11,
- r12,
- r13,
- r14,
- r15,*/
- };
-
- enum instruction : uint8_t {
- retn_imm16 = 0xc2,
- retn = 0xc3,
- fs = 0x64,
- //its big nigga season
- call = 0xff
- };
-
- __forceinline static uint32_t encode_mov_imm32( x86::reg dreg ) {
- return ( 0xb8 + ( size_t( dreg ) ) );
- }
-
- __forceinline static uint32_t encode_push_reg( x86::reg dreg ) {
- return ( 0x50 | ( ( size_t( dreg ) ) & 7 ) );
- }
-
- __forceinline static uint32_t encode_pop_reg( x86::reg dreg ) {
- return ( 0x58 | ( ( size_t( dreg ) ) & 7 ) );
- }
-};
\ No newline at end of file |
