// Generated by `wit-bindgen` 0.9.0. DO NOT EDIT!

/// Declares the export of the component's world for the
/// given type.

macro_rules! export_bindings(($t:ident) => {
  const _: () = {
    
    const _: () = {
      #[doc(hidden)]
      #[export_name = "ambient:bindings/guest#init"]
      #[allow(non_snake_case)]
      unsafe extern "C" fn __export_init() {
        exports::ambient::bindings::guest::call_init::<$t>()
      }
      
    };
    
    const _: () = {
      #[doc(hidden)]
      #[export_name = "ambient:bindings/guest#exec"]
      #[allow(non_snake_case)]
      unsafe extern "C" fn __export_exec(arg0: i32,arg1: i64,arg2: i64,arg3: i32,arg4: i32,arg5: i32,arg6: i32,) {
        exports::ambient::bindings::guest::call_exec::<$t>(arg0,arg1,arg2,arg3,arg4,arg5,arg6,)
      }
      
    };
    
  };
  
  #[used]
  #[doc(hidden)]
  #[cfg(target_arch = "wasm32")]
  static __FORCE_SECTION_REF: fn() = __link_section;
});
pub mod ambient {
  pub mod bindings {
    
    #[allow(clippy::all)]
    pub mod types {
      #[used]
      #[doc(hidden)]
      #[cfg(target_arch = "wasm32")]
      static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
      
      #[repr(C)]
      #[derive(Copy, Clone)]
      pub struct EntityId {
        pub id0: u64,
        pub id1: u64,
      }
      impl ::core::fmt::Debug for EntityId {
        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
          f.debug_struct("EntityId").field("id0", &self.id0).field("id1", &self.id1).finish()
        }
      }
      #[repr(C)]
      #[derive(Copy, Clone)]
      pub struct Vec2 {
        pub x: f32,
        pub y: f32,
      }
      impl ::core::fmt::Debug for Vec2 {
        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
          f.debug_struct("Vec2").field("x", &self.x).field("y", &self.y).finish()
        }
      }
      #[repr(C)]
      #[derive(Copy, Clone)]
      pub struct Vec3 {
        pub x: f32,
        pub y: f32,
        pub z: f32,
      }
      impl ::core::fmt::Debug for Vec3 {
        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
          f.debug_struct("Vec3").field("x", &self.x).field("y", &self.y).field("z", &self.z).finish()
        }
      }
      #[repr(C)]
      #[derive(Copy, Clone)]
      pub struct Vec4 {
        pub x: f32,
        pub y: f32,
        pub z: f32,
        pub w: f32,
      }
      impl ::core::fmt::Debug for Vec4 {
        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
          f.debug_struct("Vec4").field("x", &self.x).field("y", &self.y).field("z", &self.z).field("w", &self.w).finish()
        }
      }
      #[repr(C)]
      #[derive(Copy, Clone)]
      pub struct Uvec2 {
        pub x: u32,
        pub y: u32,
      }
      impl ::core::fmt::Debug for Uvec2 {
        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
          f.debug_struct("Uvec2").field("x", &self.x).field("y", &self.y).finish()
        }
      }
      #[repr(C)]
      #[derive(Copy, Clone)]
      pub struct Uvec3 {
        pub x: u32,
        pub y: u32,
        pub z: u32,
      }
      impl ::core::fmt::Debug for Uvec3 {
        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
          f.debug_struct("Uvec3").field("x", &self.x).field("y", &self.y).field("z", &self.z).finish()
        }
      }
      #[repr(C)]
      #[derive(Copy, Clone)]
      pub struct Uvec4 {
        pub x: u32,
        pub y: u32,
        pub z: u32,
        pub w: u32,
      }
      impl ::core::fmt::Debug for Uvec4 {
        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
          f.debug_struct("Uvec4").field("x", &self.x).field("y", &self.y).field("z", &self.z).field("w", &self.w).finish()
        }
      }
      #[repr(C)]
      #[derive(Copy, Clone)]
      pub struct Ivec2 {
        pub x: i32,
        pub y: i32,
      }
      impl ::core::fmt::Debug for Ivec2 {
        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
          f.debug_struct("Ivec2").field("x", &self.x).field("y", &self.y).finish()
        }
      }
      #[repr(C)]
      #[derive(Copy, Clone)]
      pub struct Ivec3 {
        pub x: i32,
        pub y: i32,
        pub z: i32,
      }
      impl ::core::fmt::Debug for Ivec3 {
        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
          f.debug_struct("Ivec3").field("x", &self.x).field("y", &self.y).field("z", &self.z).finish()
        }
      }
      #[repr(C)]
      #[derive(Copy, Clone)]
      pub struct Ivec4 {
        pub x: i32,
        pub y: i32,
        pub z: i32,
        pub w: i32,
      }
      impl ::core::fmt::Debug for Ivec4 {
        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
          f.debug_struct("Ivec4").field("x", &self.x).field("y", &self.y).field("z", &self.z).field("w", &self.w).finish()
        }
      }
      #[repr(C)]
      #[derive(Copy, Clone)]
      pub struct Quat {
        pub x: f32,
        pub y: f32,
        pub z: f32,
        pub w: f32,
      }
      impl ::core::fmt::Debug for Quat {
        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
          f.debug_struct("Quat").field("x", &self.x).field("y", &self.y).field("z", &self.z).field("w", &self.w).finish()
        }
      }
      #[repr(C)]
      #[derive(Copy, Clone)]
      pub struct Mat4 {
        pub x: Vec4,
        pub y: Vec4,
        pub z: Vec4,
        pub w: Vec4,
      }
      impl ::core::fmt::Debug for Mat4 {
        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
          f.debug_struct("Mat4").field("x", &self.x).field("y", &self.y).field("z", &self.z).field("w", &self.w).finish()
        }
      }
      #[repr(C)]
      #[derive(Copy, Clone)]
      pub struct Duration {
        pub seconds: u64,
        pub nanoseconds: u32,
      }
      impl ::core::fmt::Debug for Duration {
        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
          f.debug_struct("Duration").field("seconds", &self.seconds).field("nanoseconds", &self.nanoseconds).finish()
        }
      }
      #[repr(C)]
      #[derive(Copy, Clone)]
      pub struct Ray {
        pub origin: Vec3,
        pub dir: Vec3,
      }
      impl ::core::fmt::Debug for Ray {
        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
          f.debug_struct("Ray").field("origin", &self.origin).field("dir", &self.dir).finish()
        }
      }
      #[repr(C)]
      #[derive(Copy, Clone)]
      pub struct Empty {
        pub dummy: u8,
      }
      impl ::core::fmt::Debug for Empty {
        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
          f.debug_struct("Empty").field("dummy", &self.dummy).finish()
        }
      }
      pub type Ulid = (u64,u64,);
      
    }
    
    
    #[allow(clippy::all)]
    pub mod asset {
      #[used]
      #[doc(hidden)]
      #[cfg(target_arch = "wasm32")]
      static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
      
      pub type EntityId = super::super::super::ambient::bindings::types::EntityId;
      #[derive(Clone)]
      pub enum UrlError{
        InvalidUrl(wit_bindgen::rt::string::String),
      }
      impl ::core::fmt::Debug for UrlError {
        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
          match self {
            UrlError::InvalidUrl(e) => {
              f.debug_tuple("UrlError::InvalidUrl").field(e).finish()
            }
          }
        }
      }
      impl ::core::fmt::Display for UrlError {
        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
          write!(f, "{:?}", self)}
        }
        
        impl std::error::Error for UrlError {}
        #[allow(clippy::all)]
        pub fn url(package_id: EntityId,path: &str,) -> Result<wit_bindgen::rt::string::String,UrlError>{
          
          #[allow(unused_imports)]
          use wit_bindgen::rt::{alloc, vec::Vec, string::String};
          unsafe {
            
            #[repr(align(4))]
            struct RetArea([u8; 16]);
            let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
            let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = package_id;
            let vec1 = path;
            let ptr1 = vec1.as_ptr() as i32;
            let len1 = vec1.len() as i32;
            let ptr2 = ret_area.as_mut_ptr() as i32;
            #[link(wasm_import_module = "ambient:bindings/asset")]
            extern "C" {
              #[cfg_attr(target_arch = "wasm32", link_name = "url")]
              #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/asset_url")]
              fn wit_import(
              _: i64, _: i64, _: i32, _: i32, _: i32, );
            }
            wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), ptr1, len1, ptr2);
            match i32::from(*((ptr2 + 0) as *const u8)) {
              0 => Ok({
                let len3 = *((ptr2 + 8) as *const i32) as usize;
                
                {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((ptr2 + 4) as *const i32) as *mut _, len3, len3))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((ptr2 + 4) as *const i32) as *mut _, len3, len3)).unwrap()}}
              }),
              1 => Err({{match i32::from(*((ptr2 + 4) as *const u8)) {
                #[cfg(debug_assertions)]0 => UrlError::InvalidUrl({
                  let len4 = *((ptr2 + 12) as *const i32) as usize;
                  
                  {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((ptr2 + 8) as *const i32) as *mut _, len4, len4))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((ptr2 + 8) as *const i32) as *mut _, len4, len4)).unwrap()}}
                }),
                #[cfg(not(debug_assertions))]_ => UrlError::InvalidUrl({
                  let len4 = *((ptr2 + 12) as *const i32) as usize;
                  
                  {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((ptr2 + 8) as *const i32) as *mut _, len4, len4))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((ptr2 + 8) as *const i32) as *mut _, len4, len4)).unwrap()}}
                }),
                #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
              }}}),
              #[cfg(not(debug_assertions))]
              _ => ::core::hint::unreachable_unchecked(),
              #[cfg(debug_assertions)]
              _ => panic!("invalid enum discriminant"),
            }
          }
        }
        
      }
      
      
      #[allow(clippy::all)]
      pub mod client_mesh {
        #[used]
        #[doc(hidden)]
        #[cfg(target_arch = "wasm32")]
        static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
        
        pub type Vec2 = super::super::super::ambient::bindings::types::Vec2;
        pub type Vec3 = super::super::super::ambient::bindings::types::Vec3;
        pub type Ulid = super::super::super::ambient::bindings::types::Ulid;
        #[repr(C)]
        #[derive(Copy, Clone)]
        pub struct Vertex {
          pub position: Vec3,
          pub normal: Vec3,
          pub tangent: Vec3,
          pub texcoord0: Vec2,
        }
        impl ::core::fmt::Debug for Vertex {
          fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
            f.debug_struct("Vertex").field("position", &self.position).field("normal", &self.normal).field("tangent", &self.tangent).field("texcoord0", &self.texcoord0).finish()
          }
        }
        #[derive(Clone)]
        pub struct Descriptor {
          pub vertices: wit_bindgen::rt::vec::Vec::<Vertex>,
          pub indices: wit_bindgen::rt::vec::Vec::<u32>,
        }
        impl ::core::fmt::Debug for Descriptor {
          fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
            f.debug_struct("Descriptor").field("vertices", &self.vertices).field("indices", &self.indices).finish()
          }
        }
        #[repr(C)]
        #[derive(Copy, Clone)]
        pub struct Handle {
          pub ulid: Ulid,
        }
        impl ::core::fmt::Debug for Handle {
          fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
            f.debug_struct("Handle").field("ulid", &self.ulid).finish()
          }
        }
        #[allow(clippy::all)]
        pub fn create(desc: &Descriptor,) -> Handle{
          
          #[allow(unused_imports)]
          use wit_bindgen::rt::{alloc, vec::Vec, string::String};
          unsafe {
            
            #[repr(align(8))]
            struct RetArea([u8; 16]);
            let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
            let Descriptor{ vertices:vertices0, indices:indices0, } = desc;
            let vec1 = vertices0;
            let ptr1 = vec1.as_ptr() as i32;
            let len1 = vec1.len() as i32;
            let vec2 = indices0;
            let ptr2 = vec2.as_ptr() as i32;
            let len2 = vec2.len() as i32;
            let ptr3 = ret_area.as_mut_ptr() as i32;
            #[link(wasm_import_module = "ambient:bindings/client-mesh")]
            extern "C" {
              #[cfg_attr(target_arch = "wasm32", link_name = "create")]
              #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-mesh_create")]
              fn wit_import(
              _: i32, _: i32, _: i32, _: i32, _: i32, );
            }
            wit_import(ptr1, len1, ptr2, len2, ptr3);
            Handle{ulid:(*((ptr3 + 0) as *const i64) as u64, *((ptr3 + 8) as *const i64) as u64), }
          }
        }
        #[allow(clippy::all)]
        pub fn destroy(handle: Handle,){
          
          #[allow(unused_imports)]
          use wit_bindgen::rt::{alloc, vec::Vec, string::String};
          unsafe {
            let Handle{ ulid:ulid0, } = handle;
            let (t1_0, t1_1, ) = ulid0;
            
            #[link(wasm_import_module = "ambient:bindings/client-mesh")]
            extern "C" {
              #[cfg_attr(target_arch = "wasm32", link_name = "destroy")]
              #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-mesh_destroy")]
              fn wit_import(
              _: i64, _: i64, );
            }
            wit_import(wit_bindgen::rt::as_i64(t1_0), wit_bindgen::rt::as_i64(t1_1));
          }
        }
        
      }
      
      
      #[allow(clippy::all)]
      pub mod client_texture {
        #[used]
        #[doc(hidden)]
        #[cfg(target_arch = "wasm32")]
        static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
        
        pub type Ulid = super::super::super::ambient::bindings::types::Ulid;
        #[derive(Clone, Copy)]
        pub enum Format{
          R8Unorm,
          R8Snorm,
          R8Uint,
          R8Sint,
          R16Uint,
          R16Sint,
          R16Unorm,
          R16Snorm,
          R16Float,
          Rg8Unorm,
          Rg8Snorm,
          Rg8Uint,
          Rg8Sint,
          R32Uint,
          R32Sint,
          R32Float,
          Rg16Uint,
          Rg16Sint,
          Rg16Unorm,
          Rg16Snorm,
          Rg16Float,
          Rgba8Unorm,
          Rgba8UnormSrgb,
          Rgba8Snorm,
          Rgba8Uint,
          Rgba8Sint,
          Bgra8Unorm,
          Bgra8UnormSrgb,
          Rgb9e5Ufloat,
          Rgb10a2Unorm,
          Rg11b10Float,
          Rg32Uint,
          Rg32Sint,
          Rg32Float,
          Rgba16Uint,
          Rgba16Sint,
          Rgba16Unorm,
          Rgba16Snorm,
          Rgba16Float,
          Rgba32Uint,
          Rgba32Sint,
          Rgba32Float,
        }
        impl ::core::fmt::Debug for Format {
          fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
            match self {
              Format::R8Unorm => {
                f.debug_tuple("Format::R8Unorm").finish()
              }
              Format::R8Snorm => {
                f.debug_tuple("Format::R8Snorm").finish()
              }
              Format::R8Uint => {
                f.debug_tuple("Format::R8Uint").finish()
              }
              Format::R8Sint => {
                f.debug_tuple("Format::R8Sint").finish()
              }
              Format::R16Uint => {
                f.debug_tuple("Format::R16Uint").finish()
              }
              Format::R16Sint => {
                f.debug_tuple("Format::R16Sint").finish()
              }
              Format::R16Unorm => {
                f.debug_tuple("Format::R16Unorm").finish()
              }
              Format::R16Snorm => {
                f.debug_tuple("Format::R16Snorm").finish()
              }
              Format::R16Float => {
                f.debug_tuple("Format::R16Float").finish()
              }
              Format::Rg8Unorm => {
                f.debug_tuple("Format::Rg8Unorm").finish()
              }
              Format::Rg8Snorm => {
                f.debug_tuple("Format::Rg8Snorm").finish()
              }
              Format::Rg8Uint => {
                f.debug_tuple("Format::Rg8Uint").finish()
              }
              Format::Rg8Sint => {
                f.debug_tuple("Format::Rg8Sint").finish()
              }
              Format::R32Uint => {
                f.debug_tuple("Format::R32Uint").finish()
              }
              Format::R32Sint => {
                f.debug_tuple("Format::R32Sint").finish()
              }
              Format::R32Float => {
                f.debug_tuple("Format::R32Float").finish()
              }
              Format::Rg16Uint => {
                f.debug_tuple("Format::Rg16Uint").finish()
              }
              Format::Rg16Sint => {
                f.debug_tuple("Format::Rg16Sint").finish()
              }
              Format::Rg16Unorm => {
                f.debug_tuple("Format::Rg16Unorm").finish()
              }
              Format::Rg16Snorm => {
                f.debug_tuple("Format::Rg16Snorm").finish()
              }
              Format::Rg16Float => {
                f.debug_tuple("Format::Rg16Float").finish()
              }
              Format::Rgba8Unorm => {
                f.debug_tuple("Format::Rgba8Unorm").finish()
              }
              Format::Rgba8UnormSrgb => {
                f.debug_tuple("Format::Rgba8UnormSrgb").finish()
              }
              Format::Rgba8Snorm => {
                f.debug_tuple("Format::Rgba8Snorm").finish()
              }
              Format::Rgba8Uint => {
                f.debug_tuple("Format::Rgba8Uint").finish()
              }
              Format::Rgba8Sint => {
                f.debug_tuple("Format::Rgba8Sint").finish()
              }
              Format::Bgra8Unorm => {
                f.debug_tuple("Format::Bgra8Unorm").finish()
              }
              Format::Bgra8UnormSrgb => {
                f.debug_tuple("Format::Bgra8UnormSrgb").finish()
              }
              Format::Rgb9e5Ufloat => {
                f.debug_tuple("Format::Rgb9e5Ufloat").finish()
              }
              Format::Rgb10a2Unorm => {
                f.debug_tuple("Format::Rgb10a2Unorm").finish()
              }
              Format::Rg11b10Float => {
                f.debug_tuple("Format::Rg11b10Float").finish()
              }
              Format::Rg32Uint => {
                f.debug_tuple("Format::Rg32Uint").finish()
              }
              Format::Rg32Sint => {
                f.debug_tuple("Format::Rg32Sint").finish()
              }
              Format::Rg32Float => {
                f.debug_tuple("Format::Rg32Float").finish()
              }
              Format::Rgba16Uint => {
                f.debug_tuple("Format::Rgba16Uint").finish()
              }
              Format::Rgba16Sint => {
                f.debug_tuple("Format::Rgba16Sint").finish()
              }
              Format::Rgba16Unorm => {
                f.debug_tuple("Format::Rgba16Unorm").finish()
              }
              Format::Rgba16Snorm => {
                f.debug_tuple("Format::Rgba16Snorm").finish()
              }
              Format::Rgba16Float => {
                f.debug_tuple("Format::Rgba16Float").finish()
              }
              Format::Rgba32Uint => {
                f.debug_tuple("Format::Rgba32Uint").finish()
              }
              Format::Rgba32Sint => {
                f.debug_tuple("Format::Rgba32Sint").finish()
              }
              Format::Rgba32Float => {
                f.debug_tuple("Format::Rgba32Float").finish()
              }
            }
          }
        }
        #[derive(Clone)]
        pub struct Descriptor2d {
          pub width: u32,
          pub height: u32,
          pub format: Format,
          pub data: wit_bindgen::rt::vec::Vec::<u8>,
        }
        impl ::core::fmt::Debug for Descriptor2d {
          fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
            f.debug_struct("Descriptor2d").field("width", &self.width).field("height", &self.height).field("format", &self.format).field("data", &self.data).finish()
          }
        }
        #[repr(C)]
        #[derive(Copy, Clone)]
        pub struct Handle {
          pub ulid: Ulid,
        }
        impl ::core::fmt::Debug for Handle {
          fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
            f.debug_struct("Handle").field("ulid", &self.ulid).finish()
          }
        }
        #[allow(clippy::all)]
        pub fn create2d(desc: &Descriptor2d,) -> Handle{
          
          #[allow(unused_imports)]
          use wit_bindgen::rt::{alloc, vec::Vec, string::String};
          unsafe {
            
            #[repr(align(8))]
            struct RetArea([u8; 16]);
            let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
            let Descriptor2d{ width:width0, height:height0, format:format0, data:data0, } = desc;
            let result1 = match format0 {
              Format::R8Unorm=> {
                0i32
              }
              Format::R8Snorm=> {
                1i32
              }
              Format::R8Uint=> {
                2i32
              }
              Format::R8Sint=> {
                3i32
              }
              Format::R16Uint=> {
                4i32
              }
              Format::R16Sint=> {
                5i32
              }
              Format::R16Unorm=> {
                6i32
              }
              Format::R16Snorm=> {
                7i32
              }
              Format::R16Float=> {
                8i32
              }
              Format::Rg8Unorm=> {
                9i32
              }
              Format::Rg8Snorm=> {
                10i32
              }
              Format::Rg8Uint=> {
                11i32
              }
              Format::Rg8Sint=> {
                12i32
              }
              Format::R32Uint=> {
                13i32
              }
              Format::R32Sint=> {
                14i32
              }
              Format::R32Float=> {
                15i32
              }
              Format::Rg16Uint=> {
                16i32
              }
              Format::Rg16Sint=> {
                17i32
              }
              Format::Rg16Unorm=> {
                18i32
              }
              Format::Rg16Snorm=> {
                19i32
              }
              Format::Rg16Float=> {
                20i32
              }
              Format::Rgba8Unorm=> {
                21i32
              }
              Format::Rgba8UnormSrgb=> {
                22i32
              }
              Format::Rgba8Snorm=> {
                23i32
              }
              Format::Rgba8Uint=> {
                24i32
              }
              Format::Rgba8Sint=> {
                25i32
              }
              Format::Bgra8Unorm=> {
                26i32
              }
              Format::Bgra8UnormSrgb=> {
                27i32
              }
              Format::Rgb9e5Ufloat=> {
                28i32
              }
              Format::Rgb10a2Unorm=> {
                29i32
              }
              Format::Rg11b10Float=> {
                30i32
              }
              Format::Rg32Uint=> {
                31i32
              }
              Format::Rg32Sint=> {
                32i32
              }
              Format::Rg32Float=> {
                33i32
              }
              Format::Rgba16Uint=> {
                34i32
              }
              Format::Rgba16Sint=> {
                35i32
              }
              Format::Rgba16Unorm=> {
                36i32
              }
              Format::Rgba16Snorm=> {
                37i32
              }
              Format::Rgba16Float=> {
                38i32
              }
              Format::Rgba32Uint=> {
                39i32
              }
              Format::Rgba32Sint=> {
                40i32
              }
              Format::Rgba32Float=> {
                41i32
              }
            };
            let vec2 = data0;
            let ptr2 = vec2.as_ptr() as i32;
            let len2 = vec2.len() as i32;
            let ptr3 = ret_area.as_mut_ptr() as i32;
            #[link(wasm_import_module = "ambient:bindings/client-texture")]
            extern "C" {
              #[cfg_attr(target_arch = "wasm32", link_name = "create2d")]
              #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-texture_create2d")]
              fn wit_import(
              _: i32, _: i32, _: i32, _: i32, _: i32, _: i32, );
            }
            wit_import(wit_bindgen::rt::as_i32(width0), wit_bindgen::rt::as_i32(height0), result1, ptr2, len2, ptr3);
            Handle{ulid:(*((ptr3 + 0) as *const i64) as u64, *((ptr3 + 8) as *const i64) as u64), }
          }
        }
        #[allow(clippy::all)]
        pub fn destroy(handle: Handle,){
          
          #[allow(unused_imports)]
          use wit_bindgen::rt::{alloc, vec::Vec, string::String};
          unsafe {
            let Handle{ ulid:ulid0, } = handle;
            let (t1_0, t1_1, ) = ulid0;
            
            #[link(wasm_import_module = "ambient:bindings/client-texture")]
            extern "C" {
              #[cfg_attr(target_arch = "wasm32", link_name = "destroy")]
              #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-texture_destroy")]
              fn wit_import(
              _: i64, _: i64, );
            }
            wit_import(wit_bindgen::rt::as_i64(t1_0), wit_bindgen::rt::as_i64(t1_1));
          }
        }
        
      }
      
      
      #[allow(clippy::all)]
      pub mod client_sampler {
        #[used]
        #[doc(hidden)]
        #[cfg(target_arch = "wasm32")]
        static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
        
        pub type Ulid = super::super::super::ambient::bindings::types::Ulid;
        #[derive(Clone, Copy)]
        pub enum AddressMode{
          ClampToEdge,
          Repeat,
          MirrorRepeat,
        }
        impl ::core::fmt::Debug for AddressMode {
          fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
            match self {
              AddressMode::ClampToEdge => {
                f.debug_tuple("AddressMode::ClampToEdge").finish()
              }
              AddressMode::Repeat => {
                f.debug_tuple("AddressMode::Repeat").finish()
              }
              AddressMode::MirrorRepeat => {
                f.debug_tuple("AddressMode::MirrorRepeat").finish()
              }
            }
          }
        }
        #[derive(Clone, Copy)]
        pub enum FilterMode{
          Nearest,
          Linear,
        }
        impl ::core::fmt::Debug for FilterMode {
          fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
            match self {
              FilterMode::Nearest => {
                f.debug_tuple("FilterMode::Nearest").finish()
              }
              FilterMode::Linear => {
                f.debug_tuple("FilterMode::Linear").finish()
              }
            }
          }
        }
        #[repr(C)]
        #[derive(Copy, Clone)]
        pub struct Descriptor {
          pub address_mode_u: AddressMode,
          pub address_mode_v: AddressMode,
          pub address_mode_w: AddressMode,
          pub mag_filter: FilterMode,
          pub min_filter: FilterMode,
          pub mipmap_filter: FilterMode,
        }
        impl ::core::fmt::Debug for Descriptor {
          fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
            f.debug_struct("Descriptor").field("address-mode-u", &self.address_mode_u).field("address-mode-v", &self.address_mode_v).field("address-mode-w", &self.address_mode_w).field("mag-filter", &self.mag_filter).field("min-filter", &self.min_filter).field("mipmap-filter", &self.mipmap_filter).finish()
          }
        }
        #[repr(C)]
        #[derive(Copy, Clone)]
        pub struct Handle {
          pub ulid: Ulid,
        }
        impl ::core::fmt::Debug for Handle {
          fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
            f.debug_struct("Handle").field("ulid", &self.ulid).finish()
          }
        }
        #[allow(clippy::all)]
        pub fn create(desc: Descriptor,) -> Handle{
          
          #[allow(unused_imports)]
          use wit_bindgen::rt::{alloc, vec::Vec, string::String};
          unsafe {
            
            #[repr(align(8))]
            struct RetArea([u8; 16]);
            let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
            let Descriptor{ address_mode_u:address_mode_u0, address_mode_v:address_mode_v0, address_mode_w:address_mode_w0, mag_filter:mag_filter0, min_filter:min_filter0, mipmap_filter:mipmap_filter0, } = desc;
            let result1 = match address_mode_u0 {
              AddressMode::ClampToEdge=> {
                0i32
              }
              AddressMode::Repeat=> {
                1i32
              }
              AddressMode::MirrorRepeat=> {
                2i32
              }
            };
            let result2 = match address_mode_v0 {
              AddressMode::ClampToEdge=> {
                0i32
              }
              AddressMode::Repeat=> {
                1i32
              }
              AddressMode::MirrorRepeat=> {
                2i32
              }
            };
            let result3 = match address_mode_w0 {
              AddressMode::ClampToEdge=> {
                0i32
              }
              AddressMode::Repeat=> {
                1i32
              }
              AddressMode::MirrorRepeat=> {
                2i32
              }
            };
            let result4 = match mag_filter0 {
              FilterMode::Nearest=> {
                0i32
              }
              FilterMode::Linear=> {
                1i32
              }
            };
            let result5 = match min_filter0 {
              FilterMode::Nearest=> {
                0i32
              }
              FilterMode::Linear=> {
                1i32
              }
            };
            let result6 = match mipmap_filter0 {
              FilterMode::Nearest=> {
                0i32
              }
              FilterMode::Linear=> {
                1i32
              }
            };
            let ptr7 = ret_area.as_mut_ptr() as i32;
            #[link(wasm_import_module = "ambient:bindings/client-sampler")]
            extern "C" {
              #[cfg_attr(target_arch = "wasm32", link_name = "create")]
              #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-sampler_create")]
              fn wit_import(
              _: i32, _: i32, _: i32, _: i32, _: i32, _: i32, _: i32, );
            }
            wit_import(result1, result2, result3, result4, result5, result6, ptr7);
            Handle{ulid:(*((ptr7 + 0) as *const i64) as u64, *((ptr7 + 8) as *const i64) as u64), }
          }
        }
        #[allow(clippy::all)]
        pub fn destroy(handle: Handle,){
          
          #[allow(unused_imports)]
          use wit_bindgen::rt::{alloc, vec::Vec, string::String};
          unsafe {
            let Handle{ ulid:ulid0, } = handle;
            let (t1_0, t1_1, ) = ulid0;
            
            #[link(wasm_import_module = "ambient:bindings/client-sampler")]
            extern "C" {
              #[cfg_attr(target_arch = "wasm32", link_name = "destroy")]
              #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-sampler_destroy")]
              fn wit_import(
              _: i64, _: i64, );
            }
            wit_import(wit_bindgen::rt::as_i64(t1_0), wit_bindgen::rt::as_i64(t1_1));
          }
        }
        
      }
      
      
      #[allow(clippy::all)]
      pub mod client_material {
        #[used]
        #[doc(hidden)]
        #[cfg(target_arch = "wasm32")]
        static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
        
        pub type Ulid = super::super::super::ambient::bindings::types::Ulid;
        pub type TextureHandle = super::super::super::ambient::bindings::client_texture::Handle;
        pub type SamplerHandle = super::super::super::ambient::bindings::client_sampler::Handle;
        #[repr(C)]
        #[derive(Copy, Clone)]
        pub struct Descriptor {
          pub base_color_map: TextureHandle,
          pub normal_map: TextureHandle,
          pub metallic_roughness_map: TextureHandle,
          pub sampler: SamplerHandle,
          pub transparent: bool,
        }
        impl ::core::fmt::Debug for Descriptor {
          fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
            f.debug_struct("Descriptor").field("base-color-map", &self.base_color_map).field("normal-map", &self.normal_map).field("metallic-roughness-map", &self.metallic_roughness_map).field("sampler", &self.sampler).field("transparent", &self.transparent).finish()
          }
        }
        #[repr(C)]
        #[derive(Copy, Clone)]
        pub struct Handle {
          pub ulid: Ulid,
        }
        impl ::core::fmt::Debug for Handle {
          fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
            f.debug_struct("Handle").field("ulid", &self.ulid).finish()
          }
        }
        #[allow(clippy::all)]
        pub fn create(desc: Descriptor,) -> Handle{
          
          #[allow(unused_imports)]
          use wit_bindgen::rt::{alloc, vec::Vec, string::String};
          unsafe {
            
            #[repr(align(8))]
            struct RetArea([u8; 16]);
            let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
            let Descriptor{ base_color_map:base_color_map0, normal_map:normal_map0, metallic_roughness_map:metallic_roughness_map0, sampler:sampler0, transparent:transparent0, } = desc;
            let super::super::super::ambient::bindings::client_texture::Handle{ ulid:ulid1, } = base_color_map0;
            let (t2_0, t2_1, ) = ulid1;
            let super::super::super::ambient::bindings::client_texture::Handle{ ulid:ulid3, } = normal_map0;
            let (t4_0, t4_1, ) = ulid3;
            let super::super::super::ambient::bindings::client_texture::Handle{ ulid:ulid5, } = metallic_roughness_map0;
            let (t6_0, t6_1, ) = ulid5;
            let super::super::super::ambient::bindings::client_sampler::Handle{ ulid:ulid7, } = sampler0;
            let (t8_0, t8_1, ) = ulid7;
            let ptr9 = ret_area.as_mut_ptr() as i32;
            #[link(wasm_import_module = "ambient:bindings/client-material")]
            extern "C" {
              #[cfg_attr(target_arch = "wasm32", link_name = "create")]
              #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-material_create")]
              fn wit_import(
              _: i64, _: i64, _: i64, _: i64, _: i64, _: i64, _: i64, _: i64, _: i32, _: i32, );
            }
            wit_import(wit_bindgen::rt::as_i64(t2_0), wit_bindgen::rt::as_i64(t2_1), wit_bindgen::rt::as_i64(t4_0), wit_bindgen::rt::as_i64(t4_1), wit_bindgen::rt::as_i64(t6_0), wit_bindgen::rt::as_i64(t6_1), wit_bindgen::rt::as_i64(t8_0), wit_bindgen::rt::as_i64(t8_1), match transparent0 { true => 1, false => 0 }, ptr9);
            Handle{ulid:(*((ptr9 + 0) as *const i64) as u64, *((ptr9 + 8) as *const i64) as u64), }
          }
        }
        #[allow(clippy::all)]
        pub fn destroy(handle: Handle,){
          
          #[allow(unused_imports)]
          use wit_bindgen::rt::{alloc, vec::Vec, string::String};
          unsafe {
            let Handle{ ulid:ulid0, } = handle;
            let (t1_0, t1_1, ) = ulid0;
            
            #[link(wasm_import_module = "ambient:bindings/client-material")]
            extern "C" {
              #[cfg_attr(target_arch = "wasm32", link_name = "destroy")]
              #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-material_destroy")]
              fn wit_import(
              _: i64, _: i64, );
            }
            wit_import(wit_bindgen::rt::as_i64(t1_0), wit_bindgen::rt::as_i64(t1_1));
          }
        }
        
      }
      
      
      #[allow(clippy::all)]
      pub mod component {
        #[used]
        #[doc(hidden)]
        #[cfg(target_arch = "wasm32")]
        static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
        
        pub type EntityId = super::super::super::ambient::bindings::types::EntityId;
        pub type Mat4 = super::super::super::ambient::bindings::types::Mat4;
        pub type Quat = super::super::super::ambient::bindings::types::Quat;
        pub type Vec2 = super::super::super::ambient::bindings::types::Vec2;
        pub type Vec3 = super::super::super::ambient::bindings::types::Vec3;
        pub type Vec4 = super::super::super::ambient::bindings::types::Vec4;
        pub type Uvec2 = super::super::super::ambient::bindings::types::Uvec2;
        pub type Uvec3 = super::super::super::ambient::bindings::types::Uvec3;
        pub type Uvec4 = super::super::super::ambient::bindings::types::Uvec4;
        pub type Ivec2 = super::super::super::ambient::bindings::types::Ivec2;
        pub type Ivec3 = super::super::super::ambient::bindings::types::Ivec3;
        pub type Ivec4 = super::super::super::ambient::bindings::types::Ivec4;
        pub type Duration = super::super::super::ambient::bindings::types::Duration;
        pub type Empty = super::super::super::ambient::bindings::types::Empty;
        pub type ProceduralMeshHandle = super::super::super::ambient::bindings::client_mesh::Handle;
        pub type ProceduralTextureHandle = super::super::super::ambient::bindings::client_texture::Handle;
        pub type ProceduralSamplerHandle = super::super::super::ambient::bindings::client_sampler::Handle;
        pub type ProceduralMaterialHandle = super::super::super::ambient::bindings::client_material::Handle;
        #[derive(Clone)]
        pub enum VecValue{
          TypeEmpty(wit_bindgen::rt::vec::Vec::<Empty>),
          TypeBool(wit_bindgen::rt::vec::Vec::<bool>),
          TypeEntityId(wit_bindgen::rt::vec::Vec::<EntityId>),
          TypeF32(wit_bindgen::rt::vec::Vec::<f32>),
          TypeF64(wit_bindgen::rt::vec::Vec::<f64>),
          TypeMat4(wit_bindgen::rt::vec::Vec::<Mat4>),
          TypeQuat(wit_bindgen::rt::vec::Vec::<Quat>),
          TypeString(wit_bindgen::rt::vec::Vec::<wit_bindgen::rt::string::String>),
          TypeU8(wit_bindgen::rt::vec::Vec::<u8>),
          TypeU16(wit_bindgen::rt::vec::Vec::<u16>),
          TypeU32(wit_bindgen::rt::vec::Vec::<u32>),
          TypeU64(wit_bindgen::rt::vec::Vec::<u64>),
          TypeI8(wit_bindgen::rt::vec::Vec::<i8>),
          TypeI16(wit_bindgen::rt::vec::Vec::<i16>),
          TypeI32(wit_bindgen::rt::vec::Vec::<i32>),
          TypeI64(wit_bindgen::rt::vec::Vec::<i64>),
          TypeVec2(wit_bindgen::rt::vec::Vec::<Vec2>),
          TypeVec3(wit_bindgen::rt::vec::Vec::<Vec3>),
          TypeVec4(wit_bindgen::rt::vec::Vec::<Vec4>),
          TypeUvec2(wit_bindgen::rt::vec::Vec::<Uvec2>),
          TypeUvec3(wit_bindgen::rt::vec::Vec::<Uvec3>),
          TypeUvec4(wit_bindgen::rt::vec::Vec::<Uvec4>),
          TypeIvec2(wit_bindgen::rt::vec::Vec::<Ivec2>),
          TypeIvec3(wit_bindgen::rt::vec::Vec::<Ivec3>),
          TypeIvec4(wit_bindgen::rt::vec::Vec::<Ivec4>),
          TypeDuration(wit_bindgen::rt::vec::Vec::<Duration>),
          TypeProceduralMeshHandle(wit_bindgen::rt::vec::Vec::<ProceduralMeshHandle>),
          TypeProceduralTextureHandle(wit_bindgen::rt::vec::Vec::<ProceduralTextureHandle>),
          TypeProceduralSamplerHandle(wit_bindgen::rt::vec::Vec::<ProceduralSamplerHandle>),
          TypeProceduralMaterialHandle(wit_bindgen::rt::vec::Vec::<ProceduralMaterialHandle>),
        }
        impl ::core::fmt::Debug for VecValue {
          fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
            match self {
              VecValue::TypeEmpty(e) => {
                f.debug_tuple("VecValue::TypeEmpty").field(e).finish()
              }
              VecValue::TypeBool(e) => {
                f.debug_tuple("VecValue::TypeBool").field(e).finish()
              }
              VecValue::TypeEntityId(e) => {
                f.debug_tuple("VecValue::TypeEntityId").field(e).finish()
              }
              VecValue::TypeF32(e) => {
                f.debug_tuple("VecValue::TypeF32").field(e).finish()
              }
              VecValue::TypeF64(e) => {
                f.debug_tuple("VecValue::TypeF64").field(e).finish()
              }
              VecValue::TypeMat4(e) => {
                f.debug_tuple("VecValue::TypeMat4").field(e).finish()
              }
              VecValue::TypeQuat(e) => {
                f.debug_tuple("VecValue::TypeQuat").field(e).finish()
              }
              VecValue::TypeString(e) => {
                f.debug_tuple("VecValue::TypeString").field(e).finish()
              }
              VecValue::TypeU8(e) => {
                f.debug_tuple("VecValue::TypeU8").field(e).finish()
              }
              VecValue::TypeU16(e) => {
                f.debug_tuple("VecValue::TypeU16").field(e).finish()
              }
              VecValue::TypeU32(e) => {
                f.debug_tuple("VecValue::TypeU32").field(e).finish()
              }
              VecValue::TypeU64(e) => {
                f.debug_tuple("VecValue::TypeU64").field(e).finish()
              }
              VecValue::TypeI8(e) => {
                f.debug_tuple("VecValue::TypeI8").field(e).finish()
              }
              VecValue::TypeI16(e) => {
                f.debug_tuple("VecValue::TypeI16").field(e).finish()
              }
              VecValue::TypeI32(e) => {
                f.debug_tuple("VecValue::TypeI32").field(e).finish()
              }
              VecValue::TypeI64(e) => {
                f.debug_tuple("VecValue::TypeI64").field(e).finish()
              }
              VecValue::TypeVec2(e) => {
                f.debug_tuple("VecValue::TypeVec2").field(e).finish()
              }
              VecValue::TypeVec3(e) => {
                f.debug_tuple("VecValue::TypeVec3").field(e).finish()
              }
              VecValue::TypeVec4(e) => {
                f.debug_tuple("VecValue::TypeVec4").field(e).finish()
              }
              VecValue::TypeUvec2(e) => {
                f.debug_tuple("VecValue::TypeUvec2").field(e).finish()
              }
              VecValue::TypeUvec3(e) => {
                f.debug_tuple("VecValue::TypeUvec3").field(e).finish()
              }
              VecValue::TypeUvec4(e) => {
                f.debug_tuple("VecValue::TypeUvec4").field(e).finish()
              }
              VecValue::TypeIvec2(e) => {
                f.debug_tuple("VecValue::TypeIvec2").field(e).finish()
              }
              VecValue::TypeIvec3(e) => {
                f.debug_tuple("VecValue::TypeIvec3").field(e).finish()
              }
              VecValue::TypeIvec4(e) => {
                f.debug_tuple("VecValue::TypeIvec4").field(e).finish()
              }
              VecValue::TypeDuration(e) => {
                f.debug_tuple("VecValue::TypeDuration").field(e).finish()
              }
              VecValue::TypeProceduralMeshHandle(e) => {
                f.debug_tuple("VecValue::TypeProceduralMeshHandle").field(e).finish()
              }
              VecValue::TypeProceduralTextureHandle(e) => {
                f.debug_tuple("VecValue::TypeProceduralTextureHandle").field(e).finish()
              }
              VecValue::TypeProceduralSamplerHandle(e) => {
                f.debug_tuple("VecValue::TypeProceduralSamplerHandle").field(e).finish()
              }
              VecValue::TypeProceduralMaterialHandle(e) => {
                f.debug_tuple("VecValue::TypeProceduralMaterialHandle").field(e).finish()
              }
            }
          }
        }
        #[derive(Clone)]
        pub enum OptionValue{
          TypeEmpty(Option<Empty>),
          TypeBool(Option<bool>),
          TypeEntityId(Option<EntityId>),
          TypeF32(Option<f32>),
          TypeF64(Option<f64>),
          TypeMat4(Option<Mat4>),
          TypeQuat(Option<Quat>),
          TypeString(Option<wit_bindgen::rt::string::String>),
          TypeU8(Option<u8>),
          TypeU16(Option<u16>),
          TypeU32(Option<u32>),
          TypeU64(Option<u64>),
          TypeI8(Option<i8>),
          TypeI16(Option<i16>),
          TypeI32(Option<i32>),
          TypeI64(Option<i64>),
          TypeVec2(Option<Vec2>),
          TypeVec3(Option<Vec3>),
          TypeVec4(Option<Vec4>),
          TypeUvec2(Option<Uvec2>),
          TypeUvec3(Option<Uvec3>),
          TypeUvec4(Option<Uvec4>),
          TypeIvec2(Option<Ivec2>),
          TypeIvec3(Option<Ivec3>),
          TypeIvec4(Option<Ivec4>),
          TypeDuration(Option<Duration>),
          TypeProceduralMeshHandle(Option<ProceduralMeshHandle>),
          TypeProceduralTextureHandle(Option<ProceduralTextureHandle>),
          TypeProceduralSamplerHandle(Option<ProceduralSamplerHandle>),
          TypeProceduralMaterialHandle(Option<ProceduralMaterialHandle>),
        }
        impl ::core::fmt::Debug for OptionValue {
          fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
            match self {
              OptionValue::TypeEmpty(e) => {
                f.debug_tuple("OptionValue::TypeEmpty").field(e).finish()
              }
              OptionValue::TypeBool(e) => {
                f.debug_tuple("OptionValue::TypeBool").field(e).finish()
              }
              OptionValue::TypeEntityId(e) => {
                f.debug_tuple("OptionValue::TypeEntityId").field(e).finish()
              }
              OptionValue::TypeF32(e) => {
                f.debug_tuple("OptionValue::TypeF32").field(e).finish()
              }
              OptionValue::TypeF64(e) => {
                f.debug_tuple("OptionValue::TypeF64").field(e).finish()
              }
              OptionValue::TypeMat4(e) => {
                f.debug_tuple("OptionValue::TypeMat4").field(e).finish()
              }
              OptionValue::TypeQuat(e) => {
                f.debug_tuple("OptionValue::TypeQuat").field(e).finish()
              }
              OptionValue::TypeString(e) => {
                f.debug_tuple("OptionValue::TypeString").field(e).finish()
              }
              OptionValue::TypeU8(e) => {
                f.debug_tuple("OptionValue::TypeU8").field(e).finish()
              }
              OptionValue::TypeU16(e) => {
                f.debug_tuple("OptionValue::TypeU16").field(e).finish()
              }
              OptionValue::TypeU32(e) => {
                f.debug_tuple("OptionValue::TypeU32").field(e).finish()
              }
              OptionValue::TypeU64(e) => {
                f.debug_tuple("OptionValue::TypeU64").field(e).finish()
              }
              OptionValue::TypeI8(e) => {
                f.debug_tuple("OptionValue::TypeI8").field(e).finish()
              }
              OptionValue::TypeI16(e) => {
                f.debug_tuple("OptionValue::TypeI16").field(e).finish()
              }
              OptionValue::TypeI32(e) => {
                f.debug_tuple("OptionValue::TypeI32").field(e).finish()
              }
              OptionValue::TypeI64(e) => {
                f.debug_tuple("OptionValue::TypeI64").field(e).finish()
              }
              OptionValue::TypeVec2(e) => {
                f.debug_tuple("OptionValue::TypeVec2").field(e).finish()
              }
              OptionValue::TypeVec3(e) => {
                f.debug_tuple("OptionValue::TypeVec3").field(e).finish()
              }
              OptionValue::TypeVec4(e) => {
                f.debug_tuple("OptionValue::TypeVec4").field(e).finish()
              }
              OptionValue::TypeUvec2(e) => {
                f.debug_tuple("OptionValue::TypeUvec2").field(e).finish()
              }
              OptionValue::TypeUvec3(e) => {
                f.debug_tuple("OptionValue::TypeUvec3").field(e).finish()
              }
              OptionValue::TypeUvec4(e) => {
                f.debug_tuple("OptionValue::TypeUvec4").field(e).finish()
              }
              OptionValue::TypeIvec2(e) => {
                f.debug_tuple("OptionValue::TypeIvec2").field(e).finish()
              }
              OptionValue::TypeIvec3(e) => {
                f.debug_tuple("OptionValue::TypeIvec3").field(e).finish()
              }
              OptionValue::TypeIvec4(e) => {
                f.debug_tuple("OptionValue::TypeIvec4").field(e).finish()
              }
              OptionValue::TypeDuration(e) => {
                f.debug_tuple("OptionValue::TypeDuration").field(e).finish()
              }
              OptionValue::TypeProceduralMeshHandle(e) => {
                f.debug_tuple("OptionValue::TypeProceduralMeshHandle").field(e).finish()
              }
              OptionValue::TypeProceduralTextureHandle(e) => {
                f.debug_tuple("OptionValue::TypeProceduralTextureHandle").field(e).finish()
              }
              OptionValue::TypeProceduralSamplerHandle(e) => {
                f.debug_tuple("OptionValue::TypeProceduralSamplerHandle").field(e).finish()
              }
              OptionValue::TypeProceduralMaterialHandle(e) => {
                f.debug_tuple("OptionValue::TypeProceduralMaterialHandle").field(e).finish()
              }
            }
          }
        }
        #[derive(Clone)]
        pub enum Value{
          TypeEmpty(Empty),
          TypeBool(bool),
          TypeEntityId(EntityId),
          TypeF32(f32),
          TypeF64(f64),
          TypeMat4(Mat4),
          TypeQuat(Quat),
          TypeString(wit_bindgen::rt::string::String),
          TypeU8(u8),
          TypeU16(u16),
          TypeU32(u32),
          TypeU64(u64),
          TypeI8(i8),
          TypeI16(i16),
          TypeI32(i32),
          TypeI64(i64),
          TypeVec2(Vec2),
          TypeVec3(Vec3),
          TypeVec4(Vec4),
          TypeUvec2(Uvec2),
          TypeUvec3(Uvec3),
          TypeUvec4(Uvec4),
          TypeIvec2(Ivec2),
          TypeIvec3(Ivec3),
          TypeIvec4(Ivec4),
          TypeDuration(Duration),
          TypeProceduralMeshHandle(ProceduralMeshHandle),
          TypeProceduralTextureHandle(ProceduralTextureHandle),
          TypeProceduralSamplerHandle(ProceduralSamplerHandle),
          TypeProceduralMaterialHandle(ProceduralMaterialHandle),
          TypeVec(VecValue),
          TypeOption(OptionValue),
        }
        impl ::core::fmt::Debug for Value {
          fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
            match self {
              Value::TypeEmpty(e) => {
                f.debug_tuple("Value::TypeEmpty").field(e).finish()
              }
              Value::TypeBool(e) => {
                f.debug_tuple("Value::TypeBool").field(e).finish()
              }
              Value::TypeEntityId(e) => {
                f.debug_tuple("Value::TypeEntityId").field(e).finish()
              }
              Value::TypeF32(e) => {
                f.debug_tuple("Value::TypeF32").field(e).finish()
              }
              Value::TypeF64(e) => {
                f.debug_tuple("Value::TypeF64").field(e).finish()
              }
              Value::TypeMat4(e) => {
                f.debug_tuple("Value::TypeMat4").field(e).finish()
              }
              Value::TypeQuat(e) => {
                f.debug_tuple("Value::TypeQuat").field(e).finish()
              }
              Value::TypeString(e) => {
                f.debug_tuple("Value::TypeString").field(e).finish()
              }
              Value::TypeU8(e) => {
                f.debug_tuple("Value::TypeU8").field(e).finish()
              }
              Value::TypeU16(e) => {
                f.debug_tuple("Value::TypeU16").field(e).finish()
              }
              Value::TypeU32(e) => {
                f.debug_tuple("Value::TypeU32").field(e).finish()
              }
              Value::TypeU64(e) => {
                f.debug_tuple("Value::TypeU64").field(e).finish()
              }
              Value::TypeI8(e) => {
                f.debug_tuple("Value::TypeI8").field(e).finish()
              }
              Value::TypeI16(e) => {
                f.debug_tuple("Value::TypeI16").field(e).finish()
              }
              Value::TypeI32(e) => {
                f.debug_tuple("Value::TypeI32").field(e).finish()
              }
              Value::TypeI64(e) => {
                f.debug_tuple("Value::TypeI64").field(e).finish()
              }
              Value::TypeVec2(e) => {
                f.debug_tuple("Value::TypeVec2").field(e).finish()
              }
              Value::TypeVec3(e) => {
                f.debug_tuple("Value::TypeVec3").field(e).finish()
              }
              Value::TypeVec4(e) => {
                f.debug_tuple("Value::TypeVec4").field(e).finish()
              }
              Value::TypeUvec2(e) => {
                f.debug_tuple("Value::TypeUvec2").field(e).finish()
              }
              Value::TypeUvec3(e) => {
                f.debug_tuple("Value::TypeUvec3").field(e).finish()
              }
              Value::TypeUvec4(e) => {
                f.debug_tuple("Value::TypeUvec4").field(e).finish()
              }
              Value::TypeIvec2(e) => {
                f.debug_tuple("Value::TypeIvec2").field(e).finish()
              }
              Value::TypeIvec3(e) => {
                f.debug_tuple("Value::TypeIvec3").field(e).finish()
              }
              Value::TypeIvec4(e) => {
                f.debug_tuple("Value::TypeIvec4").field(e).finish()
              }
              Value::TypeDuration(e) => {
                f.debug_tuple("Value::TypeDuration").field(e).finish()
              }
              Value::TypeProceduralMeshHandle(e) => {
                f.debug_tuple("Value::TypeProceduralMeshHandle").field(e).finish()
              }
              Value::TypeProceduralTextureHandle(e) => {
                f.debug_tuple("Value::TypeProceduralTextureHandle").field(e).finish()
              }
              Value::TypeProceduralSamplerHandle(e) => {
                f.debug_tuple("Value::TypeProceduralSamplerHandle").field(e).finish()
              }
              Value::TypeProceduralMaterialHandle(e) => {
                f.debug_tuple("Value::TypeProceduralMaterialHandle").field(e).finish()
              }
              Value::TypeVec(e) => {
                f.debug_tuple("Value::TypeVec").field(e).finish()
              }
              Value::TypeOption(e) => {
                f.debug_tuple("Value::TypeOption").field(e).finish()
              }
            }
          }
        }
        pub type Entity = wit_bindgen::rt::vec::Vec::<(u32,Value,)>;
        #[derive(Clone)]
        pub struct QueryBuild {
          pub components: wit_bindgen::rt::vec::Vec::<u32>,
          pub includes: wit_bindgen::rt::vec::Vec::<u32>,
          pub excludes: wit_bindgen::rt::vec::Vec::<u32>,
          pub changed: wit_bindgen::rt::vec::Vec::<u32>,
        }
        impl ::core::fmt::Debug for QueryBuild {
          fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
            f.debug_struct("QueryBuild").field("components", &self.components).field("includes", &self.includes).field("excludes", &self.excludes).field("changed", &self.changed).finish()
          }
        }
        #[repr(u8)]
        #[derive(Clone, Copy, PartialEq, Eq)]
        pub enum QueryEvent {
          Frame,
          Spawn,
          Despawn,
        }
        impl ::core::fmt::Debug for QueryEvent {
          fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
            match self {
              QueryEvent::Frame => {
                f.debug_tuple("QueryEvent::Frame").finish()
              }
              QueryEvent::Spawn => {
                f.debug_tuple("QueryEvent::Spawn").finish()
              }
              QueryEvent::Despawn => {
                f.debug_tuple("QueryEvent::Despawn").finish()
              }
            }
          }
        }
        #[allow(clippy::all)]
        pub fn get_index(id: &str,) -> Option<u32>{
          
          #[allow(unused_imports)]
          use wit_bindgen::rt::{alloc, vec::Vec, string::String};
          unsafe {
            
            #[repr(align(4))]
            struct RetArea([u8; 8]);
            let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
            let vec0 = id;
            let ptr0 = vec0.as_ptr() as i32;
            let len0 = vec0.len() as i32;
            let ptr1 = ret_area.as_mut_ptr() as i32;
            #[link(wasm_import_module = "ambient:bindings/component")]
            extern "C" {
              #[cfg_attr(target_arch = "wasm32", link_name = "get-index")]
              #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/component_get-index")]
              fn wit_import(
              _: i32, _: i32, _: i32, );
            }
            wit_import(ptr0, len0, ptr1);
            match i32::from(*((ptr1 + 0) as *const u8)) {
              0 => None,
              1 => Some(*((ptr1 + 4) as *const i32) as u32),
              #[cfg(not(debug_assertions))]
              _ => ::core::hint::unreachable_unchecked(),
              #[cfg(debug_assertions)]
              _ => panic!("invalid enum discriminant"),
            }
          }
        }
        #[allow(clippy::all)]
        pub fn get_id(index: u32,) -> Option<wit_bindgen::rt::string::String>{
          
          #[allow(unused_imports)]
          use wit_bindgen::rt::{alloc, vec::Vec, string::String};
          unsafe {
            
            #[repr(align(4))]
            struct RetArea([u8; 12]);
            let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
            let ptr0 = ret_area.as_mut_ptr() as i32;
            #[link(wasm_import_module = "ambient:bindings/component")]
            extern "C" {
              #[cfg_attr(target_arch = "wasm32", link_name = "get-id")]
              #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/component_get-id")]
              fn wit_import(
              _: i32, _: i32, );
            }
            wit_import(wit_bindgen::rt::as_i32(index), ptr0);
            match i32::from(*((ptr0 + 0) as *const u8)) {
              0 => None,
              1 => Some({
                let len1 = *((ptr0 + 8) as *const i32) as usize;
                
                {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((ptr0 + 4) as *const i32) as *mut _, len1, len1))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((ptr0 + 4) as *const i32) as *mut _, len1, len1)).unwrap()}}
              }),
              #[cfg(not(debug_assertions))]
              _ => ::core::hint::unreachable_unchecked(),
              #[cfg(debug_assertions)]
              _ => panic!("invalid enum discriminant"),
            }
          }
        }
        #[allow(clippy::all)]
        pub fn get_component(entity: EntityId,index: u32,) -> Option<Value>{
          
          #[allow(unused_imports)]
          use wit_bindgen::rt::{alloc, vec::Vec, string::String};
          unsafe {
            
            #[repr(align(8))]
            struct RetArea([u8; 96]);
            let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
            let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
            let ptr1 = ret_area.as_mut_ptr() as i32;
            #[link(wasm_import_module = "ambient:bindings/component")]
            extern "C" {
              #[cfg_attr(target_arch = "wasm32", link_name = "get-component")]
              #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/component_get-component")]
              fn wit_import(
              _: i64, _: i64, _: i32, _: i32, );
            }
            wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), wit_bindgen::rt::as_i32(index), ptr1);
            match i32::from(*((ptr1 + 0) as *const u8)) {
              0 => None,
              1 => Some({{match i32::from(*((ptr1 + 8) as *const u8)) {
                0 => Value::TypeEmpty(super::super::super::ambient::bindings::types::Empty{dummy:i32::from(*((ptr1 + 16) as *const u8)) as u8, }),
                1 => Value::TypeBool({
                  #[cfg(not(debug_assertions))]
                  { ::core::mem::transmute::<u8, bool>(i32::from(*((ptr1 + 16) as *const u8)) as u8) }
                  #[cfg(debug_assertions)]
                  {
                    match i32::from(*((ptr1 + 16) as *const u8)) {
                      0 => false,
                      1 => true,
                      _ => panic!("invalid bool discriminant"),
                    }
                  }
                }),
                2 => Value::TypeEntityId(super::super::super::ambient::bindings::types::EntityId{id0:*((ptr1 + 16) as *const i64) as u64, id1:*((ptr1 + 24) as *const i64) as u64, }),
                3 => Value::TypeF32(*((ptr1 + 16) as *const f32)),
                4 => Value::TypeF64(*((ptr1 + 16) as *const f64)),
                5 => Value::TypeMat4(super::super::super::ambient::bindings::types::Mat4{x:super::super::super::ambient::bindings::types::Vec4{x:*((ptr1 + 16) as *const f32), y:*((ptr1 + 20) as *const f32), z:*((ptr1 + 24) as *const f32), w:*((ptr1 + 28) as *const f32), }, y:super::super::super::ambient::bindings::types::Vec4{x:*((ptr1 + 32) as *const f32), y:*((ptr1 + 36) as *const f32), z:*((ptr1 + 40) as *const f32), w:*((ptr1 + 44) as *const f32), }, z:super::super::super::ambient::bindings::types::Vec4{x:*((ptr1 + 48) as *const f32), y:*((ptr1 + 52) as *const f32), z:*((ptr1 + 56) as *const f32), w:*((ptr1 + 60) as *const f32), }, w:super::super::super::ambient::bindings::types::Vec4{x:*((ptr1 + 64) as *const f32), y:*((ptr1 + 68) as *const f32), z:*((ptr1 + 72) as *const f32), w:*((ptr1 + 76) as *const f32), }, }),
                6 => Value::TypeQuat(super::super::super::ambient::bindings::types::Quat{x:*((ptr1 + 16) as *const f32), y:*((ptr1 + 20) as *const f32), z:*((ptr1 + 24) as *const f32), w:*((ptr1 + 28) as *const f32), }),
                7 => Value::TypeString({
                  let len2 = *((ptr1 + 20) as *const i32) as usize;
                  
                  {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((ptr1 + 16) as *const i32) as *mut _, len2, len2))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((ptr1 + 16) as *const i32) as *mut _, len2, len2)).unwrap()}}
                }),
                8 => Value::TypeU8(i32::from(*((ptr1 + 16) as *const u8)) as u8),
                9 => Value::TypeU16(i32::from(*((ptr1 + 16) as *const u16)) as u16),
                10 => Value::TypeU32(*((ptr1 + 16) as *const i32) as u32),
                11 => Value::TypeU64(*((ptr1 + 16) as *const i64) as u64),
                12 => Value::TypeI8(i32::from(*((ptr1 + 16) as *const i8)) as i8),
                13 => Value::TypeI16(i32::from(*((ptr1 + 16) as *const i16)) as i16),
                14 => Value::TypeI32(*((ptr1 + 16) as *const i32)),
                15 => Value::TypeI64(*((ptr1 + 16) as *const i64)),
                16 => Value::TypeVec2(super::super::super::ambient::bindings::types::Vec2{x:*((ptr1 + 16) as *const f32), y:*((ptr1 + 20) as *const f32), }),
                17 => Value::TypeVec3(super::super::super::ambient::bindings::types::Vec3{x:*((ptr1 + 16) as *const f32), y:*((ptr1 + 20) as *const f32), z:*((ptr1 + 24) as *const f32), }),
                18 => Value::TypeVec4(super::super::super::ambient::bindings::types::Vec4{x:*((ptr1 + 16) as *const f32), y:*((ptr1 + 20) as *const f32), z:*((ptr1 + 24) as *const f32), w:*((ptr1 + 28) as *const f32), }),
                19 => Value::TypeUvec2(super::super::super::ambient::bindings::types::Uvec2{x:*((ptr1 + 16) as *const i32) as u32, y:*((ptr1 + 20) as *const i32) as u32, }),
                20 => Value::TypeUvec3(super::super::super::ambient::bindings::types::Uvec3{x:*((ptr1 + 16) as *const i32) as u32, y:*((ptr1 + 20) as *const i32) as u32, z:*((ptr1 + 24) as *const i32) as u32, }),
                21 => Value::TypeUvec4(super::super::super::ambient::bindings::types::Uvec4{x:*((ptr1 + 16) as *const i32) as u32, y:*((ptr1 + 20) as *const i32) as u32, z:*((ptr1 + 24) as *const i32) as u32, w:*((ptr1 + 28) as *const i32) as u32, }),
                22 => Value::TypeIvec2(super::super::super::ambient::bindings::types::Ivec2{x:*((ptr1 + 16) as *const i32), y:*((ptr1 + 20) as *const i32), }),
                23 => Value::TypeIvec3(super::super::super::ambient::bindings::types::Ivec3{x:*((ptr1 + 16) as *const i32), y:*((ptr1 + 20) as *const i32), z:*((ptr1 + 24) as *const i32), }),
                24 => Value::TypeIvec4(super::super::super::ambient::bindings::types::Ivec4{x:*((ptr1 + 16) as *const i32), y:*((ptr1 + 20) as *const i32), z:*((ptr1 + 24) as *const i32), w:*((ptr1 + 28) as *const i32), }),
                25 => Value::TypeDuration(super::super::super::ambient::bindings::types::Duration{seconds:*((ptr1 + 16) as *const i64) as u64, nanoseconds:*((ptr1 + 24) as *const i32) as u32, }),
                26 => Value::TypeProceduralMeshHandle(super::super::super::ambient::bindings::client_mesh::Handle{ulid:(*((ptr1 + 16) as *const i64) as u64, *((ptr1 + 24) as *const i64) as u64), }),
                27 => Value::TypeProceduralTextureHandle(super::super::super::ambient::bindings::client_texture::Handle{ulid:(*((ptr1 + 16) as *const i64) as u64, *((ptr1 + 24) as *const i64) as u64), }),
                28 => Value::TypeProceduralSamplerHandle(super::super::super::ambient::bindings::client_sampler::Handle{ulid:(*((ptr1 + 16) as *const i64) as u64, *((ptr1 + 24) as *const i64) as u64), }),
                29 => Value::TypeProceduralMaterialHandle(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((ptr1 + 16) as *const i64) as u64, *((ptr1 + 24) as *const i64) as u64), }),
                30 => Value::TypeVec({{match i32::from(*((ptr1 + 16) as *const u8)) {
                  0 => VecValue::TypeEmpty({
                    let len3 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len3, len3)
                  }),
                  1 => VecValue::TypeBool({
                    let base4 = *((ptr1 + 20) as *const i32);
                    let len4 = *((ptr1 + 24) as *const i32);
                    let mut result4 = Vec::with_capacity(len4 as usize);
                    for i in 0..len4 {
                      let base = base4 + i *1;
                      result4.push({
                        #[cfg(not(debug_assertions))]
                        { ::core::mem::transmute::<u8, bool>(i32::from(*((base + 0) as *const u8)) as u8) }
                        #[cfg(debug_assertions)]
                        {
                          match i32::from(*((base + 0) as *const u8)) {
                            0 => false,
                            1 => true,
                            _ => panic!("invalid bool discriminant"),
                          }
                        }
                      });
                    }
                    wit_bindgen::rt::dealloc(base4, (len4 as usize) * 1, 1);
                    
                    result4
                  }),
                  2 => VecValue::TypeEntityId({
                    let len5 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len5, len5)
                  }),
                  3 => VecValue::TypeF32({
                    let len6 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len6, len6)
                  }),
                  4 => VecValue::TypeF64({
                    let len7 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len7, len7)
                  }),
                  5 => VecValue::TypeMat4({
                    let len8 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len8, len8)
                  }),
                  6 => VecValue::TypeQuat({
                    let len9 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len9, len9)
                  }),
                  7 => VecValue::TypeString({
                    let base11 = *((ptr1 + 20) as *const i32);
                    let len11 = *((ptr1 + 24) as *const i32);
                    let mut result11 = Vec::with_capacity(len11 as usize);
                    for i in 0..len11 {
                      let base = base11 + i *8;
                      result11.push({
                        let len10 = *((base + 4) as *const i32) as usize;
                        
                        {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((base + 0) as *const i32) as *mut _, len10, len10))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((base + 0) as *const i32) as *mut _, len10, len10)).unwrap()}}
                      });
                    }
                    wit_bindgen::rt::dealloc(base11, (len11 as usize) * 8, 4);
                    
                    result11
                  }),
                  8 => VecValue::TypeU8({
                    let len12 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len12, len12)
                  }),
                  9 => VecValue::TypeU16({
                    let len13 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len13, len13)
                  }),
                  10 => VecValue::TypeU32({
                    let len14 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len14, len14)
                  }),
                  11 => VecValue::TypeU64({
                    let len15 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len15, len15)
                  }),
                  12 => VecValue::TypeI8({
                    let len16 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len16, len16)
                  }),
                  13 => VecValue::TypeI16({
                    let len17 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len17, len17)
                  }),
                  14 => VecValue::TypeI32({
                    let len18 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len18, len18)
                  }),
                  15 => VecValue::TypeI64({
                    let len19 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len19, len19)
                  }),
                  16 => VecValue::TypeVec2({
                    let len20 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len20, len20)
                  }),
                  17 => VecValue::TypeVec3({
                    let len21 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len21, len21)
                  }),
                  18 => VecValue::TypeVec4({
                    let len22 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len22, len22)
                  }),
                  19 => VecValue::TypeUvec2({
                    let len23 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len23, len23)
                  }),
                  20 => VecValue::TypeUvec3({
                    let len24 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len24, len24)
                  }),
                  21 => VecValue::TypeUvec4({
                    let len25 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len25, len25)
                  }),
                  22 => VecValue::TypeIvec2({
                    let len26 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len26, len26)
                  }),
                  23 => VecValue::TypeIvec3({
                    let len27 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len27, len27)
                  }),
                  24 => VecValue::TypeIvec4({
                    let len28 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len28, len28)
                  }),
                  25 => VecValue::TypeDuration({
                    let len29 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len29, len29)
                  }),
                  26 => VecValue::TypeProceduralMeshHandle({
                    let len30 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len30, len30)
                  }),
                  27 => VecValue::TypeProceduralTextureHandle({
                    let len31 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len31, len31)
                  }),
                  28 => VecValue::TypeProceduralSamplerHandle({
                    let len32 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len32, len32)
                  }),
                  #[cfg(debug_assertions)]29 => VecValue::TypeProceduralMaterialHandle({
                    let len33 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len33, len33)
                  }),
                  #[cfg(not(debug_assertions))]_ => VecValue::TypeProceduralMaterialHandle({
                    let len33 = *((ptr1 + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((ptr1 + 20) as *const i32) as *mut _, len33, len33)
                  }),
                  #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                }}}),
                #[cfg(debug_assertions)]31 => Value::TypeOption({{match i32::from(*((ptr1 + 16) as *const u8)) {
                  0 => OptionValue::TypeEmpty(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Empty{dummy:i32::from(*((ptr1 + 25) as *const u8)) as u8, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  1 => OptionValue::TypeBool(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some({
                      #[cfg(not(debug_assertions))]
                      { ::core::mem::transmute::<u8, bool>(i32::from(*((ptr1 + 25) as *const u8)) as u8) }
                      #[cfg(debug_assertions)]
                      {
                        match i32::from(*((ptr1 + 25) as *const u8)) {
                          0 => false,
                          1 => true,
                          _ => panic!("invalid bool discriminant"),
                        }
                      }
                    }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  2 => OptionValue::TypeEntityId(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::EntityId{id0:*((ptr1 + 32) as *const i64) as u64, id1:*((ptr1 + 40) as *const i64) as u64, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  3 => OptionValue::TypeF32(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((ptr1 + 28) as *const f32)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  4 => OptionValue::TypeF64(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((ptr1 + 32) as *const f64)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  5 => OptionValue::TypeMat4(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Mat4{x:super::super::super::ambient::bindings::types::Vec4{x:*((ptr1 + 28) as *const f32), y:*((ptr1 + 32) as *const f32), z:*((ptr1 + 36) as *const f32), w:*((ptr1 + 40) as *const f32), }, y:super::super::super::ambient::bindings::types::Vec4{x:*((ptr1 + 44) as *const f32), y:*((ptr1 + 48) as *const f32), z:*((ptr1 + 52) as *const f32), w:*((ptr1 + 56) as *const f32), }, z:super::super::super::ambient::bindings::types::Vec4{x:*((ptr1 + 60) as *const f32), y:*((ptr1 + 64) as *const f32), z:*((ptr1 + 68) as *const f32), w:*((ptr1 + 72) as *const f32), }, w:super::super::super::ambient::bindings::types::Vec4{x:*((ptr1 + 76) as *const f32), y:*((ptr1 + 80) as *const f32), z:*((ptr1 + 84) as *const f32), w:*((ptr1 + 88) as *const f32), }, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  6 => OptionValue::TypeQuat(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Quat{x:*((ptr1 + 28) as *const f32), y:*((ptr1 + 32) as *const f32), z:*((ptr1 + 36) as *const f32), w:*((ptr1 + 40) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  7 => OptionValue::TypeString(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some({
                      let len34 = *((ptr1 + 32) as *const i32) as usize;
                      
                      {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((ptr1 + 28) as *const i32) as *mut _, len34, len34))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((ptr1 + 28) as *const i32) as *mut _, len34, len34)).unwrap()}}
                    }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  8 => OptionValue::TypeU8(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((ptr1 + 25) as *const u8)) as u8),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  9 => OptionValue::TypeU16(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((ptr1 + 26) as *const u16)) as u16),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  10 => OptionValue::TypeU32(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((ptr1 + 28) as *const i32) as u32),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  11 => OptionValue::TypeU64(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((ptr1 + 32) as *const i64) as u64),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  12 => OptionValue::TypeI8(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((ptr1 + 25) as *const i8)) as i8),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  13 => OptionValue::TypeI16(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((ptr1 + 26) as *const i16)) as i16),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  14 => OptionValue::TypeI32(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((ptr1 + 28) as *const i32)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  15 => OptionValue::TypeI64(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((ptr1 + 32) as *const i64)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  16 => OptionValue::TypeVec2(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec2{x:*((ptr1 + 28) as *const f32), y:*((ptr1 + 32) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  17 => OptionValue::TypeVec3(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec3{x:*((ptr1 + 28) as *const f32), y:*((ptr1 + 32) as *const f32), z:*((ptr1 + 36) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  18 => OptionValue::TypeVec4(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec4{x:*((ptr1 + 28) as *const f32), y:*((ptr1 + 32) as *const f32), z:*((ptr1 + 36) as *const f32), w:*((ptr1 + 40) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  19 => OptionValue::TypeUvec2(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec2{x:*((ptr1 + 28) as *const i32) as u32, y:*((ptr1 + 32) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  20 => OptionValue::TypeUvec3(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec3{x:*((ptr1 + 28) as *const i32) as u32, y:*((ptr1 + 32) as *const i32) as u32, z:*((ptr1 + 36) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  21 => OptionValue::TypeUvec4(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec4{x:*((ptr1 + 28) as *const i32) as u32, y:*((ptr1 + 32) as *const i32) as u32, z:*((ptr1 + 36) as *const i32) as u32, w:*((ptr1 + 40) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  22 => OptionValue::TypeIvec2(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec2{x:*((ptr1 + 28) as *const i32), y:*((ptr1 + 32) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  23 => OptionValue::TypeIvec3(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec3{x:*((ptr1 + 28) as *const i32), y:*((ptr1 + 32) as *const i32), z:*((ptr1 + 36) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  24 => OptionValue::TypeIvec4(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec4{x:*((ptr1 + 28) as *const i32), y:*((ptr1 + 32) as *const i32), z:*((ptr1 + 36) as *const i32), w:*((ptr1 + 40) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  25 => OptionValue::TypeDuration(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Duration{seconds:*((ptr1 + 32) as *const i64) as u64, nanoseconds:*((ptr1 + 40) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  26 => OptionValue::TypeProceduralMeshHandle(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_mesh::Handle{ulid:(*((ptr1 + 32) as *const i64) as u64, *((ptr1 + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  27 => OptionValue::TypeProceduralTextureHandle(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_texture::Handle{ulid:(*((ptr1 + 32) as *const i64) as u64, *((ptr1 + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  28 => OptionValue::TypeProceduralSamplerHandle(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_sampler::Handle{ulid:(*((ptr1 + 32) as *const i64) as u64, *((ptr1 + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(debug_assertions)]29 => OptionValue::TypeProceduralMaterialHandle(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((ptr1 + 32) as *const i64) as u64, *((ptr1 + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(not(debug_assertions))]_ => OptionValue::TypeProceduralMaterialHandle(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((ptr1 + 32) as *const i64) as u64, *((ptr1 + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                }}}),
                #[cfg(not(debug_assertions))]_ => Value::TypeOption({{match i32::from(*((ptr1 + 16) as *const u8)) {
                  0 => OptionValue::TypeEmpty(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Empty{dummy:i32::from(*((ptr1 + 25) as *const u8)) as u8, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  1 => OptionValue::TypeBool(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some({
                      #[cfg(not(debug_assertions))]
                      { ::core::mem::transmute::<u8, bool>(i32::from(*((ptr1 + 25) as *const u8)) as u8) }
                      #[cfg(debug_assertions)]
                      {
                        match i32::from(*((ptr1 + 25) as *const u8)) {
                          0 => false,
                          1 => true,
                          _ => panic!("invalid bool discriminant"),
                        }
                      }
                    }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  2 => OptionValue::TypeEntityId(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::EntityId{id0:*((ptr1 + 32) as *const i64) as u64, id1:*((ptr1 + 40) as *const i64) as u64, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  3 => OptionValue::TypeF32(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((ptr1 + 28) as *const f32)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  4 => OptionValue::TypeF64(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((ptr1 + 32) as *const f64)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  5 => OptionValue::TypeMat4(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Mat4{x:super::super::super::ambient::bindings::types::Vec4{x:*((ptr1 + 28) as *const f32), y:*((ptr1 + 32) as *const f32), z:*((ptr1 + 36) as *const f32), w:*((ptr1 + 40) as *const f32), }, y:super::super::super::ambient::bindings::types::Vec4{x:*((ptr1 + 44) as *const f32), y:*((ptr1 + 48) as *const f32), z:*((ptr1 + 52) as *const f32), w:*((ptr1 + 56) as *const f32), }, z:super::super::super::ambient::bindings::types::Vec4{x:*((ptr1 + 60) as *const f32), y:*((ptr1 + 64) as *const f32), z:*((ptr1 + 68) as *const f32), w:*((ptr1 + 72) as *const f32), }, w:super::super::super::ambient::bindings::types::Vec4{x:*((ptr1 + 76) as *const f32), y:*((ptr1 + 80) as *const f32), z:*((ptr1 + 84) as *const f32), w:*((ptr1 + 88) as *const f32), }, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  6 => OptionValue::TypeQuat(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Quat{x:*((ptr1 + 28) as *const f32), y:*((ptr1 + 32) as *const f32), z:*((ptr1 + 36) as *const f32), w:*((ptr1 + 40) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  7 => OptionValue::TypeString(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some({
                      let len34 = *((ptr1 + 32) as *const i32) as usize;
                      
                      {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((ptr1 + 28) as *const i32) as *mut _, len34, len34))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((ptr1 + 28) as *const i32) as *mut _, len34, len34)).unwrap()}}
                    }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  8 => OptionValue::TypeU8(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((ptr1 + 25) as *const u8)) as u8),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  9 => OptionValue::TypeU16(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((ptr1 + 26) as *const u16)) as u16),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  10 => OptionValue::TypeU32(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((ptr1 + 28) as *const i32) as u32),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  11 => OptionValue::TypeU64(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((ptr1 + 32) as *const i64) as u64),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  12 => OptionValue::TypeI8(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((ptr1 + 25) as *const i8)) as i8),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  13 => OptionValue::TypeI16(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((ptr1 + 26) as *const i16)) as i16),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  14 => OptionValue::TypeI32(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((ptr1 + 28) as *const i32)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  15 => OptionValue::TypeI64(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((ptr1 + 32) as *const i64)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  16 => OptionValue::TypeVec2(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec2{x:*((ptr1 + 28) as *const f32), y:*((ptr1 + 32) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  17 => OptionValue::TypeVec3(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec3{x:*((ptr1 + 28) as *const f32), y:*((ptr1 + 32) as *const f32), z:*((ptr1 + 36) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  18 => OptionValue::TypeVec4(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec4{x:*((ptr1 + 28) as *const f32), y:*((ptr1 + 32) as *const f32), z:*((ptr1 + 36) as *const f32), w:*((ptr1 + 40) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  19 => OptionValue::TypeUvec2(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec2{x:*((ptr1 + 28) as *const i32) as u32, y:*((ptr1 + 32) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  20 => OptionValue::TypeUvec3(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec3{x:*((ptr1 + 28) as *const i32) as u32, y:*((ptr1 + 32) as *const i32) as u32, z:*((ptr1 + 36) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  21 => OptionValue::TypeUvec4(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec4{x:*((ptr1 + 28) as *const i32) as u32, y:*((ptr1 + 32) as *const i32) as u32, z:*((ptr1 + 36) as *const i32) as u32, w:*((ptr1 + 40) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  22 => OptionValue::TypeIvec2(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec2{x:*((ptr1 + 28) as *const i32), y:*((ptr1 + 32) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  23 => OptionValue::TypeIvec3(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec3{x:*((ptr1 + 28) as *const i32), y:*((ptr1 + 32) as *const i32), z:*((ptr1 + 36) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  24 => OptionValue::TypeIvec4(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec4{x:*((ptr1 + 28) as *const i32), y:*((ptr1 + 32) as *const i32), z:*((ptr1 + 36) as *const i32), w:*((ptr1 + 40) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  25 => OptionValue::TypeDuration(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Duration{seconds:*((ptr1 + 32) as *const i64) as u64, nanoseconds:*((ptr1 + 40) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  26 => OptionValue::TypeProceduralMeshHandle(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_mesh::Handle{ulid:(*((ptr1 + 32) as *const i64) as u64, *((ptr1 + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  27 => OptionValue::TypeProceduralTextureHandle(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_texture::Handle{ulid:(*((ptr1 + 32) as *const i64) as u64, *((ptr1 + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  28 => OptionValue::TypeProceduralSamplerHandle(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_sampler::Handle{ulid:(*((ptr1 + 32) as *const i64) as u64, *((ptr1 + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(debug_assertions)]29 => OptionValue::TypeProceduralMaterialHandle(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((ptr1 + 32) as *const i64) as u64, *((ptr1 + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(not(debug_assertions))]_ => OptionValue::TypeProceduralMaterialHandle(match i32::from(*((ptr1 + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((ptr1 + 32) as *const i64) as u64, *((ptr1 + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                }}}),
                #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
              }}}),
              #[cfg(not(debug_assertions))]
              _ => ::core::hint::unreachable_unchecked(),
              #[cfg(debug_assertions)]
              _ => panic!("invalid enum discriminant"),
            }
          }
        }
        #[allow(clippy::all)]
        pub fn get_components(entity: EntityId,indices: &[u32],) -> Entity{
          
          #[allow(unused_imports)]
          use wit_bindgen::rt::{alloc, vec::Vec, string::String};
          unsafe {
            
            #[repr(align(4))]
            struct RetArea([u8; 8]);
            let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
            let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
            let vec1 = indices;
            let ptr1 = vec1.as_ptr() as i32;
            let len1 = vec1.len() as i32;
            let ptr2 = ret_area.as_mut_ptr() as i32;
            #[link(wasm_import_module = "ambient:bindings/component")]
            extern "C" {
              #[cfg_attr(target_arch = "wasm32", link_name = "get-components")]
              #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/component_get-components")]
              fn wit_import(
              _: i64, _: i64, _: i32, _: i32, _: i32, );
            }
            wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), ptr1, len1, ptr2);
            let base36 = *((ptr2 + 0) as *const i32);
            let len36 = *((ptr2 + 4) as *const i32);
            let mut result36 = Vec::with_capacity(len36 as usize);
            for i in 0..len36 {
              let base = base36 + i *96;
              result36.push((*((base + 0) as *const i32) as u32, {{match i32::from(*((base + 8) as *const u8)) {
                0 => Value::TypeEmpty(super::super::super::ambient::bindings::types::Empty{dummy:i32::from(*((base + 16) as *const u8)) as u8, }),
                1 => Value::TypeBool({
                  #[cfg(not(debug_assertions))]
                  { ::core::mem::transmute::<u8, bool>(i32::from(*((base + 16) as *const u8)) as u8) }
                  #[cfg(debug_assertions)]
                  {
                    match i32::from(*((base + 16) as *const u8)) {
                      0 => false,
                      1 => true,
                      _ => panic!("invalid bool discriminant"),
                    }
                  }
                }),
                2 => Value::TypeEntityId(super::super::super::ambient::bindings::types::EntityId{id0:*((base + 16) as *const i64) as u64, id1:*((base + 24) as *const i64) as u64, }),
                3 => Value::TypeF32(*((base + 16) as *const f32)),
                4 => Value::TypeF64(*((base + 16) as *const f64)),
                5 => Value::TypeMat4(super::super::super::ambient::bindings::types::Mat4{x:super::super::super::ambient::bindings::types::Vec4{x:*((base + 16) as *const f32), y:*((base + 20) as *const f32), z:*((base + 24) as *const f32), w:*((base + 28) as *const f32), }, y:super::super::super::ambient::bindings::types::Vec4{x:*((base + 32) as *const f32), y:*((base + 36) as *const f32), z:*((base + 40) as *const f32), w:*((base + 44) as *const f32), }, z:super::super::super::ambient::bindings::types::Vec4{x:*((base + 48) as *const f32), y:*((base + 52) as *const f32), z:*((base + 56) as *const f32), w:*((base + 60) as *const f32), }, w:super::super::super::ambient::bindings::types::Vec4{x:*((base + 64) as *const f32), y:*((base + 68) as *const f32), z:*((base + 72) as *const f32), w:*((base + 76) as *const f32), }, }),
                6 => Value::TypeQuat(super::super::super::ambient::bindings::types::Quat{x:*((base + 16) as *const f32), y:*((base + 20) as *const f32), z:*((base + 24) as *const f32), w:*((base + 28) as *const f32), }),
                7 => Value::TypeString({
                  let len3 = *((base + 20) as *const i32) as usize;
                  
                  {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((base + 16) as *const i32) as *mut _, len3, len3))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((base + 16) as *const i32) as *mut _, len3, len3)).unwrap()}}
                }),
                8 => Value::TypeU8(i32::from(*((base + 16) as *const u8)) as u8),
                9 => Value::TypeU16(i32::from(*((base + 16) as *const u16)) as u16),
                10 => Value::TypeU32(*((base + 16) as *const i32) as u32),
                11 => Value::TypeU64(*((base + 16) as *const i64) as u64),
                12 => Value::TypeI8(i32::from(*((base + 16) as *const i8)) as i8),
                13 => Value::TypeI16(i32::from(*((base + 16) as *const i16)) as i16),
                14 => Value::TypeI32(*((base + 16) as *const i32)),
                15 => Value::TypeI64(*((base + 16) as *const i64)),
                16 => Value::TypeVec2(super::super::super::ambient::bindings::types::Vec2{x:*((base + 16) as *const f32), y:*((base + 20) as *const f32), }),
                17 => Value::TypeVec3(super::super::super::ambient::bindings::types::Vec3{x:*((base + 16) as *const f32), y:*((base + 20) as *const f32), z:*((base + 24) as *const f32), }),
                18 => Value::TypeVec4(super::super::super::ambient::bindings::types::Vec4{x:*((base + 16) as *const f32), y:*((base + 20) as *const f32), z:*((base + 24) as *const f32), w:*((base + 28) as *const f32), }),
                19 => Value::TypeUvec2(super::super::super::ambient::bindings::types::Uvec2{x:*((base + 16) as *const i32) as u32, y:*((base + 20) as *const i32) as u32, }),
                20 => Value::TypeUvec3(super::super::super::ambient::bindings::types::Uvec3{x:*((base + 16) as *const i32) as u32, y:*((base + 20) as *const i32) as u32, z:*((base + 24) as *const i32) as u32, }),
                21 => Value::TypeUvec4(super::super::super::ambient::bindings::types::Uvec4{x:*((base + 16) as *const i32) as u32, y:*((base + 20) as *const i32) as u32, z:*((base + 24) as *const i32) as u32, w:*((base + 28) as *const i32) as u32, }),
                22 => Value::TypeIvec2(super::super::super::ambient::bindings::types::Ivec2{x:*((base + 16) as *const i32), y:*((base + 20) as *const i32), }),
                23 => Value::TypeIvec3(super::super::super::ambient::bindings::types::Ivec3{x:*((base + 16) as *const i32), y:*((base + 20) as *const i32), z:*((base + 24) as *const i32), }),
                24 => Value::TypeIvec4(super::super::super::ambient::bindings::types::Ivec4{x:*((base + 16) as *const i32), y:*((base + 20) as *const i32), z:*((base + 24) as *const i32), w:*((base + 28) as *const i32), }),
                25 => Value::TypeDuration(super::super::super::ambient::bindings::types::Duration{seconds:*((base + 16) as *const i64) as u64, nanoseconds:*((base + 24) as *const i32) as u32, }),
                26 => Value::TypeProceduralMeshHandle(super::super::super::ambient::bindings::client_mesh::Handle{ulid:(*((base + 16) as *const i64) as u64, *((base + 24) as *const i64) as u64), }),
                27 => Value::TypeProceduralTextureHandle(super::super::super::ambient::bindings::client_texture::Handle{ulid:(*((base + 16) as *const i64) as u64, *((base + 24) as *const i64) as u64), }),
                28 => Value::TypeProceduralSamplerHandle(super::super::super::ambient::bindings::client_sampler::Handle{ulid:(*((base + 16) as *const i64) as u64, *((base + 24) as *const i64) as u64), }),
                29 => Value::TypeProceduralMaterialHandle(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 16) as *const i64) as u64, *((base + 24) as *const i64) as u64), }),
                30 => Value::TypeVec({{match i32::from(*((base + 16) as *const u8)) {
                  0 => VecValue::TypeEmpty({
                    let len4 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len4, len4)
                  }),
                  1 => VecValue::TypeBool({
                    let base5 = *((base + 20) as *const i32);
                    let len5 = *((base + 24) as *const i32);
                    let mut result5 = Vec::with_capacity(len5 as usize);
                    for i in 0..len5 {
                      let base = base5 + i *1;
                      result5.push({
                        #[cfg(not(debug_assertions))]
                        { ::core::mem::transmute::<u8, bool>(i32::from(*((base + 0) as *const u8)) as u8) }
                        #[cfg(debug_assertions)]
                        {
                          match i32::from(*((base + 0) as *const u8)) {
                            0 => false,
                            1 => true,
                            _ => panic!("invalid bool discriminant"),
                          }
                        }
                      });
                    }
                    wit_bindgen::rt::dealloc(base5, (len5 as usize) * 1, 1);
                    
                    result5
                  }),
                  2 => VecValue::TypeEntityId({
                    let len6 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len6, len6)
                  }),
                  3 => VecValue::TypeF32({
                    let len7 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len7, len7)
                  }),
                  4 => VecValue::TypeF64({
                    let len8 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len8, len8)
                  }),
                  5 => VecValue::TypeMat4({
                    let len9 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len9, len9)
                  }),
                  6 => VecValue::TypeQuat({
                    let len10 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len10, len10)
                  }),
                  7 => VecValue::TypeString({
                    let base12 = *((base + 20) as *const i32);
                    let len12 = *((base + 24) as *const i32);
                    let mut result12 = Vec::with_capacity(len12 as usize);
                    for i in 0..len12 {
                      let base = base12 + i *8;
                      result12.push({
                        let len11 = *((base + 4) as *const i32) as usize;
                        
                        {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((base + 0) as *const i32) as *mut _, len11, len11))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((base + 0) as *const i32) as *mut _, len11, len11)).unwrap()}}
                      });
                    }
                    wit_bindgen::rt::dealloc(base12, (len12 as usize) * 8, 4);
                    
                    result12
                  }),
                  8 => VecValue::TypeU8({
                    let len13 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len13, len13)
                  }),
                  9 => VecValue::TypeU16({
                    let len14 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len14, len14)
                  }),
                  10 => VecValue::TypeU32({
                    let len15 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len15, len15)
                  }),
                  11 => VecValue::TypeU64({
                    let len16 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len16, len16)
                  }),
                  12 => VecValue::TypeI8({
                    let len17 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len17, len17)
                  }),
                  13 => VecValue::TypeI16({
                    let len18 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len18, len18)
                  }),
                  14 => VecValue::TypeI32({
                    let len19 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len19, len19)
                  }),
                  15 => VecValue::TypeI64({
                    let len20 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len20, len20)
                  }),
                  16 => VecValue::TypeVec2({
                    let len21 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len21, len21)
                  }),
                  17 => VecValue::TypeVec3({
                    let len22 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len22, len22)
                  }),
                  18 => VecValue::TypeVec4({
                    let len23 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len23, len23)
                  }),
                  19 => VecValue::TypeUvec2({
                    let len24 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len24, len24)
                  }),
                  20 => VecValue::TypeUvec3({
                    let len25 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len25, len25)
                  }),
                  21 => VecValue::TypeUvec4({
                    let len26 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len26, len26)
                  }),
                  22 => VecValue::TypeIvec2({
                    let len27 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len27, len27)
                  }),
                  23 => VecValue::TypeIvec3({
                    let len28 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len28, len28)
                  }),
                  24 => VecValue::TypeIvec4({
                    let len29 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len29, len29)
                  }),
                  25 => VecValue::TypeDuration({
                    let len30 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len30, len30)
                  }),
                  26 => VecValue::TypeProceduralMeshHandle({
                    let len31 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len31, len31)
                  }),
                  27 => VecValue::TypeProceduralTextureHandle({
                    let len32 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len32, len32)
                  }),
                  28 => VecValue::TypeProceduralSamplerHandle({
                    let len33 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len33, len33)
                  }),
                  #[cfg(debug_assertions)]29 => VecValue::TypeProceduralMaterialHandle({
                    let len34 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len34, len34)
                  }),
                  #[cfg(not(debug_assertions))]_ => VecValue::TypeProceduralMaterialHandle({
                    let len34 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len34, len34)
                  }),
                  #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                }}}),
                #[cfg(debug_assertions)]31 => Value::TypeOption({{match i32::from(*((base + 16) as *const u8)) {
                  0 => OptionValue::TypeEmpty(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Empty{dummy:i32::from(*((base + 25) as *const u8)) as u8, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  1 => OptionValue::TypeBool(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some({
                      #[cfg(not(debug_assertions))]
                      { ::core::mem::transmute::<u8, bool>(i32::from(*((base + 25) as *const u8)) as u8) }
                      #[cfg(debug_assertions)]
                      {
                        match i32::from(*((base + 25) as *const u8)) {
                          0 => false,
                          1 => true,
                          _ => panic!("invalid bool discriminant"),
                        }
                      }
                    }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  2 => OptionValue::TypeEntityId(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::EntityId{id0:*((base + 32) as *const i64) as u64, id1:*((base + 40) as *const i64) as u64, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  3 => OptionValue::TypeF32(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 28) as *const f32)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  4 => OptionValue::TypeF64(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 32) as *const f64)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  5 => OptionValue::TypeMat4(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Mat4{x:super::super::super::ambient::bindings::types::Vec4{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }, y:super::super::super::ambient::bindings::types::Vec4{x:*((base + 44) as *const f32), y:*((base + 48) as *const f32), z:*((base + 52) as *const f32), w:*((base + 56) as *const f32), }, z:super::super::super::ambient::bindings::types::Vec4{x:*((base + 60) as *const f32), y:*((base + 64) as *const f32), z:*((base + 68) as *const f32), w:*((base + 72) as *const f32), }, w:super::super::super::ambient::bindings::types::Vec4{x:*((base + 76) as *const f32), y:*((base + 80) as *const f32), z:*((base + 84) as *const f32), w:*((base + 88) as *const f32), }, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  6 => OptionValue::TypeQuat(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Quat{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  7 => OptionValue::TypeString(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some({
                      let len35 = *((base + 32) as *const i32) as usize;
                      
                      {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((base + 28) as *const i32) as *mut _, len35, len35))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((base + 28) as *const i32) as *mut _, len35, len35)).unwrap()}}
                    }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  8 => OptionValue::TypeU8(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((base + 25) as *const u8)) as u8),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  9 => OptionValue::TypeU16(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((base + 26) as *const u16)) as u16),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  10 => OptionValue::TypeU32(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 28) as *const i32) as u32),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  11 => OptionValue::TypeU64(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 32) as *const i64) as u64),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  12 => OptionValue::TypeI8(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((base + 25) as *const i8)) as i8),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  13 => OptionValue::TypeI16(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((base + 26) as *const i16)) as i16),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  14 => OptionValue::TypeI32(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 28) as *const i32)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  15 => OptionValue::TypeI64(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 32) as *const i64)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  16 => OptionValue::TypeVec2(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec2{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  17 => OptionValue::TypeVec3(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec3{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  18 => OptionValue::TypeVec4(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec4{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  19 => OptionValue::TypeUvec2(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec2{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  20 => OptionValue::TypeUvec3(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec3{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, z:*((base + 36) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  21 => OptionValue::TypeUvec4(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec4{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, z:*((base + 36) as *const i32) as u32, w:*((base + 40) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  22 => OptionValue::TypeIvec2(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec2{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  23 => OptionValue::TypeIvec3(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec3{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), z:*((base + 36) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  24 => OptionValue::TypeIvec4(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec4{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), z:*((base + 36) as *const i32), w:*((base + 40) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  25 => OptionValue::TypeDuration(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Duration{seconds:*((base + 32) as *const i64) as u64, nanoseconds:*((base + 40) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  26 => OptionValue::TypeProceduralMeshHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_mesh::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  27 => OptionValue::TypeProceduralTextureHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_texture::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  28 => OptionValue::TypeProceduralSamplerHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_sampler::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(debug_assertions)]29 => OptionValue::TypeProceduralMaterialHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(not(debug_assertions))]_ => OptionValue::TypeProceduralMaterialHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                }}}),
                #[cfg(not(debug_assertions))]_ => Value::TypeOption({{match i32::from(*((base + 16) as *const u8)) {
                  0 => OptionValue::TypeEmpty(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Empty{dummy:i32::from(*((base + 25) as *const u8)) as u8, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  1 => OptionValue::TypeBool(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some({
                      #[cfg(not(debug_assertions))]
                      { ::core::mem::transmute::<u8, bool>(i32::from(*((base + 25) as *const u8)) as u8) }
                      #[cfg(debug_assertions)]
                      {
                        match i32::from(*((base + 25) as *const u8)) {
                          0 => false,
                          1 => true,
                          _ => panic!("invalid bool discriminant"),
                        }
                      }
                    }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  2 => OptionValue::TypeEntityId(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::EntityId{id0:*((base + 32) as *const i64) as u64, id1:*((base + 40) as *const i64) as u64, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  3 => OptionValue::TypeF32(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 28) as *const f32)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  4 => OptionValue::TypeF64(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 32) as *const f64)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  5 => OptionValue::TypeMat4(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Mat4{x:super::super::super::ambient::bindings::types::Vec4{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }, y:super::super::super::ambient::bindings::types::Vec4{x:*((base + 44) as *const f32), y:*((base + 48) as *const f32), z:*((base + 52) as *const f32), w:*((base + 56) as *const f32), }, z:super::super::super::ambient::bindings::types::Vec4{x:*((base + 60) as *const f32), y:*((base + 64) as *const f32), z:*((base + 68) as *const f32), w:*((base + 72) as *const f32), }, w:super::super::super::ambient::bindings::types::Vec4{x:*((base + 76) as *const f32), y:*((base + 80) as *const f32), z:*((base + 84) as *const f32), w:*((base + 88) as *const f32), }, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  6 => OptionValue::TypeQuat(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Quat{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  7 => OptionValue::TypeString(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some({
                      let len35 = *((base + 32) as *const i32) as usize;
                      
                      {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((base + 28) as *const i32) as *mut _, len35, len35))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((base + 28) as *const i32) as *mut _, len35, len35)).unwrap()}}
                    }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  8 => OptionValue::TypeU8(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((base + 25) as *const u8)) as u8),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  9 => OptionValue::TypeU16(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((base + 26) as *const u16)) as u16),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  10 => OptionValue::TypeU32(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 28) as *const i32) as u32),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  11 => OptionValue::TypeU64(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 32) as *const i64) as u64),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  12 => OptionValue::TypeI8(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((base + 25) as *const i8)) as i8),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  13 => OptionValue::TypeI16(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((base + 26) as *const i16)) as i16),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  14 => OptionValue::TypeI32(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 28) as *const i32)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  15 => OptionValue::TypeI64(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 32) as *const i64)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  16 => OptionValue::TypeVec2(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec2{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  17 => OptionValue::TypeVec3(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec3{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  18 => OptionValue::TypeVec4(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec4{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  19 => OptionValue::TypeUvec2(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec2{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  20 => OptionValue::TypeUvec3(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec3{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, z:*((base + 36) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  21 => OptionValue::TypeUvec4(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec4{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, z:*((base + 36) as *const i32) as u32, w:*((base + 40) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  22 => OptionValue::TypeIvec2(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec2{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  23 => OptionValue::TypeIvec3(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec3{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), z:*((base + 36) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  24 => OptionValue::TypeIvec4(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec4{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), z:*((base + 36) as *const i32), w:*((base + 40) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  25 => OptionValue::TypeDuration(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Duration{seconds:*((base + 32) as *const i64) as u64, nanoseconds:*((base + 40) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  26 => OptionValue::TypeProceduralMeshHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_mesh::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  27 => OptionValue::TypeProceduralTextureHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_texture::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  28 => OptionValue::TypeProceduralSamplerHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_sampler::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(debug_assertions)]29 => OptionValue::TypeProceduralMaterialHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(not(debug_assertions))]_ => OptionValue::TypeProceduralMaterialHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                }}}),
                #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
              }}}));
            }
            wit_bindgen::rt::dealloc(base36, (len36 as usize) * 96, 8);
            result36
          }
        }
        #[allow(clippy::all)]
        pub fn get_all_components(entity: EntityId,) -> Entity{
          
          #[allow(unused_imports)]
          use wit_bindgen::rt::{alloc, vec::Vec, string::String};
          unsafe {
            
            #[repr(align(4))]
            struct RetArea([u8; 8]);
            let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
            let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
            let ptr1 = ret_area.as_mut_ptr() as i32;
            #[link(wasm_import_module = "ambient:bindings/component")]
            extern "C" {
              #[cfg_attr(target_arch = "wasm32", link_name = "get-all-components")]
              #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/component_get-all-components")]
              fn wit_import(
              _: i64, _: i64, _: i32, );
            }
            wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), ptr1);
            let base35 = *((ptr1 + 0) as *const i32);
            let len35 = *((ptr1 + 4) as *const i32);
            let mut result35 = Vec::with_capacity(len35 as usize);
            for i in 0..len35 {
              let base = base35 + i *96;
              result35.push((*((base + 0) as *const i32) as u32, {{match i32::from(*((base + 8) as *const u8)) {
                0 => Value::TypeEmpty(super::super::super::ambient::bindings::types::Empty{dummy:i32::from(*((base + 16) as *const u8)) as u8, }),
                1 => Value::TypeBool({
                  #[cfg(not(debug_assertions))]
                  { ::core::mem::transmute::<u8, bool>(i32::from(*((base + 16) as *const u8)) as u8) }
                  #[cfg(debug_assertions)]
                  {
                    match i32::from(*((base + 16) as *const u8)) {
                      0 => false,
                      1 => true,
                      _ => panic!("invalid bool discriminant"),
                    }
                  }
                }),
                2 => Value::TypeEntityId(super::super::super::ambient::bindings::types::EntityId{id0:*((base + 16) as *const i64) as u64, id1:*((base + 24) as *const i64) as u64, }),
                3 => Value::TypeF32(*((base + 16) as *const f32)),
                4 => Value::TypeF64(*((base + 16) as *const f64)),
                5 => Value::TypeMat4(super::super::super::ambient::bindings::types::Mat4{x:super::super::super::ambient::bindings::types::Vec4{x:*((base + 16) as *const f32), y:*((base + 20) as *const f32), z:*((base + 24) as *const f32), w:*((base + 28) as *const f32), }, y:super::super::super::ambient::bindings::types::Vec4{x:*((base + 32) as *const f32), y:*((base + 36) as *const f32), z:*((base + 40) as *const f32), w:*((base + 44) as *const f32), }, z:super::super::super::ambient::bindings::types::Vec4{x:*((base + 48) as *const f32), y:*((base + 52) as *const f32), z:*((base + 56) as *const f32), w:*((base + 60) as *const f32), }, w:super::super::super::ambient::bindings::types::Vec4{x:*((base + 64) as *const f32), y:*((base + 68) as *const f32), z:*((base + 72) as *const f32), w:*((base + 76) as *const f32), }, }),
                6 => Value::TypeQuat(super::super::super::ambient::bindings::types::Quat{x:*((base + 16) as *const f32), y:*((base + 20) as *const f32), z:*((base + 24) as *const f32), w:*((base + 28) as *const f32), }),
                7 => Value::TypeString({
                  let len2 = *((base + 20) as *const i32) as usize;
                  
                  {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((base + 16) as *const i32) as *mut _, len2, len2))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((base + 16) as *const i32) as *mut _, len2, len2)).unwrap()}}
                }),
                8 => Value::TypeU8(i32::from(*((base + 16) as *const u8)) as u8),
                9 => Value::TypeU16(i32::from(*((base + 16) as *const u16)) as u16),
                10 => Value::TypeU32(*((base + 16) as *const i32) as u32),
                11 => Value::TypeU64(*((base + 16) as *const i64) as u64),
                12 => Value::TypeI8(i32::from(*((base + 16) as *const i8)) as i8),
                13 => Value::TypeI16(i32::from(*((base + 16) as *const i16)) as i16),
                14 => Value::TypeI32(*((base + 16) as *const i32)),
                15 => Value::TypeI64(*((base + 16) as *const i64)),
                16 => Value::TypeVec2(super::super::super::ambient::bindings::types::Vec2{x:*((base + 16) as *const f32), y:*((base + 20) as *const f32), }),
                17 => Value::TypeVec3(super::super::super::ambient::bindings::types::Vec3{x:*((base + 16) as *const f32), y:*((base + 20) as *const f32), z:*((base + 24) as *const f32), }),
                18 => Value::TypeVec4(super::super::super::ambient::bindings::types::Vec4{x:*((base + 16) as *const f32), y:*((base + 20) as *const f32), z:*((base + 24) as *const f32), w:*((base + 28) as *const f32), }),
                19 => Value::TypeUvec2(super::super::super::ambient::bindings::types::Uvec2{x:*((base + 16) as *const i32) as u32, y:*((base + 20) as *const i32) as u32, }),
                20 => Value::TypeUvec3(super::super::super::ambient::bindings::types::Uvec3{x:*((base + 16) as *const i32) as u32, y:*((base + 20) as *const i32) as u32, z:*((base + 24) as *const i32) as u32, }),
                21 => Value::TypeUvec4(super::super::super::ambient::bindings::types::Uvec4{x:*((base + 16) as *const i32) as u32, y:*((base + 20) as *const i32) as u32, z:*((base + 24) as *const i32) as u32, w:*((base + 28) as *const i32) as u32, }),
                22 => Value::TypeIvec2(super::super::super::ambient::bindings::types::Ivec2{x:*((base + 16) as *const i32), y:*((base + 20) as *const i32), }),
                23 => Value::TypeIvec3(super::super::super::ambient::bindings::types::Ivec3{x:*((base + 16) as *const i32), y:*((base + 20) as *const i32), z:*((base + 24) as *const i32), }),
                24 => Value::TypeIvec4(super::super::super::ambient::bindings::types::Ivec4{x:*((base + 16) as *const i32), y:*((base + 20) as *const i32), z:*((base + 24) as *const i32), w:*((base + 28) as *const i32), }),
                25 => Value::TypeDuration(super::super::super::ambient::bindings::types::Duration{seconds:*((base + 16) as *const i64) as u64, nanoseconds:*((base + 24) as *const i32) as u32, }),
                26 => Value::TypeProceduralMeshHandle(super::super::super::ambient::bindings::client_mesh::Handle{ulid:(*((base + 16) as *const i64) as u64, *((base + 24) as *const i64) as u64), }),
                27 => Value::TypeProceduralTextureHandle(super::super::super::ambient::bindings::client_texture::Handle{ulid:(*((base + 16) as *const i64) as u64, *((base + 24) as *const i64) as u64), }),
                28 => Value::TypeProceduralSamplerHandle(super::super::super::ambient::bindings::client_sampler::Handle{ulid:(*((base + 16) as *const i64) as u64, *((base + 24) as *const i64) as u64), }),
                29 => Value::TypeProceduralMaterialHandle(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 16) as *const i64) as u64, *((base + 24) as *const i64) as u64), }),
                30 => Value::TypeVec({{match i32::from(*((base + 16) as *const u8)) {
                  0 => VecValue::TypeEmpty({
                    let len3 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len3, len3)
                  }),
                  1 => VecValue::TypeBool({
                    let base4 = *((base + 20) as *const i32);
                    let len4 = *((base + 24) as *const i32);
                    let mut result4 = Vec::with_capacity(len4 as usize);
                    for i in 0..len4 {
                      let base = base4 + i *1;
                      result4.push({
                        #[cfg(not(debug_assertions))]
                        { ::core::mem::transmute::<u8, bool>(i32::from(*((base + 0) as *const u8)) as u8) }
                        #[cfg(debug_assertions)]
                        {
                          match i32::from(*((base + 0) as *const u8)) {
                            0 => false,
                            1 => true,
                            _ => panic!("invalid bool discriminant"),
                          }
                        }
                      });
                    }
                    wit_bindgen::rt::dealloc(base4, (len4 as usize) * 1, 1);
                    
                    result4
                  }),
                  2 => VecValue::TypeEntityId({
                    let len5 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len5, len5)
                  }),
                  3 => VecValue::TypeF32({
                    let len6 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len6, len6)
                  }),
                  4 => VecValue::TypeF64({
                    let len7 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len7, len7)
                  }),
                  5 => VecValue::TypeMat4({
                    let len8 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len8, len8)
                  }),
                  6 => VecValue::TypeQuat({
                    let len9 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len9, len9)
                  }),
                  7 => VecValue::TypeString({
                    let base11 = *((base + 20) as *const i32);
                    let len11 = *((base + 24) as *const i32);
                    let mut result11 = Vec::with_capacity(len11 as usize);
                    for i in 0..len11 {
                      let base = base11 + i *8;
                      result11.push({
                        let len10 = *((base + 4) as *const i32) as usize;
                        
                        {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((base + 0) as *const i32) as *mut _, len10, len10))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((base + 0) as *const i32) as *mut _, len10, len10)).unwrap()}}
                      });
                    }
                    wit_bindgen::rt::dealloc(base11, (len11 as usize) * 8, 4);
                    
                    result11
                  }),
                  8 => VecValue::TypeU8({
                    let len12 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len12, len12)
                  }),
                  9 => VecValue::TypeU16({
                    let len13 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len13, len13)
                  }),
                  10 => VecValue::TypeU32({
                    let len14 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len14, len14)
                  }),
                  11 => VecValue::TypeU64({
                    let len15 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len15, len15)
                  }),
                  12 => VecValue::TypeI8({
                    let len16 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len16, len16)
                  }),
                  13 => VecValue::TypeI16({
                    let len17 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len17, len17)
                  }),
                  14 => VecValue::TypeI32({
                    let len18 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len18, len18)
                  }),
                  15 => VecValue::TypeI64({
                    let len19 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len19, len19)
                  }),
                  16 => VecValue::TypeVec2({
                    let len20 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len20, len20)
                  }),
                  17 => VecValue::TypeVec3({
                    let len21 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len21, len21)
                  }),
                  18 => VecValue::TypeVec4({
                    let len22 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len22, len22)
                  }),
                  19 => VecValue::TypeUvec2({
                    let len23 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len23, len23)
                  }),
                  20 => VecValue::TypeUvec3({
                    let len24 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len24, len24)
                  }),
                  21 => VecValue::TypeUvec4({
                    let len25 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len25, len25)
                  }),
                  22 => VecValue::TypeIvec2({
                    let len26 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len26, len26)
                  }),
                  23 => VecValue::TypeIvec3({
                    let len27 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len27, len27)
                  }),
                  24 => VecValue::TypeIvec4({
                    let len28 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len28, len28)
                  }),
                  25 => VecValue::TypeDuration({
                    let len29 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len29, len29)
                  }),
                  26 => VecValue::TypeProceduralMeshHandle({
                    let len30 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len30, len30)
                  }),
                  27 => VecValue::TypeProceduralTextureHandle({
                    let len31 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len31, len31)
                  }),
                  28 => VecValue::TypeProceduralSamplerHandle({
                    let len32 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len32, len32)
                  }),
                  #[cfg(debug_assertions)]29 => VecValue::TypeProceduralMaterialHandle({
                    let len33 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len33, len33)
                  }),
                  #[cfg(not(debug_assertions))]_ => VecValue::TypeProceduralMaterialHandle({
                    let len33 = *((base + 24) as *const i32) as usize;
                    
                    Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len33, len33)
                  }),
                  #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                }}}),
                #[cfg(debug_assertions)]31 => Value::TypeOption({{match i32::from(*((base + 16) as *const u8)) {
                  0 => OptionValue::TypeEmpty(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Empty{dummy:i32::from(*((base + 25) as *const u8)) as u8, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  1 => OptionValue::TypeBool(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some({
                      #[cfg(not(debug_assertions))]
                      { ::core::mem::transmute::<u8, bool>(i32::from(*((base + 25) as *const u8)) as u8) }
                      #[cfg(debug_assertions)]
                      {
                        match i32::from(*((base + 25) as *const u8)) {
                          0 => false,
                          1 => true,
                          _ => panic!("invalid bool discriminant"),
                        }
                      }
                    }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  2 => OptionValue::TypeEntityId(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::EntityId{id0:*((base + 32) as *const i64) as u64, id1:*((base + 40) as *const i64) as u64, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  3 => OptionValue::TypeF32(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 28) as *const f32)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  4 => OptionValue::TypeF64(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 32) as *const f64)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  5 => OptionValue::TypeMat4(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Mat4{x:super::super::super::ambient::bindings::types::Vec4{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }, y:super::super::super::ambient::bindings::types::Vec4{x:*((base + 44) as *const f32), y:*((base + 48) as *const f32), z:*((base + 52) as *const f32), w:*((base + 56) as *const f32), }, z:super::super::super::ambient::bindings::types::Vec4{x:*((base + 60) as *const f32), y:*((base + 64) as *const f32), z:*((base + 68) as *const f32), w:*((base + 72) as *const f32), }, w:super::super::super::ambient::bindings::types::Vec4{x:*((base + 76) as *const f32), y:*((base + 80) as *const f32), z:*((base + 84) as *const f32), w:*((base + 88) as *const f32), }, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  6 => OptionValue::TypeQuat(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Quat{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  7 => OptionValue::TypeString(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some({
                      let len34 = *((base + 32) as *const i32) as usize;
                      
                      {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((base + 28) as *const i32) as *mut _, len34, len34))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((base + 28) as *const i32) as *mut _, len34, len34)).unwrap()}}
                    }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  8 => OptionValue::TypeU8(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((base + 25) as *const u8)) as u8),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  9 => OptionValue::TypeU16(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((base + 26) as *const u16)) as u16),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  10 => OptionValue::TypeU32(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 28) as *const i32) as u32),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  11 => OptionValue::TypeU64(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 32) as *const i64) as u64),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  12 => OptionValue::TypeI8(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((base + 25) as *const i8)) as i8),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  13 => OptionValue::TypeI16(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((base + 26) as *const i16)) as i16),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  14 => OptionValue::TypeI32(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 28) as *const i32)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  15 => OptionValue::TypeI64(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 32) as *const i64)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  16 => OptionValue::TypeVec2(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec2{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  17 => OptionValue::TypeVec3(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec3{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  18 => OptionValue::TypeVec4(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec4{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  19 => OptionValue::TypeUvec2(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec2{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  20 => OptionValue::TypeUvec3(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec3{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, z:*((base + 36) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  21 => OptionValue::TypeUvec4(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec4{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, z:*((base + 36) as *const i32) as u32, w:*((base + 40) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  22 => OptionValue::TypeIvec2(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec2{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  23 => OptionValue::TypeIvec3(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec3{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), z:*((base + 36) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  24 => OptionValue::TypeIvec4(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec4{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), z:*((base + 36) as *const i32), w:*((base + 40) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  25 => OptionValue::TypeDuration(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Duration{seconds:*((base + 32) as *const i64) as u64, nanoseconds:*((base + 40) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  26 => OptionValue::TypeProceduralMeshHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_mesh::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  27 => OptionValue::TypeProceduralTextureHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_texture::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  28 => OptionValue::TypeProceduralSamplerHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_sampler::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(debug_assertions)]29 => OptionValue::TypeProceduralMaterialHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(not(debug_assertions))]_ => OptionValue::TypeProceduralMaterialHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                }}}),
                #[cfg(not(debug_assertions))]_ => Value::TypeOption({{match i32::from(*((base + 16) as *const u8)) {
                  0 => OptionValue::TypeEmpty(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Empty{dummy:i32::from(*((base + 25) as *const u8)) as u8, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  1 => OptionValue::TypeBool(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some({
                      #[cfg(not(debug_assertions))]
                      { ::core::mem::transmute::<u8, bool>(i32::from(*((base + 25) as *const u8)) as u8) }
                      #[cfg(debug_assertions)]
                      {
                        match i32::from(*((base + 25) as *const u8)) {
                          0 => false,
                          1 => true,
                          _ => panic!("invalid bool discriminant"),
                        }
                      }
                    }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  2 => OptionValue::TypeEntityId(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::EntityId{id0:*((base + 32) as *const i64) as u64, id1:*((base + 40) as *const i64) as u64, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  3 => OptionValue::TypeF32(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 28) as *const f32)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  4 => OptionValue::TypeF64(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 32) as *const f64)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  5 => OptionValue::TypeMat4(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Mat4{x:super::super::super::ambient::bindings::types::Vec4{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }, y:super::super::super::ambient::bindings::types::Vec4{x:*((base + 44) as *const f32), y:*((base + 48) as *const f32), z:*((base + 52) as *const f32), w:*((base + 56) as *const f32), }, z:super::super::super::ambient::bindings::types::Vec4{x:*((base + 60) as *const f32), y:*((base + 64) as *const f32), z:*((base + 68) as *const f32), w:*((base + 72) as *const f32), }, w:super::super::super::ambient::bindings::types::Vec4{x:*((base + 76) as *const f32), y:*((base + 80) as *const f32), z:*((base + 84) as *const f32), w:*((base + 88) as *const f32), }, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  6 => OptionValue::TypeQuat(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Quat{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  7 => OptionValue::TypeString(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some({
                      let len34 = *((base + 32) as *const i32) as usize;
                      
                      {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((base + 28) as *const i32) as *mut _, len34, len34))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((base + 28) as *const i32) as *mut _, len34, len34)).unwrap()}}
                    }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  8 => OptionValue::TypeU8(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((base + 25) as *const u8)) as u8),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  9 => OptionValue::TypeU16(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((base + 26) as *const u16)) as u16),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  10 => OptionValue::TypeU32(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 28) as *const i32) as u32),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  11 => OptionValue::TypeU64(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 32) as *const i64) as u64),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  12 => OptionValue::TypeI8(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((base + 25) as *const i8)) as i8),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  13 => OptionValue::TypeI16(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(i32::from(*((base + 26) as *const i16)) as i16),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  14 => OptionValue::TypeI32(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 28) as *const i32)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  15 => OptionValue::TypeI64(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(*((base + 32) as *const i64)),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  16 => OptionValue::TypeVec2(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec2{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  17 => OptionValue::TypeVec3(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec3{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  18 => OptionValue::TypeVec4(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Vec4{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  19 => OptionValue::TypeUvec2(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec2{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  20 => OptionValue::TypeUvec3(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec3{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, z:*((base + 36) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  21 => OptionValue::TypeUvec4(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Uvec4{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, z:*((base + 36) as *const i32) as u32, w:*((base + 40) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  22 => OptionValue::TypeIvec2(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec2{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  23 => OptionValue::TypeIvec3(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec3{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), z:*((base + 36) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  24 => OptionValue::TypeIvec4(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Ivec4{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), z:*((base + 36) as *const i32), w:*((base + 40) as *const i32), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  25 => OptionValue::TypeDuration(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::types::Duration{seconds:*((base + 32) as *const i64) as u64, nanoseconds:*((base + 40) as *const i32) as u32, }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  26 => OptionValue::TypeProceduralMeshHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_mesh::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  27 => OptionValue::TypeProceduralTextureHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_texture::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  28 => OptionValue::TypeProceduralSamplerHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_sampler::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(debug_assertions)]29 => OptionValue::TypeProceduralMaterialHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(not(debug_assertions))]_ => OptionValue::TypeProceduralMaterialHandle(match i32::from(*((base + 24) as *const u8)) {
                    0 => None,
                    1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                    #[cfg(not(debug_assertions))]
                    _ => ::core::hint::unreachable_unchecked(),
                    #[cfg(debug_assertions)]
                    _ => panic!("invalid enum discriminant"),
                  }),
                  #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                }}}),
                #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
              }}}));
            }
            wit_bindgen::rt::dealloc(base35, (len35 as usize) * 96, 8);
            result35
          }
        }
        #[allow(clippy::all)]
        pub fn add_component(entity: EntityId,index: u32,value: &Value,){
          
          #[allow(unused_imports)]
          use wit_bindgen::rt::{alloc, vec::Vec, string::String};
          unsafe {
            let mut cleanup_list = Vec::new();
            
            #[repr(align(8))]
            struct RetArea([u8; 112]);
            let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
            let ptr0 = ret_area.as_mut_ptr() as i32;let super::super::super::ambient::bindings::types::EntityId{ id0:id01, id1:id11, } = entity;
            *((ptr0 + 0) as *mut i64) = wit_bindgen::rt::as_i64(id01);
            *((ptr0 + 8) as *mut i64) = wit_bindgen::rt::as_i64(id11);
            *((ptr0 + 16) as *mut i32) = wit_bindgen::rt::as_i32(index);
            match value {
              Value::TypeEmpty(e) => {
                *((ptr0 + 24) as *mut u8) = (0i32) as u8;
                let super::super::super::ambient::bindings::types::Empty{ dummy:dummy2, } = e;
                *((ptr0 + 32) as *mut u8) = (wit_bindgen::rt::as_i32(dummy2)) as u8;
                
              },
              Value::TypeBool(e) => {
                *((ptr0 + 24) as *mut u8) = (1i32) as u8;
                *((ptr0 + 32) as *mut u8) = (match e { true => 1, false => 0 }) as u8;
                
              },
              Value::TypeEntityId(e) => {
                *((ptr0 + 24) as *mut u8) = (2i32) as u8;
                let super::super::super::ambient::bindings::types::EntityId{ id0:id03, id1:id13, } = e;
                *((ptr0 + 32) as *mut i64) = wit_bindgen::rt::as_i64(id03);
                *((ptr0 + 40) as *mut i64) = wit_bindgen::rt::as_i64(id13);
                
              },
              Value::TypeF32(e) => {
                *((ptr0 + 24) as *mut u8) = (3i32) as u8;
                *((ptr0 + 32) as *mut f32) = wit_bindgen::rt::as_f32(e);
                
              },
              Value::TypeF64(e) => {
                *((ptr0 + 24) as *mut u8) = (4i32) as u8;
                *((ptr0 + 32) as *mut f64) = wit_bindgen::rt::as_f64(e);
                
              },
              Value::TypeMat4(e) => {
                *((ptr0 + 24) as *mut u8) = (5i32) as u8;
                let super::super::super::ambient::bindings::types::Mat4{ x:x4, y:y4, z:z4, w:w4, } = e;
                let super::super::super::ambient::bindings::types::Vec4{ x:x5, y:y5, z:z5, w:w5, } = x4;
                *((ptr0 + 32) as *mut f32) = wit_bindgen::rt::as_f32(x5);
                *((ptr0 + 36) as *mut f32) = wit_bindgen::rt::as_f32(y5);
                *((ptr0 + 40) as *mut f32) = wit_bindgen::rt::as_f32(z5);
                *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(w5);
                let super::super::super::ambient::bindings::types::Vec4{ x:x6, y:y6, z:z6, w:w6, } = y4;
                *((ptr0 + 48) as *mut f32) = wit_bindgen::rt::as_f32(x6);
                *((ptr0 + 52) as *mut f32) = wit_bindgen::rt::as_f32(y6);
                *((ptr0 + 56) as *mut f32) = wit_bindgen::rt::as_f32(z6);
                *((ptr0 + 60) as *mut f32) = wit_bindgen::rt::as_f32(w6);
                let super::super::super::ambient::bindings::types::Vec4{ x:x7, y:y7, z:z7, w:w7, } = z4;
                *((ptr0 + 64) as *mut f32) = wit_bindgen::rt::as_f32(x7);
                *((ptr0 + 68) as *mut f32) = wit_bindgen::rt::as_f32(y7);
                *((ptr0 + 72) as *mut f32) = wit_bindgen::rt::as_f32(z7);
                *((ptr0 + 76) as *mut f32) = wit_bindgen::rt::as_f32(w7);
                let super::super::super::ambient::bindings::types::Vec4{ x:x8, y:y8, z:z8, w:w8, } = w4;
                *((ptr0 + 80) as *mut f32) = wit_bindgen::rt::as_f32(x8);
                *((ptr0 + 84) as *mut f32) = wit_bindgen::rt::as_f32(y8);
                *((ptr0 + 88) as *mut f32) = wit_bindgen::rt::as_f32(z8);
                *((ptr0 + 92) as *mut f32) = wit_bindgen::rt::as_f32(w8);
                
              },
              Value::TypeQuat(e) => {
                *((ptr0 + 24) as *mut u8) = (6i32) as u8;
                let super::super::super::ambient::bindings::types::Quat{ x:x9, y:y9, z:z9, w:w9, } = e;
                *((ptr0 + 32) as *mut f32) = wit_bindgen::rt::as_f32(x9);
                *((ptr0 + 36) as *mut f32) = wit_bindgen::rt::as_f32(y9);
                *((ptr0 + 40) as *mut f32) = wit_bindgen::rt::as_f32(z9);
                *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(w9);
                
              },
              Value::TypeString(e) => {
                *((ptr0 + 24) as *mut u8) = (7i32) as u8;
                let vec10 = e;
                let ptr10 = vec10.as_ptr() as i32;
                let len10 = vec10.len() as i32;
                *((ptr0 + 36) as *mut i32) = len10;
                *((ptr0 + 32) as *mut i32) = ptr10;
                
              },
              Value::TypeU8(e) => {
                *((ptr0 + 24) as *mut u8) = (8i32) as u8;
                *((ptr0 + 32) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                
              },
              Value::TypeU16(e) => {
                *((ptr0 + 24) as *mut u8) = (9i32) as u8;
                *((ptr0 + 32) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                
              },
              Value::TypeU32(e) => {
                *((ptr0 + 24) as *mut u8) = (10i32) as u8;
                *((ptr0 + 32) as *mut i32) = wit_bindgen::rt::as_i32(e);
                
              },
              Value::TypeU64(e) => {
                *((ptr0 + 24) as *mut u8) = (11i32) as u8;
                *((ptr0 + 32) as *mut i64) = wit_bindgen::rt::as_i64(e);
                
              },
              Value::TypeI8(e) => {
                *((ptr0 + 24) as *mut u8) = (12i32) as u8;
                *((ptr0 + 32) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                
              },
              Value::TypeI16(e) => {
                *((ptr0 + 24) as *mut u8) = (13i32) as u8;
                *((ptr0 + 32) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                
              },
              Value::TypeI32(e) => {
                *((ptr0 + 24) as *mut u8) = (14i32) as u8;
                *((ptr0 + 32) as *mut i32) = wit_bindgen::rt::as_i32(e);
                
              },
              Value::TypeI64(e) => {
                *((ptr0 + 24) as *mut u8) = (15i32) as u8;
                *((ptr0 + 32) as *mut i64) = wit_bindgen::rt::as_i64(e);
                
              },
              Value::TypeVec2(e) => {
                *((ptr0 + 24) as *mut u8) = (16i32) as u8;
                let super::super::super::ambient::bindings::types::Vec2{ x:x11, y:y11, } = e;
                *((ptr0 + 32) as *mut f32) = wit_bindgen::rt::as_f32(x11);
                *((ptr0 + 36) as *mut f32) = wit_bindgen::rt::as_f32(y11);
                
              },
              Value::TypeVec3(e) => {
                *((ptr0 + 24) as *mut u8) = (17i32) as u8;
                let super::super::super::ambient::bindings::types::Vec3{ x:x12, y:y12, z:z12, } = e;
                *((ptr0 + 32) as *mut f32) = wit_bindgen::rt::as_f32(x12);
                *((ptr0 + 36) as *mut f32) = wit_bindgen::rt::as_f32(y12);
                *((ptr0 + 40) as *mut f32) = wit_bindgen::rt::as_f32(z12);
                
              },
              Value::TypeVec4(e) => {
                *((ptr0 + 24) as *mut u8) = (18i32) as u8;
                let super::super::super::ambient::bindings::types::Vec4{ x:x13, y:y13, z:z13, w:w13, } = e;
                *((ptr0 + 32) as *mut f32) = wit_bindgen::rt::as_f32(x13);
                *((ptr0 + 36) as *mut f32) = wit_bindgen::rt::as_f32(y13);
                *((ptr0 + 40) as *mut f32) = wit_bindgen::rt::as_f32(z13);
                *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(w13);
                
              },
              Value::TypeUvec2(e) => {
                *((ptr0 + 24) as *mut u8) = (19i32) as u8;
                let super::super::super::ambient::bindings::types::Uvec2{ x:x14, y:y14, } = e;
                *((ptr0 + 32) as *mut i32) = wit_bindgen::rt::as_i32(x14);
                *((ptr0 + 36) as *mut i32) = wit_bindgen::rt::as_i32(y14);
                
              },
              Value::TypeUvec3(e) => {
                *((ptr0 + 24) as *mut u8) = (20i32) as u8;
                let super::super::super::ambient::bindings::types::Uvec3{ x:x15, y:y15, z:z15, } = e;
                *((ptr0 + 32) as *mut i32) = wit_bindgen::rt::as_i32(x15);
                *((ptr0 + 36) as *mut i32) = wit_bindgen::rt::as_i32(y15);
                *((ptr0 + 40) as *mut i32) = wit_bindgen::rt::as_i32(z15);
                
              },
              Value::TypeUvec4(e) => {
                *((ptr0 + 24) as *mut u8) = (21i32) as u8;
                let super::super::super::ambient::bindings::types::Uvec4{ x:x16, y:y16, z:z16, w:w16, } = e;
                *((ptr0 + 32) as *mut i32) = wit_bindgen::rt::as_i32(x16);
                *((ptr0 + 36) as *mut i32) = wit_bindgen::rt::as_i32(y16);
                *((ptr0 + 40) as *mut i32) = wit_bindgen::rt::as_i32(z16);
                *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(w16);
                
              },
              Value::TypeIvec2(e) => {
                *((ptr0 + 24) as *mut u8) = (22i32) as u8;
                let super::super::super::ambient::bindings::types::Ivec2{ x:x17, y:y17, } = e;
                *((ptr0 + 32) as *mut i32) = wit_bindgen::rt::as_i32(x17);
                *((ptr0 + 36) as *mut i32) = wit_bindgen::rt::as_i32(y17);
                
              },
              Value::TypeIvec3(e) => {
                *((ptr0 + 24) as *mut u8) = (23i32) as u8;
                let super::super::super::ambient::bindings::types::Ivec3{ x:x18, y:y18, z:z18, } = e;
                *((ptr0 + 32) as *mut i32) = wit_bindgen::rt::as_i32(x18);
                *((ptr0 + 36) as *mut i32) = wit_bindgen::rt::as_i32(y18);
                *((ptr0 + 40) as *mut i32) = wit_bindgen::rt::as_i32(z18);
                
              },
              Value::TypeIvec4(e) => {
                *((ptr0 + 24) as *mut u8) = (24i32) as u8;
                let super::super::super::ambient::bindings::types::Ivec4{ x:x19, y:y19, z:z19, w:w19, } = e;
                *((ptr0 + 32) as *mut i32) = wit_bindgen::rt::as_i32(x19);
                *((ptr0 + 36) as *mut i32) = wit_bindgen::rt::as_i32(y19);
                *((ptr0 + 40) as *mut i32) = wit_bindgen::rt::as_i32(z19);
                *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(w19);
                
              },
              Value::TypeDuration(e) => {
                *((ptr0 + 24) as *mut u8) = (25i32) as u8;
                let super::super::super::ambient::bindings::types::Duration{ seconds:seconds20, nanoseconds:nanoseconds20, } = e;
                *((ptr0 + 32) as *mut i64) = wit_bindgen::rt::as_i64(seconds20);
                *((ptr0 + 40) as *mut i32) = wit_bindgen::rt::as_i32(nanoseconds20);
                
              },
              Value::TypeProceduralMeshHandle(e) => {
                *((ptr0 + 24) as *mut u8) = (26i32) as u8;
                let super::super::super::ambient::bindings::client_mesh::Handle{ ulid:ulid21, } = e;
                let (t22_0, t22_1, ) = ulid21;
                *((ptr0 + 32) as *mut i64) = wit_bindgen::rt::as_i64(t22_0);
                *((ptr0 + 40) as *mut i64) = wit_bindgen::rt::as_i64(t22_1);
                
              },
              Value::TypeProceduralTextureHandle(e) => {
                *((ptr0 + 24) as *mut u8) = (27i32) as u8;
                let super::super::super::ambient::bindings::client_texture::Handle{ ulid:ulid23, } = e;
                let (t24_0, t24_1, ) = ulid23;
                *((ptr0 + 32) as *mut i64) = wit_bindgen::rt::as_i64(t24_0);
                *((ptr0 + 40) as *mut i64) = wit_bindgen::rt::as_i64(t24_1);
                
              },
              Value::TypeProceduralSamplerHandle(e) => {
                *((ptr0 + 24) as *mut u8) = (28i32) as u8;
                let super::super::super::ambient::bindings::client_sampler::Handle{ ulid:ulid25, } = e;
                let (t26_0, t26_1, ) = ulid25;
                *((ptr0 + 32) as *mut i64) = wit_bindgen::rt::as_i64(t26_0);
                *((ptr0 + 40) as *mut i64) = wit_bindgen::rt::as_i64(t26_1);
                
              },
              Value::TypeProceduralMaterialHandle(e) => {
                *((ptr0 + 24) as *mut u8) = (29i32) as u8;
                let super::super::super::ambient::bindings::client_material::Handle{ ulid:ulid27, } = e;
                let (t28_0, t28_1, ) = ulid27;
                *((ptr0 + 32) as *mut i64) = wit_bindgen::rt::as_i64(t28_0);
                *((ptr0 + 40) as *mut i64) = wit_bindgen::rt::as_i64(t28_1);
                
              },
              Value::TypeVec(e) => {
                *((ptr0 + 24) as *mut u8) = (30i32) as u8;
                match e {
                  VecValue::TypeEmpty(e) => {
                    *((ptr0 + 32) as *mut u8) = (0i32) as u8;
                    let vec29 = e;
                    let ptr29 = vec29.as_ptr() as i32;
                    let len29 = vec29.len() as i32;
                    *((ptr0 + 40) as *mut i32) = len29;
                    *((ptr0 + 36) as *mut i32) = ptr29;
                    
                  },
                  VecValue::TypeBool(e) => {
                    *((ptr0 + 32) as *mut u8) = (1i32) as u8;
                    let vec30 = e;
                    let len30 = vec30.len() as i32;
                    let layout30 = alloc::Layout::from_size_align_unchecked(vec30.len() * 1, 1);
                    let result30 = if layout30.size() != 0
                    {
                      let ptr = alloc::alloc(layout30);
                      if ptr.is_null()
                      {
                        alloc::handle_alloc_error(layout30);
                      }
                      ptr
                    }else {
                      ::core::ptr::null_mut()
                    };
                    for (i, e) in vec30.into_iter().enumerate() {
                      let base = result30 as i32 + (i as i32) * 1;
                      {
                        *((base + 0) as *mut u8) = (match e { true => 1, false => 0 }) as u8;
                        
                      }}
                      *((ptr0 + 40) as *mut i32) = len30;
                      *((ptr0 + 36) as *mut i32) = result30 as i32;
                      cleanup_list.extend_from_slice(&[(result30, layout30),]);
                      
                    },
                    VecValue::TypeEntityId(e) => {
                      *((ptr0 + 32) as *mut u8) = (2i32) as u8;
                      let vec31 = e;
                      let ptr31 = vec31.as_ptr() as i32;
                      let len31 = vec31.len() as i32;
                      *((ptr0 + 40) as *mut i32) = len31;
                      *((ptr0 + 36) as *mut i32) = ptr31;
                      
                    },
                    VecValue::TypeF32(e) => {
                      *((ptr0 + 32) as *mut u8) = (3i32) as u8;
                      let vec32 = e;
                      let ptr32 = vec32.as_ptr() as i32;
                      let len32 = vec32.len() as i32;
                      *((ptr0 + 40) as *mut i32) = len32;
                      *((ptr0 + 36) as *mut i32) = ptr32;
                      
                    },
                    VecValue::TypeF64(e) => {
                      *((ptr0 + 32) as *mut u8) = (4i32) as u8;
                      let vec33 = e;
                      let ptr33 = vec33.as_ptr() as i32;
                      let len33 = vec33.len() as i32;
                      *((ptr0 + 40) as *mut i32) = len33;
                      *((ptr0 + 36) as *mut i32) = ptr33;
                      
                    },
                    VecValue::TypeMat4(e) => {
                      *((ptr0 + 32) as *mut u8) = (5i32) as u8;
                      let vec34 = e;
                      let ptr34 = vec34.as_ptr() as i32;
                      let len34 = vec34.len() as i32;
                      *((ptr0 + 40) as *mut i32) = len34;
                      *((ptr0 + 36) as *mut i32) = ptr34;
                      
                    },
                    VecValue::TypeQuat(e) => {
                      *((ptr0 + 32) as *mut u8) = (6i32) as u8;
                      let vec35 = e;
                      let ptr35 = vec35.as_ptr() as i32;
                      let len35 = vec35.len() as i32;
                      *((ptr0 + 40) as *mut i32) = len35;
                      *((ptr0 + 36) as *mut i32) = ptr35;
                      
                    },
                    VecValue::TypeString(e) => {
                      *((ptr0 + 32) as *mut u8) = (7i32) as u8;
                      let vec37 = e;
                      let len37 = vec37.len() as i32;
                      let layout37 = alloc::Layout::from_size_align_unchecked(vec37.len() * 8, 4);
                      let result37 = if layout37.size() != 0
                      {
                        let ptr = alloc::alloc(layout37);
                        if ptr.is_null()
                        {
                          alloc::handle_alloc_error(layout37);
                        }
                        ptr
                      }else {
                        ::core::ptr::null_mut()
                      };
                      for (i, e) in vec37.into_iter().enumerate() {
                        let base = result37 as i32 + (i as i32) * 8;
                        {
                          let vec36 = e;
                          let ptr36 = vec36.as_ptr() as i32;
                          let len36 = vec36.len() as i32;
                          *((base + 4) as *mut i32) = len36;
                          *((base + 0) as *mut i32) = ptr36;
                          
                        }}
                        *((ptr0 + 40) as *mut i32) = len37;
                        *((ptr0 + 36) as *mut i32) = result37 as i32;
                        cleanup_list.extend_from_slice(&[(result37, layout37),]);
                        
                      },
                      VecValue::TypeU8(e) => {
                        *((ptr0 + 32) as *mut u8) = (8i32) as u8;
                        let vec38 = e;
                        let ptr38 = vec38.as_ptr() as i32;
                        let len38 = vec38.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len38;
                        *((ptr0 + 36) as *mut i32) = ptr38;
                        
                      },
                      VecValue::TypeU16(e) => {
                        *((ptr0 + 32) as *mut u8) = (9i32) as u8;
                        let vec39 = e;
                        let ptr39 = vec39.as_ptr() as i32;
                        let len39 = vec39.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len39;
                        *((ptr0 + 36) as *mut i32) = ptr39;
                        
                      },
                      VecValue::TypeU32(e) => {
                        *((ptr0 + 32) as *mut u8) = (10i32) as u8;
                        let vec40 = e;
                        let ptr40 = vec40.as_ptr() as i32;
                        let len40 = vec40.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len40;
                        *((ptr0 + 36) as *mut i32) = ptr40;
                        
                      },
                      VecValue::TypeU64(e) => {
                        *((ptr0 + 32) as *mut u8) = (11i32) as u8;
                        let vec41 = e;
                        let ptr41 = vec41.as_ptr() as i32;
                        let len41 = vec41.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len41;
                        *((ptr0 + 36) as *mut i32) = ptr41;
                        
                      },
                      VecValue::TypeI8(e) => {
                        *((ptr0 + 32) as *mut u8) = (12i32) as u8;
                        let vec42 = e;
                        let ptr42 = vec42.as_ptr() as i32;
                        let len42 = vec42.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len42;
                        *((ptr0 + 36) as *mut i32) = ptr42;
                        
                      },
                      VecValue::TypeI16(e) => {
                        *((ptr0 + 32) as *mut u8) = (13i32) as u8;
                        let vec43 = e;
                        let ptr43 = vec43.as_ptr() as i32;
                        let len43 = vec43.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len43;
                        *((ptr0 + 36) as *mut i32) = ptr43;
                        
                      },
                      VecValue::TypeI32(e) => {
                        *((ptr0 + 32) as *mut u8) = (14i32) as u8;
                        let vec44 = e;
                        let ptr44 = vec44.as_ptr() as i32;
                        let len44 = vec44.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len44;
                        *((ptr0 + 36) as *mut i32) = ptr44;
                        
                      },
                      VecValue::TypeI64(e) => {
                        *((ptr0 + 32) as *mut u8) = (15i32) as u8;
                        let vec45 = e;
                        let ptr45 = vec45.as_ptr() as i32;
                        let len45 = vec45.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len45;
                        *((ptr0 + 36) as *mut i32) = ptr45;
                        
                      },
                      VecValue::TypeVec2(e) => {
                        *((ptr0 + 32) as *mut u8) = (16i32) as u8;
                        let vec46 = e;
                        let ptr46 = vec46.as_ptr() as i32;
                        let len46 = vec46.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len46;
                        *((ptr0 + 36) as *mut i32) = ptr46;
                        
                      },
                      VecValue::TypeVec3(e) => {
                        *((ptr0 + 32) as *mut u8) = (17i32) as u8;
                        let vec47 = e;
                        let ptr47 = vec47.as_ptr() as i32;
                        let len47 = vec47.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len47;
                        *((ptr0 + 36) as *mut i32) = ptr47;
                        
                      },
                      VecValue::TypeVec4(e) => {
                        *((ptr0 + 32) as *mut u8) = (18i32) as u8;
                        let vec48 = e;
                        let ptr48 = vec48.as_ptr() as i32;
                        let len48 = vec48.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len48;
                        *((ptr0 + 36) as *mut i32) = ptr48;
                        
                      },
                      VecValue::TypeUvec2(e) => {
                        *((ptr0 + 32) as *mut u8) = (19i32) as u8;
                        let vec49 = e;
                        let ptr49 = vec49.as_ptr() as i32;
                        let len49 = vec49.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len49;
                        *((ptr0 + 36) as *mut i32) = ptr49;
                        
                      },
                      VecValue::TypeUvec3(e) => {
                        *((ptr0 + 32) as *mut u8) = (20i32) as u8;
                        let vec50 = e;
                        let ptr50 = vec50.as_ptr() as i32;
                        let len50 = vec50.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len50;
                        *((ptr0 + 36) as *mut i32) = ptr50;
                        
                      },
                      VecValue::TypeUvec4(e) => {
                        *((ptr0 + 32) as *mut u8) = (21i32) as u8;
                        let vec51 = e;
                        let ptr51 = vec51.as_ptr() as i32;
                        let len51 = vec51.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len51;
                        *((ptr0 + 36) as *mut i32) = ptr51;
                        
                      },
                      VecValue::TypeIvec2(e) => {
                        *((ptr0 + 32) as *mut u8) = (22i32) as u8;
                        let vec52 = e;
                        let ptr52 = vec52.as_ptr() as i32;
                        let len52 = vec52.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len52;
                        *((ptr0 + 36) as *mut i32) = ptr52;
                        
                      },
                      VecValue::TypeIvec3(e) => {
                        *((ptr0 + 32) as *mut u8) = (23i32) as u8;
                        let vec53 = e;
                        let ptr53 = vec53.as_ptr() as i32;
                        let len53 = vec53.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len53;
                        *((ptr0 + 36) as *mut i32) = ptr53;
                        
                      },
                      VecValue::TypeIvec4(e) => {
                        *((ptr0 + 32) as *mut u8) = (24i32) as u8;
                        let vec54 = e;
                        let ptr54 = vec54.as_ptr() as i32;
                        let len54 = vec54.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len54;
                        *((ptr0 + 36) as *mut i32) = ptr54;
                        
                      },
                      VecValue::TypeDuration(e) => {
                        *((ptr0 + 32) as *mut u8) = (25i32) as u8;
                        let vec55 = e;
                        let ptr55 = vec55.as_ptr() as i32;
                        let len55 = vec55.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len55;
                        *((ptr0 + 36) as *mut i32) = ptr55;
                        
                      },
                      VecValue::TypeProceduralMeshHandle(e) => {
                        *((ptr0 + 32) as *mut u8) = (26i32) as u8;
                        let vec56 = e;
                        let ptr56 = vec56.as_ptr() as i32;
                        let len56 = vec56.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len56;
                        *((ptr0 + 36) as *mut i32) = ptr56;
                        
                      },
                      VecValue::TypeProceduralTextureHandle(e) => {
                        *((ptr0 + 32) as *mut u8) = (27i32) as u8;
                        let vec57 = e;
                        let ptr57 = vec57.as_ptr() as i32;
                        let len57 = vec57.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len57;
                        *((ptr0 + 36) as *mut i32) = ptr57;
                        
                      },
                      VecValue::TypeProceduralSamplerHandle(e) => {
                        *((ptr0 + 32) as *mut u8) = (28i32) as u8;
                        let vec58 = e;
                        let ptr58 = vec58.as_ptr() as i32;
                        let len58 = vec58.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len58;
                        *((ptr0 + 36) as *mut i32) = ptr58;
                        
                      },
                      VecValue::TypeProceduralMaterialHandle(e) => {
                        *((ptr0 + 32) as *mut u8) = (29i32) as u8;
                        let vec59 = e;
                        let ptr59 = vec59.as_ptr() as i32;
                        let len59 = vec59.len() as i32;
                        *((ptr0 + 40) as *mut i32) = len59;
                        *((ptr0 + 36) as *mut i32) = ptr59;
                        
                      },
                    };
                    
                  },
                  Value::TypeOption(e) => {
                    *((ptr0 + 24) as *mut u8) = (31i32) as u8;
                    match e {
                      OptionValue::TypeEmpty(e) => {
                        *((ptr0 + 32) as *mut u8) = (0i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::types::Empty{ dummy:dummy60, } = e;
                            *((ptr0 + 41) as *mut u8) = (wit_bindgen::rt::as_i32(dummy60)) as u8;
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeBool(e) => {
                        *((ptr0 + 32) as *mut u8) = (1i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            *((ptr0 + 41) as *mut u8) = (match e { true => 1, false => 0 }) as u8;
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeEntityId(e) => {
                        *((ptr0 + 32) as *mut u8) = (2i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::types::EntityId{ id0:id061, id1:id161, } = e;
                            *((ptr0 + 48) as *mut i64) = wit_bindgen::rt::as_i64(id061);
                            *((ptr0 + 56) as *mut i64) = wit_bindgen::rt::as_i64(id161);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeF32(e) => {
                        *((ptr0 + 32) as *mut u8) = (3i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(e);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeF64(e) => {
                        *((ptr0 + 32) as *mut u8) = (4i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            *((ptr0 + 48) as *mut f64) = wit_bindgen::rt::as_f64(e);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeMat4(e) => {
                        *((ptr0 + 32) as *mut u8) = (5i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::types::Mat4{ x:x62, y:y62, z:z62, w:w62, } = e;
                            let super::super::super::ambient::bindings::types::Vec4{ x:x63, y:y63, z:z63, w:w63, } = x62;
                            *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(x63);
                            *((ptr0 + 48) as *mut f32) = wit_bindgen::rt::as_f32(y63);
                            *((ptr0 + 52) as *mut f32) = wit_bindgen::rt::as_f32(z63);
                            *((ptr0 + 56) as *mut f32) = wit_bindgen::rt::as_f32(w63);
                            let super::super::super::ambient::bindings::types::Vec4{ x:x64, y:y64, z:z64, w:w64, } = y62;
                            *((ptr0 + 60) as *mut f32) = wit_bindgen::rt::as_f32(x64);
                            *((ptr0 + 64) as *mut f32) = wit_bindgen::rt::as_f32(y64);
                            *((ptr0 + 68) as *mut f32) = wit_bindgen::rt::as_f32(z64);
                            *((ptr0 + 72) as *mut f32) = wit_bindgen::rt::as_f32(w64);
                            let super::super::super::ambient::bindings::types::Vec4{ x:x65, y:y65, z:z65, w:w65, } = z62;
                            *((ptr0 + 76) as *mut f32) = wit_bindgen::rt::as_f32(x65);
                            *((ptr0 + 80) as *mut f32) = wit_bindgen::rt::as_f32(y65);
                            *((ptr0 + 84) as *mut f32) = wit_bindgen::rt::as_f32(z65);
                            *((ptr0 + 88) as *mut f32) = wit_bindgen::rt::as_f32(w65);
                            let super::super::super::ambient::bindings::types::Vec4{ x:x66, y:y66, z:z66, w:w66, } = w62;
                            *((ptr0 + 92) as *mut f32) = wit_bindgen::rt::as_f32(x66);
                            *((ptr0 + 96) as *mut f32) = wit_bindgen::rt::as_f32(y66);
                            *((ptr0 + 100) as *mut f32) = wit_bindgen::rt::as_f32(z66);
                            *((ptr0 + 104) as *mut f32) = wit_bindgen::rt::as_f32(w66);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeQuat(e) => {
                        *((ptr0 + 32) as *mut u8) = (6i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::types::Quat{ x:x67, y:y67, z:z67, w:w67, } = e;
                            *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(x67);
                            *((ptr0 + 48) as *mut f32) = wit_bindgen::rt::as_f32(y67);
                            *((ptr0 + 52) as *mut f32) = wit_bindgen::rt::as_f32(z67);
                            *((ptr0 + 56) as *mut f32) = wit_bindgen::rt::as_f32(w67);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeString(e) => {
                        *((ptr0 + 32) as *mut u8) = (7i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let vec68 = e;
                            let ptr68 = vec68.as_ptr() as i32;
                            let len68 = vec68.len() as i32;
                            *((ptr0 + 48) as *mut i32) = len68;
                            *((ptr0 + 44) as *mut i32) = ptr68;
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeU8(e) => {
                        *((ptr0 + 32) as *mut u8) = (8i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            *((ptr0 + 41) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeU16(e) => {
                        *((ptr0 + 32) as *mut u8) = (9i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            *((ptr0 + 42) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeU32(e) => {
                        *((ptr0 + 32) as *mut u8) = (10i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(e);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeU64(e) => {
                        *((ptr0 + 32) as *mut u8) = (11i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            *((ptr0 + 48) as *mut i64) = wit_bindgen::rt::as_i64(e);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeI8(e) => {
                        *((ptr0 + 32) as *mut u8) = (12i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            *((ptr0 + 41) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeI16(e) => {
                        *((ptr0 + 32) as *mut u8) = (13i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            *((ptr0 + 42) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeI32(e) => {
                        *((ptr0 + 32) as *mut u8) = (14i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(e);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeI64(e) => {
                        *((ptr0 + 32) as *mut u8) = (15i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            *((ptr0 + 48) as *mut i64) = wit_bindgen::rt::as_i64(e);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeVec2(e) => {
                        *((ptr0 + 32) as *mut u8) = (16i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::types::Vec2{ x:x69, y:y69, } = e;
                            *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(x69);
                            *((ptr0 + 48) as *mut f32) = wit_bindgen::rt::as_f32(y69);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeVec3(e) => {
                        *((ptr0 + 32) as *mut u8) = (17i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::types::Vec3{ x:x70, y:y70, z:z70, } = e;
                            *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(x70);
                            *((ptr0 + 48) as *mut f32) = wit_bindgen::rt::as_f32(y70);
                            *((ptr0 + 52) as *mut f32) = wit_bindgen::rt::as_f32(z70);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeVec4(e) => {
                        *((ptr0 + 32) as *mut u8) = (18i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::types::Vec4{ x:x71, y:y71, z:z71, w:w71, } = e;
                            *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(x71);
                            *((ptr0 + 48) as *mut f32) = wit_bindgen::rt::as_f32(y71);
                            *((ptr0 + 52) as *mut f32) = wit_bindgen::rt::as_f32(z71);
                            *((ptr0 + 56) as *mut f32) = wit_bindgen::rt::as_f32(w71);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeUvec2(e) => {
                        *((ptr0 + 32) as *mut u8) = (19i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::types::Uvec2{ x:x72, y:y72, } = e;
                            *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(x72);
                            *((ptr0 + 48) as *mut i32) = wit_bindgen::rt::as_i32(y72);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeUvec3(e) => {
                        *((ptr0 + 32) as *mut u8) = (20i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::types::Uvec3{ x:x73, y:y73, z:z73, } = e;
                            *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(x73);
                            *((ptr0 + 48) as *mut i32) = wit_bindgen::rt::as_i32(y73);
                            *((ptr0 + 52) as *mut i32) = wit_bindgen::rt::as_i32(z73);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeUvec4(e) => {
                        *((ptr0 + 32) as *mut u8) = (21i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::types::Uvec4{ x:x74, y:y74, z:z74, w:w74, } = e;
                            *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(x74);
                            *((ptr0 + 48) as *mut i32) = wit_bindgen::rt::as_i32(y74);
                            *((ptr0 + 52) as *mut i32) = wit_bindgen::rt::as_i32(z74);
                            *((ptr0 + 56) as *mut i32) = wit_bindgen::rt::as_i32(w74);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeIvec2(e) => {
                        *((ptr0 + 32) as *mut u8) = (22i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::types::Ivec2{ x:x75, y:y75, } = e;
                            *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(x75);
                            *((ptr0 + 48) as *mut i32) = wit_bindgen::rt::as_i32(y75);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeIvec3(e) => {
                        *((ptr0 + 32) as *mut u8) = (23i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::types::Ivec3{ x:x76, y:y76, z:z76, } = e;
                            *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(x76);
                            *((ptr0 + 48) as *mut i32) = wit_bindgen::rt::as_i32(y76);
                            *((ptr0 + 52) as *mut i32) = wit_bindgen::rt::as_i32(z76);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeIvec4(e) => {
                        *((ptr0 + 32) as *mut u8) = (24i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::types::Ivec4{ x:x77, y:y77, z:z77, w:w77, } = e;
                            *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(x77);
                            *((ptr0 + 48) as *mut i32) = wit_bindgen::rt::as_i32(y77);
                            *((ptr0 + 52) as *mut i32) = wit_bindgen::rt::as_i32(z77);
                            *((ptr0 + 56) as *mut i32) = wit_bindgen::rt::as_i32(w77);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeDuration(e) => {
                        *((ptr0 + 32) as *mut u8) = (25i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::types::Duration{ seconds:seconds78, nanoseconds:nanoseconds78, } = e;
                            *((ptr0 + 48) as *mut i64) = wit_bindgen::rt::as_i64(seconds78);
                            *((ptr0 + 56) as *mut i32) = wit_bindgen::rt::as_i32(nanoseconds78);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeProceduralMeshHandle(e) => {
                        *((ptr0 + 32) as *mut u8) = (26i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::client_mesh::Handle{ ulid:ulid79, } = e;
                            let (t80_0, t80_1, ) = ulid79;
                            *((ptr0 + 48) as *mut i64) = wit_bindgen::rt::as_i64(t80_0);
                            *((ptr0 + 56) as *mut i64) = wit_bindgen::rt::as_i64(t80_1);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeProceduralTextureHandle(e) => {
                        *((ptr0 + 32) as *mut u8) = (27i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::client_texture::Handle{ ulid:ulid81, } = e;
                            let (t82_0, t82_1, ) = ulid81;
                            *((ptr0 + 48) as *mut i64) = wit_bindgen::rt::as_i64(t82_0);
                            *((ptr0 + 56) as *mut i64) = wit_bindgen::rt::as_i64(t82_1);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeProceduralSamplerHandle(e) => {
                        *((ptr0 + 32) as *mut u8) = (28i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::client_sampler::Handle{ ulid:ulid83, } = e;
                            let (t84_0, t84_1, ) = ulid83;
                            *((ptr0 + 48) as *mut i64) = wit_bindgen::rt::as_i64(t84_0);
                            *((ptr0 + 56) as *mut i64) = wit_bindgen::rt::as_i64(t84_1);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                      OptionValue::TypeProceduralMaterialHandle(e) => {
                        *((ptr0 + 32) as *mut u8) = (29i32) as u8;
                        match e {
                          Some(e) => {
                            *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                            let super::super::super::ambient::bindings::client_material::Handle{ ulid:ulid85, } = e;
                            let (t86_0, t86_1, ) = ulid85;
                            *((ptr0 + 48) as *mut i64) = wit_bindgen::rt::as_i64(t86_0);
                            *((ptr0 + 56) as *mut i64) = wit_bindgen::rt::as_i64(t86_1);
                            
                          },
                          None => {
                            {
                              *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                              
                            }
                          },
                        };
                      },
                    };
                    
                  },
                };
                
                #[link(wasm_import_module = "ambient:bindings/component")]
                extern "C" {
                  #[cfg_attr(target_arch = "wasm32", link_name = "add-component")]
                  #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/component_add-component")]
                  fn wit_import(
                  _: i32, );
                }
                wit_import(ptr0);
                for (ptr, layout) in cleanup_list {
                  
                  if layout.size() != 0 {
                    
                    alloc::dealloc(ptr, layout);
                    
                  }
                  
                }
              }
            }
            #[allow(clippy::all)]
            pub fn add_components(entity: EntityId,data: &Entity,){
              
              #[allow(unused_imports)]
              use wit_bindgen::rt::{alloc, vec::Vec, string::String};
              unsafe {
                let mut cleanup_list = Vec::new();
                let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                let vec87 = data;
                let len87 = vec87.len() as i32;
                let layout87 = alloc::Layout::from_size_align_unchecked(vec87.len() * 96, 8);
                let result87 = if layout87.size() != 0
                {
                  let ptr = alloc::alloc(layout87);
                  if ptr.is_null()
                  {
                    alloc::handle_alloc_error(layout87);
                  }
                  ptr
                }else {
                  ::core::ptr::null_mut()
                };
                for (i, e) in vec87.into_iter().enumerate() {
                  let base = result87 as i32 + (i as i32) * 96;
                  {
                    let (t1_0, t1_1, ) = e;
                    *((base + 0) as *mut i32) = wit_bindgen::rt::as_i32(t1_0);
                    match t1_1 {
                      Value::TypeEmpty(e) => {
                        *((base + 8) as *mut u8) = (0i32) as u8;
                        let super::super::super::ambient::bindings::types::Empty{ dummy:dummy2, } = e;
                        *((base + 16) as *mut u8) = (wit_bindgen::rt::as_i32(dummy2)) as u8;
                        
                      },
                      Value::TypeBool(e) => {
                        *((base + 8) as *mut u8) = (1i32) as u8;
                        *((base + 16) as *mut u8) = (match e { true => 1, false => 0 }) as u8;
                        
                      },
                      Value::TypeEntityId(e) => {
                        *((base + 8) as *mut u8) = (2i32) as u8;
                        let super::super::super::ambient::bindings::types::EntityId{ id0:id03, id1:id13, } = e;
                        *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(id03);
                        *((base + 24) as *mut i64) = wit_bindgen::rt::as_i64(id13);
                        
                      },
                      Value::TypeF32(e) => {
                        *((base + 8) as *mut u8) = (3i32) as u8;
                        *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(e);
                        
                      },
                      Value::TypeF64(e) => {
                        *((base + 8) as *mut u8) = (4i32) as u8;
                        *((base + 16) as *mut f64) = wit_bindgen::rt::as_f64(e);
                        
                      },
                      Value::TypeMat4(e) => {
                        *((base + 8) as *mut u8) = (5i32) as u8;
                        let super::super::super::ambient::bindings::types::Mat4{ x:x4, y:y4, z:z4, w:w4, } = e;
                        let super::super::super::ambient::bindings::types::Vec4{ x:x5, y:y5, z:z5, w:w5, } = x4;
                        *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(x5);
                        *((base + 20) as *mut f32) = wit_bindgen::rt::as_f32(y5);
                        *((base + 24) as *mut f32) = wit_bindgen::rt::as_f32(z5);
                        *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(w5);
                        let super::super::super::ambient::bindings::types::Vec4{ x:x6, y:y6, z:z6, w:w6, } = y4;
                        *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(x6);
                        *((base + 36) as *mut f32) = wit_bindgen::rt::as_f32(y6);
                        *((base + 40) as *mut f32) = wit_bindgen::rt::as_f32(z6);
                        *((base + 44) as *mut f32) = wit_bindgen::rt::as_f32(w6);
                        let super::super::super::ambient::bindings::types::Vec4{ x:x7, y:y7, z:z7, w:w7, } = z4;
                        *((base + 48) as *mut f32) = wit_bindgen::rt::as_f32(x7);
                        *((base + 52) as *mut f32) = wit_bindgen::rt::as_f32(y7);
                        *((base + 56) as *mut f32) = wit_bindgen::rt::as_f32(z7);
                        *((base + 60) as *mut f32) = wit_bindgen::rt::as_f32(w7);
                        let super::super::super::ambient::bindings::types::Vec4{ x:x8, y:y8, z:z8, w:w8, } = w4;
                        *((base + 64) as *mut f32) = wit_bindgen::rt::as_f32(x8);
                        *((base + 68) as *mut f32) = wit_bindgen::rt::as_f32(y8);
                        *((base + 72) as *mut f32) = wit_bindgen::rt::as_f32(z8);
                        *((base + 76) as *mut f32) = wit_bindgen::rt::as_f32(w8);
                        
                      },
                      Value::TypeQuat(e) => {
                        *((base + 8) as *mut u8) = (6i32) as u8;
                        let super::super::super::ambient::bindings::types::Quat{ x:x9, y:y9, z:z9, w:w9, } = e;
                        *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(x9);
                        *((base + 20) as *mut f32) = wit_bindgen::rt::as_f32(y9);
                        *((base + 24) as *mut f32) = wit_bindgen::rt::as_f32(z9);
                        *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(w9);
                        
                      },
                      Value::TypeString(e) => {
                        *((base + 8) as *mut u8) = (7i32) as u8;
                        let vec10 = e;
                        let ptr10 = vec10.as_ptr() as i32;
                        let len10 = vec10.len() as i32;
                        *((base + 20) as *mut i32) = len10;
                        *((base + 16) as *mut i32) = ptr10;
                        
                      },
                      Value::TypeU8(e) => {
                        *((base + 8) as *mut u8) = (8i32) as u8;
                        *((base + 16) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                        
                      },
                      Value::TypeU16(e) => {
                        *((base + 8) as *mut u8) = (9i32) as u8;
                        *((base + 16) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                        
                      },
                      Value::TypeU32(e) => {
                        *((base + 8) as *mut u8) = (10i32) as u8;
                        *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(e);
                        
                      },
                      Value::TypeU64(e) => {
                        *((base + 8) as *mut u8) = (11i32) as u8;
                        *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(e);
                        
                      },
                      Value::TypeI8(e) => {
                        *((base + 8) as *mut u8) = (12i32) as u8;
                        *((base + 16) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                        
                      },
                      Value::TypeI16(e) => {
                        *((base + 8) as *mut u8) = (13i32) as u8;
                        *((base + 16) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                        
                      },
                      Value::TypeI32(e) => {
                        *((base + 8) as *mut u8) = (14i32) as u8;
                        *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(e);
                        
                      },
                      Value::TypeI64(e) => {
                        *((base + 8) as *mut u8) = (15i32) as u8;
                        *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(e);
                        
                      },
                      Value::TypeVec2(e) => {
                        *((base + 8) as *mut u8) = (16i32) as u8;
                        let super::super::super::ambient::bindings::types::Vec2{ x:x11, y:y11, } = e;
                        *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(x11);
                        *((base + 20) as *mut f32) = wit_bindgen::rt::as_f32(y11);
                        
                      },
                      Value::TypeVec3(e) => {
                        *((base + 8) as *mut u8) = (17i32) as u8;
                        let super::super::super::ambient::bindings::types::Vec3{ x:x12, y:y12, z:z12, } = e;
                        *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(x12);
                        *((base + 20) as *mut f32) = wit_bindgen::rt::as_f32(y12);
                        *((base + 24) as *mut f32) = wit_bindgen::rt::as_f32(z12);
                        
                      },
                      Value::TypeVec4(e) => {
                        *((base + 8) as *mut u8) = (18i32) as u8;
                        let super::super::super::ambient::bindings::types::Vec4{ x:x13, y:y13, z:z13, w:w13, } = e;
                        *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(x13);
                        *((base + 20) as *mut f32) = wit_bindgen::rt::as_f32(y13);
                        *((base + 24) as *mut f32) = wit_bindgen::rt::as_f32(z13);
                        *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(w13);
                        
                      },
                      Value::TypeUvec2(e) => {
                        *((base + 8) as *mut u8) = (19i32) as u8;
                        let super::super::super::ambient::bindings::types::Uvec2{ x:x14, y:y14, } = e;
                        *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x14);
                        *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y14);
                        
                      },
                      Value::TypeUvec3(e) => {
                        *((base + 8) as *mut u8) = (20i32) as u8;
                        let super::super::super::ambient::bindings::types::Uvec3{ x:x15, y:y15, z:z15, } = e;
                        *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x15);
                        *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y15);
                        *((base + 24) as *mut i32) = wit_bindgen::rt::as_i32(z15);
                        
                      },
                      Value::TypeUvec4(e) => {
                        *((base + 8) as *mut u8) = (21i32) as u8;
                        let super::super::super::ambient::bindings::types::Uvec4{ x:x16, y:y16, z:z16, w:w16, } = e;
                        *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x16);
                        *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y16);
                        *((base + 24) as *mut i32) = wit_bindgen::rt::as_i32(z16);
                        *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(w16);
                        
                      },
                      Value::TypeIvec2(e) => {
                        *((base + 8) as *mut u8) = (22i32) as u8;
                        let super::super::super::ambient::bindings::types::Ivec2{ x:x17, y:y17, } = e;
                        *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x17);
                        *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y17);
                        
                      },
                      Value::TypeIvec3(e) => {
                        *((base + 8) as *mut u8) = (23i32) as u8;
                        let super::super::super::ambient::bindings::types::Ivec3{ x:x18, y:y18, z:z18, } = e;
                        *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x18);
                        *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y18);
                        *((base + 24) as *mut i32) = wit_bindgen::rt::as_i32(z18);
                        
                      },
                      Value::TypeIvec4(e) => {
                        *((base + 8) as *mut u8) = (24i32) as u8;
                        let super::super::super::ambient::bindings::types::Ivec4{ x:x19, y:y19, z:z19, w:w19, } = e;
                        *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x19);
                        *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y19);
                        *((base + 24) as *mut i32) = wit_bindgen::rt::as_i32(z19);
                        *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(w19);
                        
                      },
                      Value::TypeDuration(e) => {
                        *((base + 8) as *mut u8) = (25i32) as u8;
                        let super::super::super::ambient::bindings::types::Duration{ seconds:seconds20, nanoseconds:nanoseconds20, } = e;
                        *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(seconds20);
                        *((base + 24) as *mut i32) = wit_bindgen::rt::as_i32(nanoseconds20);
                        
                      },
                      Value::TypeProceduralMeshHandle(e) => {
                        *((base + 8) as *mut u8) = (26i32) as u8;
                        let super::super::super::ambient::bindings::client_mesh::Handle{ ulid:ulid21, } = e;
                        let (t22_0, t22_1, ) = ulid21;
                        *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(t22_0);
                        *((base + 24) as *mut i64) = wit_bindgen::rt::as_i64(t22_1);
                        
                      },
                      Value::TypeProceduralTextureHandle(e) => {
                        *((base + 8) as *mut u8) = (27i32) as u8;
                        let super::super::super::ambient::bindings::client_texture::Handle{ ulid:ulid23, } = e;
                        let (t24_0, t24_1, ) = ulid23;
                        *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(t24_0);
                        *((base + 24) as *mut i64) = wit_bindgen::rt::as_i64(t24_1);
                        
                      },
                      Value::TypeProceduralSamplerHandle(e) => {
                        *((base + 8) as *mut u8) = (28i32) as u8;
                        let super::super::super::ambient::bindings::client_sampler::Handle{ ulid:ulid25, } = e;
                        let (t26_0, t26_1, ) = ulid25;
                        *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(t26_0);
                        *((base + 24) as *mut i64) = wit_bindgen::rt::as_i64(t26_1);
                        
                      },
                      Value::TypeProceduralMaterialHandle(e) => {
                        *((base + 8) as *mut u8) = (29i32) as u8;
                        let super::super::super::ambient::bindings::client_material::Handle{ ulid:ulid27, } = e;
                        let (t28_0, t28_1, ) = ulid27;
                        *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(t28_0);
                        *((base + 24) as *mut i64) = wit_bindgen::rt::as_i64(t28_1);
                        
                      },
                      Value::TypeVec(e) => {
                        *((base + 8) as *mut u8) = (30i32) as u8;
                        match e {
                          VecValue::TypeEmpty(e) => {
                            *((base + 16) as *mut u8) = (0i32) as u8;
                            let vec29 = e;
                            let ptr29 = vec29.as_ptr() as i32;
                            let len29 = vec29.len() as i32;
                            *((base + 24) as *mut i32) = len29;
                            *((base + 20) as *mut i32) = ptr29;
                            
                          },
                          VecValue::TypeBool(e) => {
                            *((base + 16) as *mut u8) = (1i32) as u8;
                            let vec30 = e;
                            let len30 = vec30.len() as i32;
                            let layout30 = alloc::Layout::from_size_align_unchecked(vec30.len() * 1, 1);
                            let result30 = if layout30.size() != 0
                            {
                              let ptr = alloc::alloc(layout30);
                              if ptr.is_null()
                              {
                                alloc::handle_alloc_error(layout30);
                              }
                              ptr
                            }else {
                              ::core::ptr::null_mut()
                            };
                            for (i, e) in vec30.into_iter().enumerate() {
                              let base = result30 as i32 + (i as i32) * 1;
                              {
                                *((base + 0) as *mut u8) = (match e { true => 1, false => 0 }) as u8;
                                
                              }}
                              *((base + 24) as *mut i32) = len30;
                              *((base + 20) as *mut i32) = result30 as i32;
                              cleanup_list.extend_from_slice(&[(result30, layout30),]);
                              
                            },
                            VecValue::TypeEntityId(e) => {
                              *((base + 16) as *mut u8) = (2i32) as u8;
                              let vec31 = e;
                              let ptr31 = vec31.as_ptr() as i32;
                              let len31 = vec31.len() as i32;
                              *((base + 24) as *mut i32) = len31;
                              *((base + 20) as *mut i32) = ptr31;
                              
                            },
                            VecValue::TypeF32(e) => {
                              *((base + 16) as *mut u8) = (3i32) as u8;
                              let vec32 = e;
                              let ptr32 = vec32.as_ptr() as i32;
                              let len32 = vec32.len() as i32;
                              *((base + 24) as *mut i32) = len32;
                              *((base + 20) as *mut i32) = ptr32;
                              
                            },
                            VecValue::TypeF64(e) => {
                              *((base + 16) as *mut u8) = (4i32) as u8;
                              let vec33 = e;
                              let ptr33 = vec33.as_ptr() as i32;
                              let len33 = vec33.len() as i32;
                              *((base + 24) as *mut i32) = len33;
                              *((base + 20) as *mut i32) = ptr33;
                              
                            },
                            VecValue::TypeMat4(e) => {
                              *((base + 16) as *mut u8) = (5i32) as u8;
                              let vec34 = e;
                              let ptr34 = vec34.as_ptr() as i32;
                              let len34 = vec34.len() as i32;
                              *((base + 24) as *mut i32) = len34;
                              *((base + 20) as *mut i32) = ptr34;
                              
                            },
                            VecValue::TypeQuat(e) => {
                              *((base + 16) as *mut u8) = (6i32) as u8;
                              let vec35 = e;
                              let ptr35 = vec35.as_ptr() as i32;
                              let len35 = vec35.len() as i32;
                              *((base + 24) as *mut i32) = len35;
                              *((base + 20) as *mut i32) = ptr35;
                              
                            },
                            VecValue::TypeString(e) => {
                              *((base + 16) as *mut u8) = (7i32) as u8;
                              let vec37 = e;
                              let len37 = vec37.len() as i32;
                              let layout37 = alloc::Layout::from_size_align_unchecked(vec37.len() * 8, 4);
                              let result37 = if layout37.size() != 0
                              {
                                let ptr = alloc::alloc(layout37);
                                if ptr.is_null()
                                {
                                  alloc::handle_alloc_error(layout37);
                                }
                                ptr
                              }else {
                                ::core::ptr::null_mut()
                              };
                              for (i, e) in vec37.into_iter().enumerate() {
                                let base = result37 as i32 + (i as i32) * 8;
                                {
                                  let vec36 = e;
                                  let ptr36 = vec36.as_ptr() as i32;
                                  let len36 = vec36.len() as i32;
                                  *((base + 4) as *mut i32) = len36;
                                  *((base + 0) as *mut i32) = ptr36;
                                  
                                }}
                                *((base + 24) as *mut i32) = len37;
                                *((base + 20) as *mut i32) = result37 as i32;
                                cleanup_list.extend_from_slice(&[(result37, layout37),]);
                                
                              },
                              VecValue::TypeU8(e) => {
                                *((base + 16) as *mut u8) = (8i32) as u8;
                                let vec38 = e;
                                let ptr38 = vec38.as_ptr() as i32;
                                let len38 = vec38.len() as i32;
                                *((base + 24) as *mut i32) = len38;
                                *((base + 20) as *mut i32) = ptr38;
                                
                              },
                              VecValue::TypeU16(e) => {
                                *((base + 16) as *mut u8) = (9i32) as u8;
                                let vec39 = e;
                                let ptr39 = vec39.as_ptr() as i32;
                                let len39 = vec39.len() as i32;
                                *((base + 24) as *mut i32) = len39;
                                *((base + 20) as *mut i32) = ptr39;
                                
                              },
                              VecValue::TypeU32(e) => {
                                *((base + 16) as *mut u8) = (10i32) as u8;
                                let vec40 = e;
                                let ptr40 = vec40.as_ptr() as i32;
                                let len40 = vec40.len() as i32;
                                *((base + 24) as *mut i32) = len40;
                                *((base + 20) as *mut i32) = ptr40;
                                
                              },
                              VecValue::TypeU64(e) => {
                                *((base + 16) as *mut u8) = (11i32) as u8;
                                let vec41 = e;
                                let ptr41 = vec41.as_ptr() as i32;
                                let len41 = vec41.len() as i32;
                                *((base + 24) as *mut i32) = len41;
                                *((base + 20) as *mut i32) = ptr41;
                                
                              },
                              VecValue::TypeI8(e) => {
                                *((base + 16) as *mut u8) = (12i32) as u8;
                                let vec42 = e;
                                let ptr42 = vec42.as_ptr() as i32;
                                let len42 = vec42.len() as i32;
                                *((base + 24) as *mut i32) = len42;
                                *((base + 20) as *mut i32) = ptr42;
                                
                              },
                              VecValue::TypeI16(e) => {
                                *((base + 16) as *mut u8) = (13i32) as u8;
                                let vec43 = e;
                                let ptr43 = vec43.as_ptr() as i32;
                                let len43 = vec43.len() as i32;
                                *((base + 24) as *mut i32) = len43;
                                *((base + 20) as *mut i32) = ptr43;
                                
                              },
                              VecValue::TypeI32(e) => {
                                *((base + 16) as *mut u8) = (14i32) as u8;
                                let vec44 = e;
                                let ptr44 = vec44.as_ptr() as i32;
                                let len44 = vec44.len() as i32;
                                *((base + 24) as *mut i32) = len44;
                                *((base + 20) as *mut i32) = ptr44;
                                
                              },
                              VecValue::TypeI64(e) => {
                                *((base + 16) as *mut u8) = (15i32) as u8;
                                let vec45 = e;
                                let ptr45 = vec45.as_ptr() as i32;
                                let len45 = vec45.len() as i32;
                                *((base + 24) as *mut i32) = len45;
                                *((base + 20) as *mut i32) = ptr45;
                                
                              },
                              VecValue::TypeVec2(e) => {
                                *((base + 16) as *mut u8) = (16i32) as u8;
                                let vec46 = e;
                                let ptr46 = vec46.as_ptr() as i32;
                                let len46 = vec46.len() as i32;
                                *((base + 24) as *mut i32) = len46;
                                *((base + 20) as *mut i32) = ptr46;
                                
                              },
                              VecValue::TypeVec3(e) => {
                                *((base + 16) as *mut u8) = (17i32) as u8;
                                let vec47 = e;
                                let ptr47 = vec47.as_ptr() as i32;
                                let len47 = vec47.len() as i32;
                                *((base + 24) as *mut i32) = len47;
                                *((base + 20) as *mut i32) = ptr47;
                                
                              },
                              VecValue::TypeVec4(e) => {
                                *((base + 16) as *mut u8) = (18i32) as u8;
                                let vec48 = e;
                                let ptr48 = vec48.as_ptr() as i32;
                                let len48 = vec48.len() as i32;
                                *((base + 24) as *mut i32) = len48;
                                *((base + 20) as *mut i32) = ptr48;
                                
                              },
                              VecValue::TypeUvec2(e) => {
                                *((base + 16) as *mut u8) = (19i32) as u8;
                                let vec49 = e;
                                let ptr49 = vec49.as_ptr() as i32;
                                let len49 = vec49.len() as i32;
                                *((base + 24) as *mut i32) = len49;
                                *((base + 20) as *mut i32) = ptr49;
                                
                              },
                              VecValue::TypeUvec3(e) => {
                                *((base + 16) as *mut u8) = (20i32) as u8;
                                let vec50 = e;
                                let ptr50 = vec50.as_ptr() as i32;
                                let len50 = vec50.len() as i32;
                                *((base + 24) as *mut i32) = len50;
                                *((base + 20) as *mut i32) = ptr50;
                                
                              },
                              VecValue::TypeUvec4(e) => {
                                *((base + 16) as *mut u8) = (21i32) as u8;
                                let vec51 = e;
                                let ptr51 = vec51.as_ptr() as i32;
                                let len51 = vec51.len() as i32;
                                *((base + 24) as *mut i32) = len51;
                                *((base + 20) as *mut i32) = ptr51;
                                
                              },
                              VecValue::TypeIvec2(e) => {
                                *((base + 16) as *mut u8) = (22i32) as u8;
                                let vec52 = e;
                                let ptr52 = vec52.as_ptr() as i32;
                                let len52 = vec52.len() as i32;
                                *((base + 24) as *mut i32) = len52;
                                *((base + 20) as *mut i32) = ptr52;
                                
                              },
                              VecValue::TypeIvec3(e) => {
                                *((base + 16) as *mut u8) = (23i32) as u8;
                                let vec53 = e;
                                let ptr53 = vec53.as_ptr() as i32;
                                let len53 = vec53.len() as i32;
                                *((base + 24) as *mut i32) = len53;
                                *((base + 20) as *mut i32) = ptr53;
                                
                              },
                              VecValue::TypeIvec4(e) => {
                                *((base + 16) as *mut u8) = (24i32) as u8;
                                let vec54 = e;
                                let ptr54 = vec54.as_ptr() as i32;
                                let len54 = vec54.len() as i32;
                                *((base + 24) as *mut i32) = len54;
                                *((base + 20) as *mut i32) = ptr54;
                                
                              },
                              VecValue::TypeDuration(e) => {
                                *((base + 16) as *mut u8) = (25i32) as u8;
                                let vec55 = e;
                                let ptr55 = vec55.as_ptr() as i32;
                                let len55 = vec55.len() as i32;
                                *((base + 24) as *mut i32) = len55;
                                *((base + 20) as *mut i32) = ptr55;
                                
                              },
                              VecValue::TypeProceduralMeshHandle(e) => {
                                *((base + 16) as *mut u8) = (26i32) as u8;
                                let vec56 = e;
                                let ptr56 = vec56.as_ptr() as i32;
                                let len56 = vec56.len() as i32;
                                *((base + 24) as *mut i32) = len56;
                                *((base + 20) as *mut i32) = ptr56;
                                
                              },
                              VecValue::TypeProceduralTextureHandle(e) => {
                                *((base + 16) as *mut u8) = (27i32) as u8;
                                let vec57 = e;
                                let ptr57 = vec57.as_ptr() as i32;
                                let len57 = vec57.len() as i32;
                                *((base + 24) as *mut i32) = len57;
                                *((base + 20) as *mut i32) = ptr57;
                                
                              },
                              VecValue::TypeProceduralSamplerHandle(e) => {
                                *((base + 16) as *mut u8) = (28i32) as u8;
                                let vec58 = e;
                                let ptr58 = vec58.as_ptr() as i32;
                                let len58 = vec58.len() as i32;
                                *((base + 24) as *mut i32) = len58;
                                *((base + 20) as *mut i32) = ptr58;
                                
                              },
                              VecValue::TypeProceduralMaterialHandle(e) => {
                                *((base + 16) as *mut u8) = (29i32) as u8;
                                let vec59 = e;
                                let ptr59 = vec59.as_ptr() as i32;
                                let len59 = vec59.len() as i32;
                                *((base + 24) as *mut i32) = len59;
                                *((base + 20) as *mut i32) = ptr59;
                                
                              },
                            };
                            
                          },
                          Value::TypeOption(e) => {
                            *((base + 8) as *mut u8) = (31i32) as u8;
                            match e {
                              OptionValue::TypeEmpty(e) => {
                                *((base + 16) as *mut u8) = (0i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::types::Empty{ dummy:dummy60, } = e;
                                    *((base + 25) as *mut u8) = (wit_bindgen::rt::as_i32(dummy60)) as u8;
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeBool(e) => {
                                *((base + 16) as *mut u8) = (1i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    *((base + 25) as *mut u8) = (match e { true => 1, false => 0 }) as u8;
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeEntityId(e) => {
                                *((base + 16) as *mut u8) = (2i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::types::EntityId{ id0:id061, id1:id161, } = e;
                                    *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(id061);
                                    *((base + 40) as *mut i64) = wit_bindgen::rt::as_i64(id161);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeF32(e) => {
                                *((base + 16) as *mut u8) = (3i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(e);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeF64(e) => {
                                *((base + 16) as *mut u8) = (4i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    *((base + 32) as *mut f64) = wit_bindgen::rt::as_f64(e);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeMat4(e) => {
                                *((base + 16) as *mut u8) = (5i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::types::Mat4{ x:x62, y:y62, z:z62, w:w62, } = e;
                                    let super::super::super::ambient::bindings::types::Vec4{ x:x63, y:y63, z:z63, w:w63, } = x62;
                                    *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(x63);
                                    *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(y63);
                                    *((base + 36) as *mut f32) = wit_bindgen::rt::as_f32(z63);
                                    *((base + 40) as *mut f32) = wit_bindgen::rt::as_f32(w63);
                                    let super::super::super::ambient::bindings::types::Vec4{ x:x64, y:y64, z:z64, w:w64, } = y62;
                                    *((base + 44) as *mut f32) = wit_bindgen::rt::as_f32(x64);
                                    *((base + 48) as *mut f32) = wit_bindgen::rt::as_f32(y64);
                                    *((base + 52) as *mut f32) = wit_bindgen::rt::as_f32(z64);
                                    *((base + 56) as *mut f32) = wit_bindgen::rt::as_f32(w64);
                                    let super::super::super::ambient::bindings::types::Vec4{ x:x65, y:y65, z:z65, w:w65, } = z62;
                                    *((base + 60) as *mut f32) = wit_bindgen::rt::as_f32(x65);
                                    *((base + 64) as *mut f32) = wit_bindgen::rt::as_f32(y65);
                                    *((base + 68) as *mut f32) = wit_bindgen::rt::as_f32(z65);
                                    *((base + 72) as *mut f32) = wit_bindgen::rt::as_f32(w65);
                                    let super::super::super::ambient::bindings::types::Vec4{ x:x66, y:y66, z:z66, w:w66, } = w62;
                                    *((base + 76) as *mut f32) = wit_bindgen::rt::as_f32(x66);
                                    *((base + 80) as *mut f32) = wit_bindgen::rt::as_f32(y66);
                                    *((base + 84) as *mut f32) = wit_bindgen::rt::as_f32(z66);
                                    *((base + 88) as *mut f32) = wit_bindgen::rt::as_f32(w66);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeQuat(e) => {
                                *((base + 16) as *mut u8) = (6i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::types::Quat{ x:x67, y:y67, z:z67, w:w67, } = e;
                                    *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(x67);
                                    *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(y67);
                                    *((base + 36) as *mut f32) = wit_bindgen::rt::as_f32(z67);
                                    *((base + 40) as *mut f32) = wit_bindgen::rt::as_f32(w67);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeString(e) => {
                                *((base + 16) as *mut u8) = (7i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let vec68 = e;
                                    let ptr68 = vec68.as_ptr() as i32;
                                    let len68 = vec68.len() as i32;
                                    *((base + 32) as *mut i32) = len68;
                                    *((base + 28) as *mut i32) = ptr68;
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeU8(e) => {
                                *((base + 16) as *mut u8) = (8i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    *((base + 25) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeU16(e) => {
                                *((base + 16) as *mut u8) = (9i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    *((base + 26) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeU32(e) => {
                                *((base + 16) as *mut u8) = (10i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(e);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeU64(e) => {
                                *((base + 16) as *mut u8) = (11i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(e);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeI8(e) => {
                                *((base + 16) as *mut u8) = (12i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    *((base + 25) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeI16(e) => {
                                *((base + 16) as *mut u8) = (13i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    *((base + 26) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeI32(e) => {
                                *((base + 16) as *mut u8) = (14i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(e);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeI64(e) => {
                                *((base + 16) as *mut u8) = (15i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(e);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeVec2(e) => {
                                *((base + 16) as *mut u8) = (16i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::types::Vec2{ x:x69, y:y69, } = e;
                                    *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(x69);
                                    *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(y69);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeVec3(e) => {
                                *((base + 16) as *mut u8) = (17i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::types::Vec3{ x:x70, y:y70, z:z70, } = e;
                                    *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(x70);
                                    *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(y70);
                                    *((base + 36) as *mut f32) = wit_bindgen::rt::as_f32(z70);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeVec4(e) => {
                                *((base + 16) as *mut u8) = (18i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::types::Vec4{ x:x71, y:y71, z:z71, w:w71, } = e;
                                    *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(x71);
                                    *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(y71);
                                    *((base + 36) as *mut f32) = wit_bindgen::rt::as_f32(z71);
                                    *((base + 40) as *mut f32) = wit_bindgen::rt::as_f32(w71);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeUvec2(e) => {
                                *((base + 16) as *mut u8) = (19i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::types::Uvec2{ x:x72, y:y72, } = e;
                                    *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x72);
                                    *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y72);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeUvec3(e) => {
                                *((base + 16) as *mut u8) = (20i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::types::Uvec3{ x:x73, y:y73, z:z73, } = e;
                                    *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x73);
                                    *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y73);
                                    *((base + 36) as *mut i32) = wit_bindgen::rt::as_i32(z73);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeUvec4(e) => {
                                *((base + 16) as *mut u8) = (21i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::types::Uvec4{ x:x74, y:y74, z:z74, w:w74, } = e;
                                    *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x74);
                                    *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y74);
                                    *((base + 36) as *mut i32) = wit_bindgen::rt::as_i32(z74);
                                    *((base + 40) as *mut i32) = wit_bindgen::rt::as_i32(w74);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeIvec2(e) => {
                                *((base + 16) as *mut u8) = (22i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::types::Ivec2{ x:x75, y:y75, } = e;
                                    *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x75);
                                    *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y75);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeIvec3(e) => {
                                *((base + 16) as *mut u8) = (23i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::types::Ivec3{ x:x76, y:y76, z:z76, } = e;
                                    *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x76);
                                    *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y76);
                                    *((base + 36) as *mut i32) = wit_bindgen::rt::as_i32(z76);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeIvec4(e) => {
                                *((base + 16) as *mut u8) = (24i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::types::Ivec4{ x:x77, y:y77, z:z77, w:w77, } = e;
                                    *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x77);
                                    *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y77);
                                    *((base + 36) as *mut i32) = wit_bindgen::rt::as_i32(z77);
                                    *((base + 40) as *mut i32) = wit_bindgen::rt::as_i32(w77);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeDuration(e) => {
                                *((base + 16) as *mut u8) = (25i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::types::Duration{ seconds:seconds78, nanoseconds:nanoseconds78, } = e;
                                    *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(seconds78);
                                    *((base + 40) as *mut i32) = wit_bindgen::rt::as_i32(nanoseconds78);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeProceduralMeshHandle(e) => {
                                *((base + 16) as *mut u8) = (26i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::client_mesh::Handle{ ulid:ulid79, } = e;
                                    let (t80_0, t80_1, ) = ulid79;
                                    *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(t80_0);
                                    *((base + 40) as *mut i64) = wit_bindgen::rt::as_i64(t80_1);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeProceduralTextureHandle(e) => {
                                *((base + 16) as *mut u8) = (27i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::client_texture::Handle{ ulid:ulid81, } = e;
                                    let (t82_0, t82_1, ) = ulid81;
                                    *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(t82_0);
                                    *((base + 40) as *mut i64) = wit_bindgen::rt::as_i64(t82_1);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeProceduralSamplerHandle(e) => {
                                *((base + 16) as *mut u8) = (28i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::client_sampler::Handle{ ulid:ulid83, } = e;
                                    let (t84_0, t84_1, ) = ulid83;
                                    *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(t84_0);
                                    *((base + 40) as *mut i64) = wit_bindgen::rt::as_i64(t84_1);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                              OptionValue::TypeProceduralMaterialHandle(e) => {
                                *((base + 16) as *mut u8) = (29i32) as u8;
                                match e {
                                  Some(e) => {
                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                    let super::super::super::ambient::bindings::client_material::Handle{ ulid:ulid85, } = e;
                                    let (t86_0, t86_1, ) = ulid85;
                                    *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(t86_0);
                                    *((base + 40) as *mut i64) = wit_bindgen::rt::as_i64(t86_1);
                                    
                                  },
                                  None => {
                                    {
                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                      
                                    }
                                  },
                                };
                              },
                            };
                            
                          },
                        };
                        
                      }}
                      
                      #[link(wasm_import_module = "ambient:bindings/component")]
                      extern "C" {
                        #[cfg_attr(target_arch = "wasm32", link_name = "add-components")]
                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/component_add-components")]
                        fn wit_import(
                        _: i64, _: i64, _: i32, _: i32, );
                      }
                      wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), result87 as i32, len87);
                      if layout87.size() != 0 {
                        alloc::dealloc(result87, layout87);
                      }
                      for (ptr, layout) in cleanup_list {
                        
                        if layout.size() != 0 {
                          
                          alloc::dealloc(ptr, layout);
                          
                        }
                        
                      }
                    }
                  }
                  #[allow(clippy::all)]
                  pub fn set_component(entity: EntityId,index: u32,value: &Value,){
                    
                    #[allow(unused_imports)]
                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                    unsafe {
                      let mut cleanup_list = Vec::new();
                      
                      #[repr(align(8))]
                      struct RetArea([u8; 112]);
                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                      let ptr0 = ret_area.as_mut_ptr() as i32;let super::super::super::ambient::bindings::types::EntityId{ id0:id01, id1:id11, } = entity;
                      *((ptr0 + 0) as *mut i64) = wit_bindgen::rt::as_i64(id01);
                      *((ptr0 + 8) as *mut i64) = wit_bindgen::rt::as_i64(id11);
                      *((ptr0 + 16) as *mut i32) = wit_bindgen::rt::as_i32(index);
                      match value {
                        Value::TypeEmpty(e) => {
                          *((ptr0 + 24) as *mut u8) = (0i32) as u8;
                          let super::super::super::ambient::bindings::types::Empty{ dummy:dummy2, } = e;
                          *((ptr0 + 32) as *mut u8) = (wit_bindgen::rt::as_i32(dummy2)) as u8;
                          
                        },
                        Value::TypeBool(e) => {
                          *((ptr0 + 24) as *mut u8) = (1i32) as u8;
                          *((ptr0 + 32) as *mut u8) = (match e { true => 1, false => 0 }) as u8;
                          
                        },
                        Value::TypeEntityId(e) => {
                          *((ptr0 + 24) as *mut u8) = (2i32) as u8;
                          let super::super::super::ambient::bindings::types::EntityId{ id0:id03, id1:id13, } = e;
                          *((ptr0 + 32) as *mut i64) = wit_bindgen::rt::as_i64(id03);
                          *((ptr0 + 40) as *mut i64) = wit_bindgen::rt::as_i64(id13);
                          
                        },
                        Value::TypeF32(e) => {
                          *((ptr0 + 24) as *mut u8) = (3i32) as u8;
                          *((ptr0 + 32) as *mut f32) = wit_bindgen::rt::as_f32(e);
                          
                        },
                        Value::TypeF64(e) => {
                          *((ptr0 + 24) as *mut u8) = (4i32) as u8;
                          *((ptr0 + 32) as *mut f64) = wit_bindgen::rt::as_f64(e);
                          
                        },
                        Value::TypeMat4(e) => {
                          *((ptr0 + 24) as *mut u8) = (5i32) as u8;
                          let super::super::super::ambient::bindings::types::Mat4{ x:x4, y:y4, z:z4, w:w4, } = e;
                          let super::super::super::ambient::bindings::types::Vec4{ x:x5, y:y5, z:z5, w:w5, } = x4;
                          *((ptr0 + 32) as *mut f32) = wit_bindgen::rt::as_f32(x5);
                          *((ptr0 + 36) as *mut f32) = wit_bindgen::rt::as_f32(y5);
                          *((ptr0 + 40) as *mut f32) = wit_bindgen::rt::as_f32(z5);
                          *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(w5);
                          let super::super::super::ambient::bindings::types::Vec4{ x:x6, y:y6, z:z6, w:w6, } = y4;
                          *((ptr0 + 48) as *mut f32) = wit_bindgen::rt::as_f32(x6);
                          *((ptr0 + 52) as *mut f32) = wit_bindgen::rt::as_f32(y6);
                          *((ptr0 + 56) as *mut f32) = wit_bindgen::rt::as_f32(z6);
                          *((ptr0 + 60) as *mut f32) = wit_bindgen::rt::as_f32(w6);
                          let super::super::super::ambient::bindings::types::Vec4{ x:x7, y:y7, z:z7, w:w7, } = z4;
                          *((ptr0 + 64) as *mut f32) = wit_bindgen::rt::as_f32(x7);
                          *((ptr0 + 68) as *mut f32) = wit_bindgen::rt::as_f32(y7);
                          *((ptr0 + 72) as *mut f32) = wit_bindgen::rt::as_f32(z7);
                          *((ptr0 + 76) as *mut f32) = wit_bindgen::rt::as_f32(w7);
                          let super::super::super::ambient::bindings::types::Vec4{ x:x8, y:y8, z:z8, w:w8, } = w4;
                          *((ptr0 + 80) as *mut f32) = wit_bindgen::rt::as_f32(x8);
                          *((ptr0 + 84) as *mut f32) = wit_bindgen::rt::as_f32(y8);
                          *((ptr0 + 88) as *mut f32) = wit_bindgen::rt::as_f32(z8);
                          *((ptr0 + 92) as *mut f32) = wit_bindgen::rt::as_f32(w8);
                          
                        },
                        Value::TypeQuat(e) => {
                          *((ptr0 + 24) as *mut u8) = (6i32) as u8;
                          let super::super::super::ambient::bindings::types::Quat{ x:x9, y:y9, z:z9, w:w9, } = e;
                          *((ptr0 + 32) as *mut f32) = wit_bindgen::rt::as_f32(x9);
                          *((ptr0 + 36) as *mut f32) = wit_bindgen::rt::as_f32(y9);
                          *((ptr0 + 40) as *mut f32) = wit_bindgen::rt::as_f32(z9);
                          *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(w9);
                          
                        },
                        Value::TypeString(e) => {
                          *((ptr0 + 24) as *mut u8) = (7i32) as u8;
                          let vec10 = e;
                          let ptr10 = vec10.as_ptr() as i32;
                          let len10 = vec10.len() as i32;
                          *((ptr0 + 36) as *mut i32) = len10;
                          *((ptr0 + 32) as *mut i32) = ptr10;
                          
                        },
                        Value::TypeU8(e) => {
                          *((ptr0 + 24) as *mut u8) = (8i32) as u8;
                          *((ptr0 + 32) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                          
                        },
                        Value::TypeU16(e) => {
                          *((ptr0 + 24) as *mut u8) = (9i32) as u8;
                          *((ptr0 + 32) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                          
                        },
                        Value::TypeU32(e) => {
                          *((ptr0 + 24) as *mut u8) = (10i32) as u8;
                          *((ptr0 + 32) as *mut i32) = wit_bindgen::rt::as_i32(e);
                          
                        },
                        Value::TypeU64(e) => {
                          *((ptr0 + 24) as *mut u8) = (11i32) as u8;
                          *((ptr0 + 32) as *mut i64) = wit_bindgen::rt::as_i64(e);
                          
                        },
                        Value::TypeI8(e) => {
                          *((ptr0 + 24) as *mut u8) = (12i32) as u8;
                          *((ptr0 + 32) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                          
                        },
                        Value::TypeI16(e) => {
                          *((ptr0 + 24) as *mut u8) = (13i32) as u8;
                          *((ptr0 + 32) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                          
                        },
                        Value::TypeI32(e) => {
                          *((ptr0 + 24) as *mut u8) = (14i32) as u8;
                          *((ptr0 + 32) as *mut i32) = wit_bindgen::rt::as_i32(e);
                          
                        },
                        Value::TypeI64(e) => {
                          *((ptr0 + 24) as *mut u8) = (15i32) as u8;
                          *((ptr0 + 32) as *mut i64) = wit_bindgen::rt::as_i64(e);
                          
                        },
                        Value::TypeVec2(e) => {
                          *((ptr0 + 24) as *mut u8) = (16i32) as u8;
                          let super::super::super::ambient::bindings::types::Vec2{ x:x11, y:y11, } = e;
                          *((ptr0 + 32) as *mut f32) = wit_bindgen::rt::as_f32(x11);
                          *((ptr0 + 36) as *mut f32) = wit_bindgen::rt::as_f32(y11);
                          
                        },
                        Value::TypeVec3(e) => {
                          *((ptr0 + 24) as *mut u8) = (17i32) as u8;
                          let super::super::super::ambient::bindings::types::Vec3{ x:x12, y:y12, z:z12, } = e;
                          *((ptr0 + 32) as *mut f32) = wit_bindgen::rt::as_f32(x12);
                          *((ptr0 + 36) as *mut f32) = wit_bindgen::rt::as_f32(y12);
                          *((ptr0 + 40) as *mut f32) = wit_bindgen::rt::as_f32(z12);
                          
                        },
                        Value::TypeVec4(e) => {
                          *((ptr0 + 24) as *mut u8) = (18i32) as u8;
                          let super::super::super::ambient::bindings::types::Vec4{ x:x13, y:y13, z:z13, w:w13, } = e;
                          *((ptr0 + 32) as *mut f32) = wit_bindgen::rt::as_f32(x13);
                          *((ptr0 + 36) as *mut f32) = wit_bindgen::rt::as_f32(y13);
                          *((ptr0 + 40) as *mut f32) = wit_bindgen::rt::as_f32(z13);
                          *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(w13);
                          
                        },
                        Value::TypeUvec2(e) => {
                          *((ptr0 + 24) as *mut u8) = (19i32) as u8;
                          let super::super::super::ambient::bindings::types::Uvec2{ x:x14, y:y14, } = e;
                          *((ptr0 + 32) as *mut i32) = wit_bindgen::rt::as_i32(x14);
                          *((ptr0 + 36) as *mut i32) = wit_bindgen::rt::as_i32(y14);
                          
                        },
                        Value::TypeUvec3(e) => {
                          *((ptr0 + 24) as *mut u8) = (20i32) as u8;
                          let super::super::super::ambient::bindings::types::Uvec3{ x:x15, y:y15, z:z15, } = e;
                          *((ptr0 + 32) as *mut i32) = wit_bindgen::rt::as_i32(x15);
                          *((ptr0 + 36) as *mut i32) = wit_bindgen::rt::as_i32(y15);
                          *((ptr0 + 40) as *mut i32) = wit_bindgen::rt::as_i32(z15);
                          
                        },
                        Value::TypeUvec4(e) => {
                          *((ptr0 + 24) as *mut u8) = (21i32) as u8;
                          let super::super::super::ambient::bindings::types::Uvec4{ x:x16, y:y16, z:z16, w:w16, } = e;
                          *((ptr0 + 32) as *mut i32) = wit_bindgen::rt::as_i32(x16);
                          *((ptr0 + 36) as *mut i32) = wit_bindgen::rt::as_i32(y16);
                          *((ptr0 + 40) as *mut i32) = wit_bindgen::rt::as_i32(z16);
                          *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(w16);
                          
                        },
                        Value::TypeIvec2(e) => {
                          *((ptr0 + 24) as *mut u8) = (22i32) as u8;
                          let super::super::super::ambient::bindings::types::Ivec2{ x:x17, y:y17, } = e;
                          *((ptr0 + 32) as *mut i32) = wit_bindgen::rt::as_i32(x17);
                          *((ptr0 + 36) as *mut i32) = wit_bindgen::rt::as_i32(y17);
                          
                        },
                        Value::TypeIvec3(e) => {
                          *((ptr0 + 24) as *mut u8) = (23i32) as u8;
                          let super::super::super::ambient::bindings::types::Ivec3{ x:x18, y:y18, z:z18, } = e;
                          *((ptr0 + 32) as *mut i32) = wit_bindgen::rt::as_i32(x18);
                          *((ptr0 + 36) as *mut i32) = wit_bindgen::rt::as_i32(y18);
                          *((ptr0 + 40) as *mut i32) = wit_bindgen::rt::as_i32(z18);
                          
                        },
                        Value::TypeIvec4(e) => {
                          *((ptr0 + 24) as *mut u8) = (24i32) as u8;
                          let super::super::super::ambient::bindings::types::Ivec4{ x:x19, y:y19, z:z19, w:w19, } = e;
                          *((ptr0 + 32) as *mut i32) = wit_bindgen::rt::as_i32(x19);
                          *((ptr0 + 36) as *mut i32) = wit_bindgen::rt::as_i32(y19);
                          *((ptr0 + 40) as *mut i32) = wit_bindgen::rt::as_i32(z19);
                          *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(w19);
                          
                        },
                        Value::TypeDuration(e) => {
                          *((ptr0 + 24) as *mut u8) = (25i32) as u8;
                          let super::super::super::ambient::bindings::types::Duration{ seconds:seconds20, nanoseconds:nanoseconds20, } = e;
                          *((ptr0 + 32) as *mut i64) = wit_bindgen::rt::as_i64(seconds20);
                          *((ptr0 + 40) as *mut i32) = wit_bindgen::rt::as_i32(nanoseconds20);
                          
                        },
                        Value::TypeProceduralMeshHandle(e) => {
                          *((ptr0 + 24) as *mut u8) = (26i32) as u8;
                          let super::super::super::ambient::bindings::client_mesh::Handle{ ulid:ulid21, } = e;
                          let (t22_0, t22_1, ) = ulid21;
                          *((ptr0 + 32) as *mut i64) = wit_bindgen::rt::as_i64(t22_0);
                          *((ptr0 + 40) as *mut i64) = wit_bindgen::rt::as_i64(t22_1);
                          
                        },
                        Value::TypeProceduralTextureHandle(e) => {
                          *((ptr0 + 24) as *mut u8) = (27i32) as u8;
                          let super::super::super::ambient::bindings::client_texture::Handle{ ulid:ulid23, } = e;
                          let (t24_0, t24_1, ) = ulid23;
                          *((ptr0 + 32) as *mut i64) = wit_bindgen::rt::as_i64(t24_0);
                          *((ptr0 + 40) as *mut i64) = wit_bindgen::rt::as_i64(t24_1);
                          
                        },
                        Value::TypeProceduralSamplerHandle(e) => {
                          *((ptr0 + 24) as *mut u8) = (28i32) as u8;
                          let super::super::super::ambient::bindings::client_sampler::Handle{ ulid:ulid25, } = e;
                          let (t26_0, t26_1, ) = ulid25;
                          *((ptr0 + 32) as *mut i64) = wit_bindgen::rt::as_i64(t26_0);
                          *((ptr0 + 40) as *mut i64) = wit_bindgen::rt::as_i64(t26_1);
                          
                        },
                        Value::TypeProceduralMaterialHandle(e) => {
                          *((ptr0 + 24) as *mut u8) = (29i32) as u8;
                          let super::super::super::ambient::bindings::client_material::Handle{ ulid:ulid27, } = e;
                          let (t28_0, t28_1, ) = ulid27;
                          *((ptr0 + 32) as *mut i64) = wit_bindgen::rt::as_i64(t28_0);
                          *((ptr0 + 40) as *mut i64) = wit_bindgen::rt::as_i64(t28_1);
                          
                        },
                        Value::TypeVec(e) => {
                          *((ptr0 + 24) as *mut u8) = (30i32) as u8;
                          match e {
                            VecValue::TypeEmpty(e) => {
                              *((ptr0 + 32) as *mut u8) = (0i32) as u8;
                              let vec29 = e;
                              let ptr29 = vec29.as_ptr() as i32;
                              let len29 = vec29.len() as i32;
                              *((ptr0 + 40) as *mut i32) = len29;
                              *((ptr0 + 36) as *mut i32) = ptr29;
                              
                            },
                            VecValue::TypeBool(e) => {
                              *((ptr0 + 32) as *mut u8) = (1i32) as u8;
                              let vec30 = e;
                              let len30 = vec30.len() as i32;
                              let layout30 = alloc::Layout::from_size_align_unchecked(vec30.len() * 1, 1);
                              let result30 = if layout30.size() != 0
                              {
                                let ptr = alloc::alloc(layout30);
                                if ptr.is_null()
                                {
                                  alloc::handle_alloc_error(layout30);
                                }
                                ptr
                              }else {
                                ::core::ptr::null_mut()
                              };
                              for (i, e) in vec30.into_iter().enumerate() {
                                let base = result30 as i32 + (i as i32) * 1;
                                {
                                  *((base + 0) as *mut u8) = (match e { true => 1, false => 0 }) as u8;
                                  
                                }}
                                *((ptr0 + 40) as *mut i32) = len30;
                                *((ptr0 + 36) as *mut i32) = result30 as i32;
                                cleanup_list.extend_from_slice(&[(result30, layout30),]);
                                
                              },
                              VecValue::TypeEntityId(e) => {
                                *((ptr0 + 32) as *mut u8) = (2i32) as u8;
                                let vec31 = e;
                                let ptr31 = vec31.as_ptr() as i32;
                                let len31 = vec31.len() as i32;
                                *((ptr0 + 40) as *mut i32) = len31;
                                *((ptr0 + 36) as *mut i32) = ptr31;
                                
                              },
                              VecValue::TypeF32(e) => {
                                *((ptr0 + 32) as *mut u8) = (3i32) as u8;
                                let vec32 = e;
                                let ptr32 = vec32.as_ptr() as i32;
                                let len32 = vec32.len() as i32;
                                *((ptr0 + 40) as *mut i32) = len32;
                                *((ptr0 + 36) as *mut i32) = ptr32;
                                
                              },
                              VecValue::TypeF64(e) => {
                                *((ptr0 + 32) as *mut u8) = (4i32) as u8;
                                let vec33 = e;
                                let ptr33 = vec33.as_ptr() as i32;
                                let len33 = vec33.len() as i32;
                                *((ptr0 + 40) as *mut i32) = len33;
                                *((ptr0 + 36) as *mut i32) = ptr33;
                                
                              },
                              VecValue::TypeMat4(e) => {
                                *((ptr0 + 32) as *mut u8) = (5i32) as u8;
                                let vec34 = e;
                                let ptr34 = vec34.as_ptr() as i32;
                                let len34 = vec34.len() as i32;
                                *((ptr0 + 40) as *mut i32) = len34;
                                *((ptr0 + 36) as *mut i32) = ptr34;
                                
                              },
                              VecValue::TypeQuat(e) => {
                                *((ptr0 + 32) as *mut u8) = (6i32) as u8;
                                let vec35 = e;
                                let ptr35 = vec35.as_ptr() as i32;
                                let len35 = vec35.len() as i32;
                                *((ptr0 + 40) as *mut i32) = len35;
                                *((ptr0 + 36) as *mut i32) = ptr35;
                                
                              },
                              VecValue::TypeString(e) => {
                                *((ptr0 + 32) as *mut u8) = (7i32) as u8;
                                let vec37 = e;
                                let len37 = vec37.len() as i32;
                                let layout37 = alloc::Layout::from_size_align_unchecked(vec37.len() * 8, 4);
                                let result37 = if layout37.size() != 0
                                {
                                  let ptr = alloc::alloc(layout37);
                                  if ptr.is_null()
                                  {
                                    alloc::handle_alloc_error(layout37);
                                  }
                                  ptr
                                }else {
                                  ::core::ptr::null_mut()
                                };
                                for (i, e) in vec37.into_iter().enumerate() {
                                  let base = result37 as i32 + (i as i32) * 8;
                                  {
                                    let vec36 = e;
                                    let ptr36 = vec36.as_ptr() as i32;
                                    let len36 = vec36.len() as i32;
                                    *((base + 4) as *mut i32) = len36;
                                    *((base + 0) as *mut i32) = ptr36;
                                    
                                  }}
                                  *((ptr0 + 40) as *mut i32) = len37;
                                  *((ptr0 + 36) as *mut i32) = result37 as i32;
                                  cleanup_list.extend_from_slice(&[(result37, layout37),]);
                                  
                                },
                                VecValue::TypeU8(e) => {
                                  *((ptr0 + 32) as *mut u8) = (8i32) as u8;
                                  let vec38 = e;
                                  let ptr38 = vec38.as_ptr() as i32;
                                  let len38 = vec38.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len38;
                                  *((ptr0 + 36) as *mut i32) = ptr38;
                                  
                                },
                                VecValue::TypeU16(e) => {
                                  *((ptr0 + 32) as *mut u8) = (9i32) as u8;
                                  let vec39 = e;
                                  let ptr39 = vec39.as_ptr() as i32;
                                  let len39 = vec39.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len39;
                                  *((ptr0 + 36) as *mut i32) = ptr39;
                                  
                                },
                                VecValue::TypeU32(e) => {
                                  *((ptr0 + 32) as *mut u8) = (10i32) as u8;
                                  let vec40 = e;
                                  let ptr40 = vec40.as_ptr() as i32;
                                  let len40 = vec40.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len40;
                                  *((ptr0 + 36) as *mut i32) = ptr40;
                                  
                                },
                                VecValue::TypeU64(e) => {
                                  *((ptr0 + 32) as *mut u8) = (11i32) as u8;
                                  let vec41 = e;
                                  let ptr41 = vec41.as_ptr() as i32;
                                  let len41 = vec41.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len41;
                                  *((ptr0 + 36) as *mut i32) = ptr41;
                                  
                                },
                                VecValue::TypeI8(e) => {
                                  *((ptr0 + 32) as *mut u8) = (12i32) as u8;
                                  let vec42 = e;
                                  let ptr42 = vec42.as_ptr() as i32;
                                  let len42 = vec42.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len42;
                                  *((ptr0 + 36) as *mut i32) = ptr42;
                                  
                                },
                                VecValue::TypeI16(e) => {
                                  *((ptr0 + 32) as *mut u8) = (13i32) as u8;
                                  let vec43 = e;
                                  let ptr43 = vec43.as_ptr() as i32;
                                  let len43 = vec43.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len43;
                                  *((ptr0 + 36) as *mut i32) = ptr43;
                                  
                                },
                                VecValue::TypeI32(e) => {
                                  *((ptr0 + 32) as *mut u8) = (14i32) as u8;
                                  let vec44 = e;
                                  let ptr44 = vec44.as_ptr() as i32;
                                  let len44 = vec44.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len44;
                                  *((ptr0 + 36) as *mut i32) = ptr44;
                                  
                                },
                                VecValue::TypeI64(e) => {
                                  *((ptr0 + 32) as *mut u8) = (15i32) as u8;
                                  let vec45 = e;
                                  let ptr45 = vec45.as_ptr() as i32;
                                  let len45 = vec45.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len45;
                                  *((ptr0 + 36) as *mut i32) = ptr45;
                                  
                                },
                                VecValue::TypeVec2(e) => {
                                  *((ptr0 + 32) as *mut u8) = (16i32) as u8;
                                  let vec46 = e;
                                  let ptr46 = vec46.as_ptr() as i32;
                                  let len46 = vec46.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len46;
                                  *((ptr0 + 36) as *mut i32) = ptr46;
                                  
                                },
                                VecValue::TypeVec3(e) => {
                                  *((ptr0 + 32) as *mut u8) = (17i32) as u8;
                                  let vec47 = e;
                                  let ptr47 = vec47.as_ptr() as i32;
                                  let len47 = vec47.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len47;
                                  *((ptr0 + 36) as *mut i32) = ptr47;
                                  
                                },
                                VecValue::TypeVec4(e) => {
                                  *((ptr0 + 32) as *mut u8) = (18i32) as u8;
                                  let vec48 = e;
                                  let ptr48 = vec48.as_ptr() as i32;
                                  let len48 = vec48.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len48;
                                  *((ptr0 + 36) as *mut i32) = ptr48;
                                  
                                },
                                VecValue::TypeUvec2(e) => {
                                  *((ptr0 + 32) as *mut u8) = (19i32) as u8;
                                  let vec49 = e;
                                  let ptr49 = vec49.as_ptr() as i32;
                                  let len49 = vec49.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len49;
                                  *((ptr0 + 36) as *mut i32) = ptr49;
                                  
                                },
                                VecValue::TypeUvec3(e) => {
                                  *((ptr0 + 32) as *mut u8) = (20i32) as u8;
                                  let vec50 = e;
                                  let ptr50 = vec50.as_ptr() as i32;
                                  let len50 = vec50.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len50;
                                  *((ptr0 + 36) as *mut i32) = ptr50;
                                  
                                },
                                VecValue::TypeUvec4(e) => {
                                  *((ptr0 + 32) as *mut u8) = (21i32) as u8;
                                  let vec51 = e;
                                  let ptr51 = vec51.as_ptr() as i32;
                                  let len51 = vec51.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len51;
                                  *((ptr0 + 36) as *mut i32) = ptr51;
                                  
                                },
                                VecValue::TypeIvec2(e) => {
                                  *((ptr0 + 32) as *mut u8) = (22i32) as u8;
                                  let vec52 = e;
                                  let ptr52 = vec52.as_ptr() as i32;
                                  let len52 = vec52.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len52;
                                  *((ptr0 + 36) as *mut i32) = ptr52;
                                  
                                },
                                VecValue::TypeIvec3(e) => {
                                  *((ptr0 + 32) as *mut u8) = (23i32) as u8;
                                  let vec53 = e;
                                  let ptr53 = vec53.as_ptr() as i32;
                                  let len53 = vec53.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len53;
                                  *((ptr0 + 36) as *mut i32) = ptr53;
                                  
                                },
                                VecValue::TypeIvec4(e) => {
                                  *((ptr0 + 32) as *mut u8) = (24i32) as u8;
                                  let vec54 = e;
                                  let ptr54 = vec54.as_ptr() as i32;
                                  let len54 = vec54.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len54;
                                  *((ptr0 + 36) as *mut i32) = ptr54;
                                  
                                },
                                VecValue::TypeDuration(e) => {
                                  *((ptr0 + 32) as *mut u8) = (25i32) as u8;
                                  let vec55 = e;
                                  let ptr55 = vec55.as_ptr() as i32;
                                  let len55 = vec55.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len55;
                                  *((ptr0 + 36) as *mut i32) = ptr55;
                                  
                                },
                                VecValue::TypeProceduralMeshHandle(e) => {
                                  *((ptr0 + 32) as *mut u8) = (26i32) as u8;
                                  let vec56 = e;
                                  let ptr56 = vec56.as_ptr() as i32;
                                  let len56 = vec56.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len56;
                                  *((ptr0 + 36) as *mut i32) = ptr56;
                                  
                                },
                                VecValue::TypeProceduralTextureHandle(e) => {
                                  *((ptr0 + 32) as *mut u8) = (27i32) as u8;
                                  let vec57 = e;
                                  let ptr57 = vec57.as_ptr() as i32;
                                  let len57 = vec57.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len57;
                                  *((ptr0 + 36) as *mut i32) = ptr57;
                                  
                                },
                                VecValue::TypeProceduralSamplerHandle(e) => {
                                  *((ptr0 + 32) as *mut u8) = (28i32) as u8;
                                  let vec58 = e;
                                  let ptr58 = vec58.as_ptr() as i32;
                                  let len58 = vec58.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len58;
                                  *((ptr0 + 36) as *mut i32) = ptr58;
                                  
                                },
                                VecValue::TypeProceduralMaterialHandle(e) => {
                                  *((ptr0 + 32) as *mut u8) = (29i32) as u8;
                                  let vec59 = e;
                                  let ptr59 = vec59.as_ptr() as i32;
                                  let len59 = vec59.len() as i32;
                                  *((ptr0 + 40) as *mut i32) = len59;
                                  *((ptr0 + 36) as *mut i32) = ptr59;
                                  
                                },
                              };
                              
                            },
                            Value::TypeOption(e) => {
                              *((ptr0 + 24) as *mut u8) = (31i32) as u8;
                              match e {
                                OptionValue::TypeEmpty(e) => {
                                  *((ptr0 + 32) as *mut u8) = (0i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::types::Empty{ dummy:dummy60, } = e;
                                      *((ptr0 + 41) as *mut u8) = (wit_bindgen::rt::as_i32(dummy60)) as u8;
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeBool(e) => {
                                  *((ptr0 + 32) as *mut u8) = (1i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      *((ptr0 + 41) as *mut u8) = (match e { true => 1, false => 0 }) as u8;
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeEntityId(e) => {
                                  *((ptr0 + 32) as *mut u8) = (2i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id061, id1:id161, } = e;
                                      *((ptr0 + 48) as *mut i64) = wit_bindgen::rt::as_i64(id061);
                                      *((ptr0 + 56) as *mut i64) = wit_bindgen::rt::as_i64(id161);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeF32(e) => {
                                  *((ptr0 + 32) as *mut u8) = (3i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(e);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeF64(e) => {
                                  *((ptr0 + 32) as *mut u8) = (4i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      *((ptr0 + 48) as *mut f64) = wit_bindgen::rt::as_f64(e);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeMat4(e) => {
                                  *((ptr0 + 32) as *mut u8) = (5i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::types::Mat4{ x:x62, y:y62, z:z62, w:w62, } = e;
                                      let super::super::super::ambient::bindings::types::Vec4{ x:x63, y:y63, z:z63, w:w63, } = x62;
                                      *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(x63);
                                      *((ptr0 + 48) as *mut f32) = wit_bindgen::rt::as_f32(y63);
                                      *((ptr0 + 52) as *mut f32) = wit_bindgen::rt::as_f32(z63);
                                      *((ptr0 + 56) as *mut f32) = wit_bindgen::rt::as_f32(w63);
                                      let super::super::super::ambient::bindings::types::Vec4{ x:x64, y:y64, z:z64, w:w64, } = y62;
                                      *((ptr0 + 60) as *mut f32) = wit_bindgen::rt::as_f32(x64);
                                      *((ptr0 + 64) as *mut f32) = wit_bindgen::rt::as_f32(y64);
                                      *((ptr0 + 68) as *mut f32) = wit_bindgen::rt::as_f32(z64);
                                      *((ptr0 + 72) as *mut f32) = wit_bindgen::rt::as_f32(w64);
                                      let super::super::super::ambient::bindings::types::Vec4{ x:x65, y:y65, z:z65, w:w65, } = z62;
                                      *((ptr0 + 76) as *mut f32) = wit_bindgen::rt::as_f32(x65);
                                      *((ptr0 + 80) as *mut f32) = wit_bindgen::rt::as_f32(y65);
                                      *((ptr0 + 84) as *mut f32) = wit_bindgen::rt::as_f32(z65);
                                      *((ptr0 + 88) as *mut f32) = wit_bindgen::rt::as_f32(w65);
                                      let super::super::super::ambient::bindings::types::Vec4{ x:x66, y:y66, z:z66, w:w66, } = w62;
                                      *((ptr0 + 92) as *mut f32) = wit_bindgen::rt::as_f32(x66);
                                      *((ptr0 + 96) as *mut f32) = wit_bindgen::rt::as_f32(y66);
                                      *((ptr0 + 100) as *mut f32) = wit_bindgen::rt::as_f32(z66);
                                      *((ptr0 + 104) as *mut f32) = wit_bindgen::rt::as_f32(w66);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeQuat(e) => {
                                  *((ptr0 + 32) as *mut u8) = (6i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::types::Quat{ x:x67, y:y67, z:z67, w:w67, } = e;
                                      *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(x67);
                                      *((ptr0 + 48) as *mut f32) = wit_bindgen::rt::as_f32(y67);
                                      *((ptr0 + 52) as *mut f32) = wit_bindgen::rt::as_f32(z67);
                                      *((ptr0 + 56) as *mut f32) = wit_bindgen::rt::as_f32(w67);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeString(e) => {
                                  *((ptr0 + 32) as *mut u8) = (7i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let vec68 = e;
                                      let ptr68 = vec68.as_ptr() as i32;
                                      let len68 = vec68.len() as i32;
                                      *((ptr0 + 48) as *mut i32) = len68;
                                      *((ptr0 + 44) as *mut i32) = ptr68;
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeU8(e) => {
                                  *((ptr0 + 32) as *mut u8) = (8i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      *((ptr0 + 41) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeU16(e) => {
                                  *((ptr0 + 32) as *mut u8) = (9i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      *((ptr0 + 42) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeU32(e) => {
                                  *((ptr0 + 32) as *mut u8) = (10i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(e);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeU64(e) => {
                                  *((ptr0 + 32) as *mut u8) = (11i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      *((ptr0 + 48) as *mut i64) = wit_bindgen::rt::as_i64(e);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeI8(e) => {
                                  *((ptr0 + 32) as *mut u8) = (12i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      *((ptr0 + 41) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeI16(e) => {
                                  *((ptr0 + 32) as *mut u8) = (13i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      *((ptr0 + 42) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeI32(e) => {
                                  *((ptr0 + 32) as *mut u8) = (14i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(e);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeI64(e) => {
                                  *((ptr0 + 32) as *mut u8) = (15i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      *((ptr0 + 48) as *mut i64) = wit_bindgen::rt::as_i64(e);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeVec2(e) => {
                                  *((ptr0 + 32) as *mut u8) = (16i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::types::Vec2{ x:x69, y:y69, } = e;
                                      *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(x69);
                                      *((ptr0 + 48) as *mut f32) = wit_bindgen::rt::as_f32(y69);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeVec3(e) => {
                                  *((ptr0 + 32) as *mut u8) = (17i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x70, y:y70, z:z70, } = e;
                                      *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(x70);
                                      *((ptr0 + 48) as *mut f32) = wit_bindgen::rt::as_f32(y70);
                                      *((ptr0 + 52) as *mut f32) = wit_bindgen::rt::as_f32(z70);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeVec4(e) => {
                                  *((ptr0 + 32) as *mut u8) = (18i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::types::Vec4{ x:x71, y:y71, z:z71, w:w71, } = e;
                                      *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(x71);
                                      *((ptr0 + 48) as *mut f32) = wit_bindgen::rt::as_f32(y71);
                                      *((ptr0 + 52) as *mut f32) = wit_bindgen::rt::as_f32(z71);
                                      *((ptr0 + 56) as *mut f32) = wit_bindgen::rt::as_f32(w71);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeUvec2(e) => {
                                  *((ptr0 + 32) as *mut u8) = (19i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::types::Uvec2{ x:x72, y:y72, } = e;
                                      *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(x72);
                                      *((ptr0 + 48) as *mut i32) = wit_bindgen::rt::as_i32(y72);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeUvec3(e) => {
                                  *((ptr0 + 32) as *mut u8) = (20i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::types::Uvec3{ x:x73, y:y73, z:z73, } = e;
                                      *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(x73);
                                      *((ptr0 + 48) as *mut i32) = wit_bindgen::rt::as_i32(y73);
                                      *((ptr0 + 52) as *mut i32) = wit_bindgen::rt::as_i32(z73);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeUvec4(e) => {
                                  *((ptr0 + 32) as *mut u8) = (21i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::types::Uvec4{ x:x74, y:y74, z:z74, w:w74, } = e;
                                      *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(x74);
                                      *((ptr0 + 48) as *mut i32) = wit_bindgen::rt::as_i32(y74);
                                      *((ptr0 + 52) as *mut i32) = wit_bindgen::rt::as_i32(z74);
                                      *((ptr0 + 56) as *mut i32) = wit_bindgen::rt::as_i32(w74);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeIvec2(e) => {
                                  *((ptr0 + 32) as *mut u8) = (22i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::types::Ivec2{ x:x75, y:y75, } = e;
                                      *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(x75);
                                      *((ptr0 + 48) as *mut i32) = wit_bindgen::rt::as_i32(y75);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeIvec3(e) => {
                                  *((ptr0 + 32) as *mut u8) = (23i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::types::Ivec3{ x:x76, y:y76, z:z76, } = e;
                                      *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(x76);
                                      *((ptr0 + 48) as *mut i32) = wit_bindgen::rt::as_i32(y76);
                                      *((ptr0 + 52) as *mut i32) = wit_bindgen::rt::as_i32(z76);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeIvec4(e) => {
                                  *((ptr0 + 32) as *mut u8) = (24i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::types::Ivec4{ x:x77, y:y77, z:z77, w:w77, } = e;
                                      *((ptr0 + 44) as *mut i32) = wit_bindgen::rt::as_i32(x77);
                                      *((ptr0 + 48) as *mut i32) = wit_bindgen::rt::as_i32(y77);
                                      *((ptr0 + 52) as *mut i32) = wit_bindgen::rt::as_i32(z77);
                                      *((ptr0 + 56) as *mut i32) = wit_bindgen::rt::as_i32(w77);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeDuration(e) => {
                                  *((ptr0 + 32) as *mut u8) = (25i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::types::Duration{ seconds:seconds78, nanoseconds:nanoseconds78, } = e;
                                      *((ptr0 + 48) as *mut i64) = wit_bindgen::rt::as_i64(seconds78);
                                      *((ptr0 + 56) as *mut i32) = wit_bindgen::rt::as_i32(nanoseconds78);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeProceduralMeshHandle(e) => {
                                  *((ptr0 + 32) as *mut u8) = (26i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::client_mesh::Handle{ ulid:ulid79, } = e;
                                      let (t80_0, t80_1, ) = ulid79;
                                      *((ptr0 + 48) as *mut i64) = wit_bindgen::rt::as_i64(t80_0);
                                      *((ptr0 + 56) as *mut i64) = wit_bindgen::rt::as_i64(t80_1);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeProceduralTextureHandle(e) => {
                                  *((ptr0 + 32) as *mut u8) = (27i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::client_texture::Handle{ ulid:ulid81, } = e;
                                      let (t82_0, t82_1, ) = ulid81;
                                      *((ptr0 + 48) as *mut i64) = wit_bindgen::rt::as_i64(t82_0);
                                      *((ptr0 + 56) as *mut i64) = wit_bindgen::rt::as_i64(t82_1);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeProceduralSamplerHandle(e) => {
                                  *((ptr0 + 32) as *mut u8) = (28i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::client_sampler::Handle{ ulid:ulid83, } = e;
                                      let (t84_0, t84_1, ) = ulid83;
                                      *((ptr0 + 48) as *mut i64) = wit_bindgen::rt::as_i64(t84_0);
                                      *((ptr0 + 56) as *mut i64) = wit_bindgen::rt::as_i64(t84_1);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                                OptionValue::TypeProceduralMaterialHandle(e) => {
                                  *((ptr0 + 32) as *mut u8) = (29i32) as u8;
                                  match e {
                                    Some(e) => {
                                      *((ptr0 + 40) as *mut u8) = (1i32) as u8;
                                      let super::super::super::ambient::bindings::client_material::Handle{ ulid:ulid85, } = e;
                                      let (t86_0, t86_1, ) = ulid85;
                                      *((ptr0 + 48) as *mut i64) = wit_bindgen::rt::as_i64(t86_0);
                                      *((ptr0 + 56) as *mut i64) = wit_bindgen::rt::as_i64(t86_1);
                                      
                                    },
                                    None => {
                                      {
                                        *((ptr0 + 40) as *mut u8) = (0i32) as u8;
                                        
                                      }
                                    },
                                  };
                                },
                              };
                              
                            },
                          };
                          
                          #[link(wasm_import_module = "ambient:bindings/component")]
                          extern "C" {
                            #[cfg_attr(target_arch = "wasm32", link_name = "set-component")]
                            #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/component_set-component")]
                            fn wit_import(
                            _: i32, );
                          }
                          wit_import(ptr0);
                          for (ptr, layout) in cleanup_list {
                            
                            if layout.size() != 0 {
                              
                              alloc::dealloc(ptr, layout);
                              
                            }
                            
                          }
                        }
                      }
                      #[allow(clippy::all)]
                      pub fn set_components(entity: EntityId,data: &Entity,){
                        
                        #[allow(unused_imports)]
                        use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                        unsafe {
                          let mut cleanup_list = Vec::new();
                          let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                          let vec87 = data;
                          let len87 = vec87.len() as i32;
                          let layout87 = alloc::Layout::from_size_align_unchecked(vec87.len() * 96, 8);
                          let result87 = if layout87.size() != 0
                          {
                            let ptr = alloc::alloc(layout87);
                            if ptr.is_null()
                            {
                              alloc::handle_alloc_error(layout87);
                            }
                            ptr
                          }else {
                            ::core::ptr::null_mut()
                          };
                          for (i, e) in vec87.into_iter().enumerate() {
                            let base = result87 as i32 + (i as i32) * 96;
                            {
                              let (t1_0, t1_1, ) = e;
                              *((base + 0) as *mut i32) = wit_bindgen::rt::as_i32(t1_0);
                              match t1_1 {
                                Value::TypeEmpty(e) => {
                                  *((base + 8) as *mut u8) = (0i32) as u8;
                                  let super::super::super::ambient::bindings::types::Empty{ dummy:dummy2, } = e;
                                  *((base + 16) as *mut u8) = (wit_bindgen::rt::as_i32(dummy2)) as u8;
                                  
                                },
                                Value::TypeBool(e) => {
                                  *((base + 8) as *mut u8) = (1i32) as u8;
                                  *((base + 16) as *mut u8) = (match e { true => 1, false => 0 }) as u8;
                                  
                                },
                                Value::TypeEntityId(e) => {
                                  *((base + 8) as *mut u8) = (2i32) as u8;
                                  let super::super::super::ambient::bindings::types::EntityId{ id0:id03, id1:id13, } = e;
                                  *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(id03);
                                  *((base + 24) as *mut i64) = wit_bindgen::rt::as_i64(id13);
                                  
                                },
                                Value::TypeF32(e) => {
                                  *((base + 8) as *mut u8) = (3i32) as u8;
                                  *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(e);
                                  
                                },
                                Value::TypeF64(e) => {
                                  *((base + 8) as *mut u8) = (4i32) as u8;
                                  *((base + 16) as *mut f64) = wit_bindgen::rt::as_f64(e);
                                  
                                },
                                Value::TypeMat4(e) => {
                                  *((base + 8) as *mut u8) = (5i32) as u8;
                                  let super::super::super::ambient::bindings::types::Mat4{ x:x4, y:y4, z:z4, w:w4, } = e;
                                  let super::super::super::ambient::bindings::types::Vec4{ x:x5, y:y5, z:z5, w:w5, } = x4;
                                  *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(x5);
                                  *((base + 20) as *mut f32) = wit_bindgen::rt::as_f32(y5);
                                  *((base + 24) as *mut f32) = wit_bindgen::rt::as_f32(z5);
                                  *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(w5);
                                  let super::super::super::ambient::bindings::types::Vec4{ x:x6, y:y6, z:z6, w:w6, } = y4;
                                  *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(x6);
                                  *((base + 36) as *mut f32) = wit_bindgen::rt::as_f32(y6);
                                  *((base + 40) as *mut f32) = wit_bindgen::rt::as_f32(z6);
                                  *((base + 44) as *mut f32) = wit_bindgen::rt::as_f32(w6);
                                  let super::super::super::ambient::bindings::types::Vec4{ x:x7, y:y7, z:z7, w:w7, } = z4;
                                  *((base + 48) as *mut f32) = wit_bindgen::rt::as_f32(x7);
                                  *((base + 52) as *mut f32) = wit_bindgen::rt::as_f32(y7);
                                  *((base + 56) as *mut f32) = wit_bindgen::rt::as_f32(z7);
                                  *((base + 60) as *mut f32) = wit_bindgen::rt::as_f32(w7);
                                  let super::super::super::ambient::bindings::types::Vec4{ x:x8, y:y8, z:z8, w:w8, } = w4;
                                  *((base + 64) as *mut f32) = wit_bindgen::rt::as_f32(x8);
                                  *((base + 68) as *mut f32) = wit_bindgen::rt::as_f32(y8);
                                  *((base + 72) as *mut f32) = wit_bindgen::rt::as_f32(z8);
                                  *((base + 76) as *mut f32) = wit_bindgen::rt::as_f32(w8);
                                  
                                },
                                Value::TypeQuat(e) => {
                                  *((base + 8) as *mut u8) = (6i32) as u8;
                                  let super::super::super::ambient::bindings::types::Quat{ x:x9, y:y9, z:z9, w:w9, } = e;
                                  *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(x9);
                                  *((base + 20) as *mut f32) = wit_bindgen::rt::as_f32(y9);
                                  *((base + 24) as *mut f32) = wit_bindgen::rt::as_f32(z9);
                                  *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(w9);
                                  
                                },
                                Value::TypeString(e) => {
                                  *((base + 8) as *mut u8) = (7i32) as u8;
                                  let vec10 = e;
                                  let ptr10 = vec10.as_ptr() as i32;
                                  let len10 = vec10.len() as i32;
                                  *((base + 20) as *mut i32) = len10;
                                  *((base + 16) as *mut i32) = ptr10;
                                  
                                },
                                Value::TypeU8(e) => {
                                  *((base + 8) as *mut u8) = (8i32) as u8;
                                  *((base + 16) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                                  
                                },
                                Value::TypeU16(e) => {
                                  *((base + 8) as *mut u8) = (9i32) as u8;
                                  *((base + 16) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                                  
                                },
                                Value::TypeU32(e) => {
                                  *((base + 8) as *mut u8) = (10i32) as u8;
                                  *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(e);
                                  
                                },
                                Value::TypeU64(e) => {
                                  *((base + 8) as *mut u8) = (11i32) as u8;
                                  *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(e);
                                  
                                },
                                Value::TypeI8(e) => {
                                  *((base + 8) as *mut u8) = (12i32) as u8;
                                  *((base + 16) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                                  
                                },
                                Value::TypeI16(e) => {
                                  *((base + 8) as *mut u8) = (13i32) as u8;
                                  *((base + 16) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                                  
                                },
                                Value::TypeI32(e) => {
                                  *((base + 8) as *mut u8) = (14i32) as u8;
                                  *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(e);
                                  
                                },
                                Value::TypeI64(e) => {
                                  *((base + 8) as *mut u8) = (15i32) as u8;
                                  *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(e);
                                  
                                },
                                Value::TypeVec2(e) => {
                                  *((base + 8) as *mut u8) = (16i32) as u8;
                                  let super::super::super::ambient::bindings::types::Vec2{ x:x11, y:y11, } = e;
                                  *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(x11);
                                  *((base + 20) as *mut f32) = wit_bindgen::rt::as_f32(y11);
                                  
                                },
                                Value::TypeVec3(e) => {
                                  *((base + 8) as *mut u8) = (17i32) as u8;
                                  let super::super::super::ambient::bindings::types::Vec3{ x:x12, y:y12, z:z12, } = e;
                                  *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(x12);
                                  *((base + 20) as *mut f32) = wit_bindgen::rt::as_f32(y12);
                                  *((base + 24) as *mut f32) = wit_bindgen::rt::as_f32(z12);
                                  
                                },
                                Value::TypeVec4(e) => {
                                  *((base + 8) as *mut u8) = (18i32) as u8;
                                  let super::super::super::ambient::bindings::types::Vec4{ x:x13, y:y13, z:z13, w:w13, } = e;
                                  *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(x13);
                                  *((base + 20) as *mut f32) = wit_bindgen::rt::as_f32(y13);
                                  *((base + 24) as *mut f32) = wit_bindgen::rt::as_f32(z13);
                                  *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(w13);
                                  
                                },
                                Value::TypeUvec2(e) => {
                                  *((base + 8) as *mut u8) = (19i32) as u8;
                                  let super::super::super::ambient::bindings::types::Uvec2{ x:x14, y:y14, } = e;
                                  *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x14);
                                  *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y14);
                                  
                                },
                                Value::TypeUvec3(e) => {
                                  *((base + 8) as *mut u8) = (20i32) as u8;
                                  let super::super::super::ambient::bindings::types::Uvec3{ x:x15, y:y15, z:z15, } = e;
                                  *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x15);
                                  *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y15);
                                  *((base + 24) as *mut i32) = wit_bindgen::rt::as_i32(z15);
                                  
                                },
                                Value::TypeUvec4(e) => {
                                  *((base + 8) as *mut u8) = (21i32) as u8;
                                  let super::super::super::ambient::bindings::types::Uvec4{ x:x16, y:y16, z:z16, w:w16, } = e;
                                  *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x16);
                                  *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y16);
                                  *((base + 24) as *mut i32) = wit_bindgen::rt::as_i32(z16);
                                  *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(w16);
                                  
                                },
                                Value::TypeIvec2(e) => {
                                  *((base + 8) as *mut u8) = (22i32) as u8;
                                  let super::super::super::ambient::bindings::types::Ivec2{ x:x17, y:y17, } = e;
                                  *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x17);
                                  *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y17);
                                  
                                },
                                Value::TypeIvec3(e) => {
                                  *((base + 8) as *mut u8) = (23i32) as u8;
                                  let super::super::super::ambient::bindings::types::Ivec3{ x:x18, y:y18, z:z18, } = e;
                                  *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x18);
                                  *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y18);
                                  *((base + 24) as *mut i32) = wit_bindgen::rt::as_i32(z18);
                                  
                                },
                                Value::TypeIvec4(e) => {
                                  *((base + 8) as *mut u8) = (24i32) as u8;
                                  let super::super::super::ambient::bindings::types::Ivec4{ x:x19, y:y19, z:z19, w:w19, } = e;
                                  *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x19);
                                  *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y19);
                                  *((base + 24) as *mut i32) = wit_bindgen::rt::as_i32(z19);
                                  *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(w19);
                                  
                                },
                                Value::TypeDuration(e) => {
                                  *((base + 8) as *mut u8) = (25i32) as u8;
                                  let super::super::super::ambient::bindings::types::Duration{ seconds:seconds20, nanoseconds:nanoseconds20, } = e;
                                  *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(seconds20);
                                  *((base + 24) as *mut i32) = wit_bindgen::rt::as_i32(nanoseconds20);
                                  
                                },
                                Value::TypeProceduralMeshHandle(e) => {
                                  *((base + 8) as *mut u8) = (26i32) as u8;
                                  let super::super::super::ambient::bindings::client_mesh::Handle{ ulid:ulid21, } = e;
                                  let (t22_0, t22_1, ) = ulid21;
                                  *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(t22_0);
                                  *((base + 24) as *mut i64) = wit_bindgen::rt::as_i64(t22_1);
                                  
                                },
                                Value::TypeProceduralTextureHandle(e) => {
                                  *((base + 8) as *mut u8) = (27i32) as u8;
                                  let super::super::super::ambient::bindings::client_texture::Handle{ ulid:ulid23, } = e;
                                  let (t24_0, t24_1, ) = ulid23;
                                  *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(t24_0);
                                  *((base + 24) as *mut i64) = wit_bindgen::rt::as_i64(t24_1);
                                  
                                },
                                Value::TypeProceduralSamplerHandle(e) => {
                                  *((base + 8) as *mut u8) = (28i32) as u8;
                                  let super::super::super::ambient::bindings::client_sampler::Handle{ ulid:ulid25, } = e;
                                  let (t26_0, t26_1, ) = ulid25;
                                  *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(t26_0);
                                  *((base + 24) as *mut i64) = wit_bindgen::rt::as_i64(t26_1);
                                  
                                },
                                Value::TypeProceduralMaterialHandle(e) => {
                                  *((base + 8) as *mut u8) = (29i32) as u8;
                                  let super::super::super::ambient::bindings::client_material::Handle{ ulid:ulid27, } = e;
                                  let (t28_0, t28_1, ) = ulid27;
                                  *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(t28_0);
                                  *((base + 24) as *mut i64) = wit_bindgen::rt::as_i64(t28_1);
                                  
                                },
                                Value::TypeVec(e) => {
                                  *((base + 8) as *mut u8) = (30i32) as u8;
                                  match e {
                                    VecValue::TypeEmpty(e) => {
                                      *((base + 16) as *mut u8) = (0i32) as u8;
                                      let vec29 = e;
                                      let ptr29 = vec29.as_ptr() as i32;
                                      let len29 = vec29.len() as i32;
                                      *((base + 24) as *mut i32) = len29;
                                      *((base + 20) as *mut i32) = ptr29;
                                      
                                    },
                                    VecValue::TypeBool(e) => {
                                      *((base + 16) as *mut u8) = (1i32) as u8;
                                      let vec30 = e;
                                      let len30 = vec30.len() as i32;
                                      let layout30 = alloc::Layout::from_size_align_unchecked(vec30.len() * 1, 1);
                                      let result30 = if layout30.size() != 0
                                      {
                                        let ptr = alloc::alloc(layout30);
                                        if ptr.is_null()
                                        {
                                          alloc::handle_alloc_error(layout30);
                                        }
                                        ptr
                                      }else {
                                        ::core::ptr::null_mut()
                                      };
                                      for (i, e) in vec30.into_iter().enumerate() {
                                        let base = result30 as i32 + (i as i32) * 1;
                                        {
                                          *((base + 0) as *mut u8) = (match e { true => 1, false => 0 }) as u8;
                                          
                                        }}
                                        *((base + 24) as *mut i32) = len30;
                                        *((base + 20) as *mut i32) = result30 as i32;
                                        cleanup_list.extend_from_slice(&[(result30, layout30),]);
                                        
                                      },
                                      VecValue::TypeEntityId(e) => {
                                        *((base + 16) as *mut u8) = (2i32) as u8;
                                        let vec31 = e;
                                        let ptr31 = vec31.as_ptr() as i32;
                                        let len31 = vec31.len() as i32;
                                        *((base + 24) as *mut i32) = len31;
                                        *((base + 20) as *mut i32) = ptr31;
                                        
                                      },
                                      VecValue::TypeF32(e) => {
                                        *((base + 16) as *mut u8) = (3i32) as u8;
                                        let vec32 = e;
                                        let ptr32 = vec32.as_ptr() as i32;
                                        let len32 = vec32.len() as i32;
                                        *((base + 24) as *mut i32) = len32;
                                        *((base + 20) as *mut i32) = ptr32;
                                        
                                      },
                                      VecValue::TypeF64(e) => {
                                        *((base + 16) as *mut u8) = (4i32) as u8;
                                        let vec33 = e;
                                        let ptr33 = vec33.as_ptr() as i32;
                                        let len33 = vec33.len() as i32;
                                        *((base + 24) as *mut i32) = len33;
                                        *((base + 20) as *mut i32) = ptr33;
                                        
                                      },
                                      VecValue::TypeMat4(e) => {
                                        *((base + 16) as *mut u8) = (5i32) as u8;
                                        let vec34 = e;
                                        let ptr34 = vec34.as_ptr() as i32;
                                        let len34 = vec34.len() as i32;
                                        *((base + 24) as *mut i32) = len34;
                                        *((base + 20) as *mut i32) = ptr34;
                                        
                                      },
                                      VecValue::TypeQuat(e) => {
                                        *((base + 16) as *mut u8) = (6i32) as u8;
                                        let vec35 = e;
                                        let ptr35 = vec35.as_ptr() as i32;
                                        let len35 = vec35.len() as i32;
                                        *((base + 24) as *mut i32) = len35;
                                        *((base + 20) as *mut i32) = ptr35;
                                        
                                      },
                                      VecValue::TypeString(e) => {
                                        *((base + 16) as *mut u8) = (7i32) as u8;
                                        let vec37 = e;
                                        let len37 = vec37.len() as i32;
                                        let layout37 = alloc::Layout::from_size_align_unchecked(vec37.len() * 8, 4);
                                        let result37 = if layout37.size() != 0
                                        {
                                          let ptr = alloc::alloc(layout37);
                                          if ptr.is_null()
                                          {
                                            alloc::handle_alloc_error(layout37);
                                          }
                                          ptr
                                        }else {
                                          ::core::ptr::null_mut()
                                        };
                                        for (i, e) in vec37.into_iter().enumerate() {
                                          let base = result37 as i32 + (i as i32) * 8;
                                          {
                                            let vec36 = e;
                                            let ptr36 = vec36.as_ptr() as i32;
                                            let len36 = vec36.len() as i32;
                                            *((base + 4) as *mut i32) = len36;
                                            *((base + 0) as *mut i32) = ptr36;
                                            
                                          }}
                                          *((base + 24) as *mut i32) = len37;
                                          *((base + 20) as *mut i32) = result37 as i32;
                                          cleanup_list.extend_from_slice(&[(result37, layout37),]);
                                          
                                        },
                                        VecValue::TypeU8(e) => {
                                          *((base + 16) as *mut u8) = (8i32) as u8;
                                          let vec38 = e;
                                          let ptr38 = vec38.as_ptr() as i32;
                                          let len38 = vec38.len() as i32;
                                          *((base + 24) as *mut i32) = len38;
                                          *((base + 20) as *mut i32) = ptr38;
                                          
                                        },
                                        VecValue::TypeU16(e) => {
                                          *((base + 16) as *mut u8) = (9i32) as u8;
                                          let vec39 = e;
                                          let ptr39 = vec39.as_ptr() as i32;
                                          let len39 = vec39.len() as i32;
                                          *((base + 24) as *mut i32) = len39;
                                          *((base + 20) as *mut i32) = ptr39;
                                          
                                        },
                                        VecValue::TypeU32(e) => {
                                          *((base + 16) as *mut u8) = (10i32) as u8;
                                          let vec40 = e;
                                          let ptr40 = vec40.as_ptr() as i32;
                                          let len40 = vec40.len() as i32;
                                          *((base + 24) as *mut i32) = len40;
                                          *((base + 20) as *mut i32) = ptr40;
                                          
                                        },
                                        VecValue::TypeU64(e) => {
                                          *((base + 16) as *mut u8) = (11i32) as u8;
                                          let vec41 = e;
                                          let ptr41 = vec41.as_ptr() as i32;
                                          let len41 = vec41.len() as i32;
                                          *((base + 24) as *mut i32) = len41;
                                          *((base + 20) as *mut i32) = ptr41;
                                          
                                        },
                                        VecValue::TypeI8(e) => {
                                          *((base + 16) as *mut u8) = (12i32) as u8;
                                          let vec42 = e;
                                          let ptr42 = vec42.as_ptr() as i32;
                                          let len42 = vec42.len() as i32;
                                          *((base + 24) as *mut i32) = len42;
                                          *((base + 20) as *mut i32) = ptr42;
                                          
                                        },
                                        VecValue::TypeI16(e) => {
                                          *((base + 16) as *mut u8) = (13i32) as u8;
                                          let vec43 = e;
                                          let ptr43 = vec43.as_ptr() as i32;
                                          let len43 = vec43.len() as i32;
                                          *((base + 24) as *mut i32) = len43;
                                          *((base + 20) as *mut i32) = ptr43;
                                          
                                        },
                                        VecValue::TypeI32(e) => {
                                          *((base + 16) as *mut u8) = (14i32) as u8;
                                          let vec44 = e;
                                          let ptr44 = vec44.as_ptr() as i32;
                                          let len44 = vec44.len() as i32;
                                          *((base + 24) as *mut i32) = len44;
                                          *((base + 20) as *mut i32) = ptr44;
                                          
                                        },
                                        VecValue::TypeI64(e) => {
                                          *((base + 16) as *mut u8) = (15i32) as u8;
                                          let vec45 = e;
                                          let ptr45 = vec45.as_ptr() as i32;
                                          let len45 = vec45.len() as i32;
                                          *((base + 24) as *mut i32) = len45;
                                          *((base + 20) as *mut i32) = ptr45;
                                          
                                        },
                                        VecValue::TypeVec2(e) => {
                                          *((base + 16) as *mut u8) = (16i32) as u8;
                                          let vec46 = e;
                                          let ptr46 = vec46.as_ptr() as i32;
                                          let len46 = vec46.len() as i32;
                                          *((base + 24) as *mut i32) = len46;
                                          *((base + 20) as *mut i32) = ptr46;
                                          
                                        },
                                        VecValue::TypeVec3(e) => {
                                          *((base + 16) as *mut u8) = (17i32) as u8;
                                          let vec47 = e;
                                          let ptr47 = vec47.as_ptr() as i32;
                                          let len47 = vec47.len() as i32;
                                          *((base + 24) as *mut i32) = len47;
                                          *((base + 20) as *mut i32) = ptr47;
                                          
                                        },
                                        VecValue::TypeVec4(e) => {
                                          *((base + 16) as *mut u8) = (18i32) as u8;
                                          let vec48 = e;
                                          let ptr48 = vec48.as_ptr() as i32;
                                          let len48 = vec48.len() as i32;
                                          *((base + 24) as *mut i32) = len48;
                                          *((base + 20) as *mut i32) = ptr48;
                                          
                                        },
                                        VecValue::TypeUvec2(e) => {
                                          *((base + 16) as *mut u8) = (19i32) as u8;
                                          let vec49 = e;
                                          let ptr49 = vec49.as_ptr() as i32;
                                          let len49 = vec49.len() as i32;
                                          *((base + 24) as *mut i32) = len49;
                                          *((base + 20) as *mut i32) = ptr49;
                                          
                                        },
                                        VecValue::TypeUvec3(e) => {
                                          *((base + 16) as *mut u8) = (20i32) as u8;
                                          let vec50 = e;
                                          let ptr50 = vec50.as_ptr() as i32;
                                          let len50 = vec50.len() as i32;
                                          *((base + 24) as *mut i32) = len50;
                                          *((base + 20) as *mut i32) = ptr50;
                                          
                                        },
                                        VecValue::TypeUvec4(e) => {
                                          *((base + 16) as *mut u8) = (21i32) as u8;
                                          let vec51 = e;
                                          let ptr51 = vec51.as_ptr() as i32;
                                          let len51 = vec51.len() as i32;
                                          *((base + 24) as *mut i32) = len51;
                                          *((base + 20) as *mut i32) = ptr51;
                                          
                                        },
                                        VecValue::TypeIvec2(e) => {
                                          *((base + 16) as *mut u8) = (22i32) as u8;
                                          let vec52 = e;
                                          let ptr52 = vec52.as_ptr() as i32;
                                          let len52 = vec52.len() as i32;
                                          *((base + 24) as *mut i32) = len52;
                                          *((base + 20) as *mut i32) = ptr52;
                                          
                                        },
                                        VecValue::TypeIvec3(e) => {
                                          *((base + 16) as *mut u8) = (23i32) as u8;
                                          let vec53 = e;
                                          let ptr53 = vec53.as_ptr() as i32;
                                          let len53 = vec53.len() as i32;
                                          *((base + 24) as *mut i32) = len53;
                                          *((base + 20) as *mut i32) = ptr53;
                                          
                                        },
                                        VecValue::TypeIvec4(e) => {
                                          *((base + 16) as *mut u8) = (24i32) as u8;
                                          let vec54 = e;
                                          let ptr54 = vec54.as_ptr() as i32;
                                          let len54 = vec54.len() as i32;
                                          *((base + 24) as *mut i32) = len54;
                                          *((base + 20) as *mut i32) = ptr54;
                                          
                                        },
                                        VecValue::TypeDuration(e) => {
                                          *((base + 16) as *mut u8) = (25i32) as u8;
                                          let vec55 = e;
                                          let ptr55 = vec55.as_ptr() as i32;
                                          let len55 = vec55.len() as i32;
                                          *((base + 24) as *mut i32) = len55;
                                          *((base + 20) as *mut i32) = ptr55;
                                          
                                        },
                                        VecValue::TypeProceduralMeshHandle(e) => {
                                          *((base + 16) as *mut u8) = (26i32) as u8;
                                          let vec56 = e;
                                          let ptr56 = vec56.as_ptr() as i32;
                                          let len56 = vec56.len() as i32;
                                          *((base + 24) as *mut i32) = len56;
                                          *((base + 20) as *mut i32) = ptr56;
                                          
                                        },
                                        VecValue::TypeProceduralTextureHandle(e) => {
                                          *((base + 16) as *mut u8) = (27i32) as u8;
                                          let vec57 = e;
                                          let ptr57 = vec57.as_ptr() as i32;
                                          let len57 = vec57.len() as i32;
                                          *((base + 24) as *mut i32) = len57;
                                          *((base + 20) as *mut i32) = ptr57;
                                          
                                        },
                                        VecValue::TypeProceduralSamplerHandle(e) => {
                                          *((base + 16) as *mut u8) = (28i32) as u8;
                                          let vec58 = e;
                                          let ptr58 = vec58.as_ptr() as i32;
                                          let len58 = vec58.len() as i32;
                                          *((base + 24) as *mut i32) = len58;
                                          *((base + 20) as *mut i32) = ptr58;
                                          
                                        },
                                        VecValue::TypeProceduralMaterialHandle(e) => {
                                          *((base + 16) as *mut u8) = (29i32) as u8;
                                          let vec59 = e;
                                          let ptr59 = vec59.as_ptr() as i32;
                                          let len59 = vec59.len() as i32;
                                          *((base + 24) as *mut i32) = len59;
                                          *((base + 20) as *mut i32) = ptr59;
                                          
                                        },
                                      };
                                      
                                    },
                                    Value::TypeOption(e) => {
                                      *((base + 8) as *mut u8) = (31i32) as u8;
                                      match e {
                                        OptionValue::TypeEmpty(e) => {
                                          *((base + 16) as *mut u8) = (0i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::types::Empty{ dummy:dummy60, } = e;
                                              *((base + 25) as *mut u8) = (wit_bindgen::rt::as_i32(dummy60)) as u8;
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeBool(e) => {
                                          *((base + 16) as *mut u8) = (1i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              *((base + 25) as *mut u8) = (match e { true => 1, false => 0 }) as u8;
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeEntityId(e) => {
                                          *((base + 16) as *mut u8) = (2i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::types::EntityId{ id0:id061, id1:id161, } = e;
                                              *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(id061);
                                              *((base + 40) as *mut i64) = wit_bindgen::rt::as_i64(id161);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeF32(e) => {
                                          *((base + 16) as *mut u8) = (3i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(e);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeF64(e) => {
                                          *((base + 16) as *mut u8) = (4i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              *((base + 32) as *mut f64) = wit_bindgen::rt::as_f64(e);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeMat4(e) => {
                                          *((base + 16) as *mut u8) = (5i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::types::Mat4{ x:x62, y:y62, z:z62, w:w62, } = e;
                                              let super::super::super::ambient::bindings::types::Vec4{ x:x63, y:y63, z:z63, w:w63, } = x62;
                                              *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(x63);
                                              *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(y63);
                                              *((base + 36) as *mut f32) = wit_bindgen::rt::as_f32(z63);
                                              *((base + 40) as *mut f32) = wit_bindgen::rt::as_f32(w63);
                                              let super::super::super::ambient::bindings::types::Vec4{ x:x64, y:y64, z:z64, w:w64, } = y62;
                                              *((base + 44) as *mut f32) = wit_bindgen::rt::as_f32(x64);
                                              *((base + 48) as *mut f32) = wit_bindgen::rt::as_f32(y64);
                                              *((base + 52) as *mut f32) = wit_bindgen::rt::as_f32(z64);
                                              *((base + 56) as *mut f32) = wit_bindgen::rt::as_f32(w64);
                                              let super::super::super::ambient::bindings::types::Vec4{ x:x65, y:y65, z:z65, w:w65, } = z62;
                                              *((base + 60) as *mut f32) = wit_bindgen::rt::as_f32(x65);
                                              *((base + 64) as *mut f32) = wit_bindgen::rt::as_f32(y65);
                                              *((base + 68) as *mut f32) = wit_bindgen::rt::as_f32(z65);
                                              *((base + 72) as *mut f32) = wit_bindgen::rt::as_f32(w65);
                                              let super::super::super::ambient::bindings::types::Vec4{ x:x66, y:y66, z:z66, w:w66, } = w62;
                                              *((base + 76) as *mut f32) = wit_bindgen::rt::as_f32(x66);
                                              *((base + 80) as *mut f32) = wit_bindgen::rt::as_f32(y66);
                                              *((base + 84) as *mut f32) = wit_bindgen::rt::as_f32(z66);
                                              *((base + 88) as *mut f32) = wit_bindgen::rt::as_f32(w66);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeQuat(e) => {
                                          *((base + 16) as *mut u8) = (6i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::types::Quat{ x:x67, y:y67, z:z67, w:w67, } = e;
                                              *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(x67);
                                              *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(y67);
                                              *((base + 36) as *mut f32) = wit_bindgen::rt::as_f32(z67);
                                              *((base + 40) as *mut f32) = wit_bindgen::rt::as_f32(w67);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeString(e) => {
                                          *((base + 16) as *mut u8) = (7i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let vec68 = e;
                                              let ptr68 = vec68.as_ptr() as i32;
                                              let len68 = vec68.len() as i32;
                                              *((base + 32) as *mut i32) = len68;
                                              *((base + 28) as *mut i32) = ptr68;
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeU8(e) => {
                                          *((base + 16) as *mut u8) = (8i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              *((base + 25) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeU16(e) => {
                                          *((base + 16) as *mut u8) = (9i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              *((base + 26) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeU32(e) => {
                                          *((base + 16) as *mut u8) = (10i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(e);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeU64(e) => {
                                          *((base + 16) as *mut u8) = (11i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(e);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeI8(e) => {
                                          *((base + 16) as *mut u8) = (12i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              *((base + 25) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeI16(e) => {
                                          *((base + 16) as *mut u8) = (13i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              *((base + 26) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeI32(e) => {
                                          *((base + 16) as *mut u8) = (14i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(e);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeI64(e) => {
                                          *((base + 16) as *mut u8) = (15i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(e);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeVec2(e) => {
                                          *((base + 16) as *mut u8) = (16i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::types::Vec2{ x:x69, y:y69, } = e;
                                              *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(x69);
                                              *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(y69);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeVec3(e) => {
                                          *((base + 16) as *mut u8) = (17i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::types::Vec3{ x:x70, y:y70, z:z70, } = e;
                                              *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(x70);
                                              *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(y70);
                                              *((base + 36) as *mut f32) = wit_bindgen::rt::as_f32(z70);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeVec4(e) => {
                                          *((base + 16) as *mut u8) = (18i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::types::Vec4{ x:x71, y:y71, z:z71, w:w71, } = e;
                                              *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(x71);
                                              *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(y71);
                                              *((base + 36) as *mut f32) = wit_bindgen::rt::as_f32(z71);
                                              *((base + 40) as *mut f32) = wit_bindgen::rt::as_f32(w71);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeUvec2(e) => {
                                          *((base + 16) as *mut u8) = (19i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::types::Uvec2{ x:x72, y:y72, } = e;
                                              *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x72);
                                              *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y72);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeUvec3(e) => {
                                          *((base + 16) as *mut u8) = (20i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::types::Uvec3{ x:x73, y:y73, z:z73, } = e;
                                              *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x73);
                                              *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y73);
                                              *((base + 36) as *mut i32) = wit_bindgen::rt::as_i32(z73);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeUvec4(e) => {
                                          *((base + 16) as *mut u8) = (21i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::types::Uvec4{ x:x74, y:y74, z:z74, w:w74, } = e;
                                              *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x74);
                                              *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y74);
                                              *((base + 36) as *mut i32) = wit_bindgen::rt::as_i32(z74);
                                              *((base + 40) as *mut i32) = wit_bindgen::rt::as_i32(w74);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeIvec2(e) => {
                                          *((base + 16) as *mut u8) = (22i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::types::Ivec2{ x:x75, y:y75, } = e;
                                              *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x75);
                                              *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y75);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeIvec3(e) => {
                                          *((base + 16) as *mut u8) = (23i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::types::Ivec3{ x:x76, y:y76, z:z76, } = e;
                                              *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x76);
                                              *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y76);
                                              *((base + 36) as *mut i32) = wit_bindgen::rt::as_i32(z76);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeIvec4(e) => {
                                          *((base + 16) as *mut u8) = (24i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::types::Ivec4{ x:x77, y:y77, z:z77, w:w77, } = e;
                                              *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x77);
                                              *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y77);
                                              *((base + 36) as *mut i32) = wit_bindgen::rt::as_i32(z77);
                                              *((base + 40) as *mut i32) = wit_bindgen::rt::as_i32(w77);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeDuration(e) => {
                                          *((base + 16) as *mut u8) = (25i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::types::Duration{ seconds:seconds78, nanoseconds:nanoseconds78, } = e;
                                              *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(seconds78);
                                              *((base + 40) as *mut i32) = wit_bindgen::rt::as_i32(nanoseconds78);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeProceduralMeshHandle(e) => {
                                          *((base + 16) as *mut u8) = (26i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::client_mesh::Handle{ ulid:ulid79, } = e;
                                              let (t80_0, t80_1, ) = ulid79;
                                              *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(t80_0);
                                              *((base + 40) as *mut i64) = wit_bindgen::rt::as_i64(t80_1);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeProceduralTextureHandle(e) => {
                                          *((base + 16) as *mut u8) = (27i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::client_texture::Handle{ ulid:ulid81, } = e;
                                              let (t82_0, t82_1, ) = ulid81;
                                              *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(t82_0);
                                              *((base + 40) as *mut i64) = wit_bindgen::rt::as_i64(t82_1);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeProceduralSamplerHandle(e) => {
                                          *((base + 16) as *mut u8) = (28i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::client_sampler::Handle{ ulid:ulid83, } = e;
                                              let (t84_0, t84_1, ) = ulid83;
                                              *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(t84_0);
                                              *((base + 40) as *mut i64) = wit_bindgen::rt::as_i64(t84_1);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                        OptionValue::TypeProceduralMaterialHandle(e) => {
                                          *((base + 16) as *mut u8) = (29i32) as u8;
                                          match e {
                                            Some(e) => {
                                              *((base + 24) as *mut u8) = (1i32) as u8;
                                              let super::super::super::ambient::bindings::client_material::Handle{ ulid:ulid85, } = e;
                                              let (t86_0, t86_1, ) = ulid85;
                                              *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(t86_0);
                                              *((base + 40) as *mut i64) = wit_bindgen::rt::as_i64(t86_1);
                                              
                                            },
                                            None => {
                                              {
                                                *((base + 24) as *mut u8) = (0i32) as u8;
                                                
                                              }
                                            },
                                          };
                                        },
                                      };
                                      
                                    },
                                  };
                                  
                                }}
                                
                                #[link(wasm_import_module = "ambient:bindings/component")]
                                extern "C" {
                                  #[cfg_attr(target_arch = "wasm32", link_name = "set-components")]
                                  #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/component_set-components")]
                                  fn wit_import(
                                  _: i64, _: i64, _: i32, _: i32, );
                                }
                                wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), result87 as i32, len87);
                                if layout87.size() != 0 {
                                  alloc::dealloc(result87, layout87);
                                }
                                for (ptr, layout) in cleanup_list {
                                  
                                  if layout.size() != 0 {
                                    
                                    alloc::dealloc(ptr, layout);
                                    
                                  }
                                  
                                }
                              }
                            }
                            #[allow(clippy::all)]
                            pub fn has_component(entity: EntityId,index: u32,) -> bool{
                              
                              #[allow(unused_imports)]
                              use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                              unsafe {
                                let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                
                                #[link(wasm_import_module = "ambient:bindings/component")]
                                extern "C" {
                                  #[cfg_attr(target_arch = "wasm32", link_name = "has-component")]
                                  #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/component_has-component")]
                                  fn wit_import(
                                  _: i64, _: i64, _: i32, ) -> i32;
                                }
                                let ret = wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), wit_bindgen::rt::as_i32(index));
                                {
                                  #[cfg(not(debug_assertions))]
                                  { ::core::mem::transmute::<u8, bool>(ret as u8) }
                                  #[cfg(debug_assertions)]
                                  {
                                    match ret {
                                      0 => false,
                                      1 => true,
                                      _ => panic!("invalid bool discriminant"),
                                    }
                                  }
                                }
                              }
                            }
                            #[allow(clippy::all)]
                            pub fn has_components(entity: EntityId,indices: &[u32],) -> bool{
                              
                              #[allow(unused_imports)]
                              use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                              unsafe {
                                let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                let vec1 = indices;
                                let ptr1 = vec1.as_ptr() as i32;
                                let len1 = vec1.len() as i32;
                                
                                #[link(wasm_import_module = "ambient:bindings/component")]
                                extern "C" {
                                  #[cfg_attr(target_arch = "wasm32", link_name = "has-components")]
                                  #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/component_has-components")]
                                  fn wit_import(
                                  _: i64, _: i64, _: i32, _: i32, ) -> i32;
                                }
                                let ret = wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), ptr1, len1);
                                {
                                  #[cfg(not(debug_assertions))]
                                  { ::core::mem::transmute::<u8, bool>(ret as u8) }
                                  #[cfg(debug_assertions)]
                                  {
                                    match ret {
                                      0 => false,
                                      1 => true,
                                      _ => panic!("invalid bool discriminant"),
                                    }
                                  }
                                }
                              }
                            }
                            #[allow(clippy::all)]
                            pub fn remove_component(entity: EntityId,index: u32,){
                              
                              #[allow(unused_imports)]
                              use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                              unsafe {
                                let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                
                                #[link(wasm_import_module = "ambient:bindings/component")]
                                extern "C" {
                                  #[cfg_attr(target_arch = "wasm32", link_name = "remove-component")]
                                  #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/component_remove-component")]
                                  fn wit_import(
                                  _: i64, _: i64, _: i32, );
                                }
                                wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), wit_bindgen::rt::as_i32(index));
                              }
                            }
                            #[allow(clippy::all)]
                            pub fn remove_components(entity: EntityId,indices: &[u32],){
                              
                              #[allow(unused_imports)]
                              use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                              unsafe {
                                let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                let vec1 = indices;
                                let ptr1 = vec1.as_ptr() as i32;
                                let len1 = vec1.len() as i32;
                                
                                #[link(wasm_import_module = "ambient:bindings/component")]
                                extern "C" {
                                  #[cfg_attr(target_arch = "wasm32", link_name = "remove-components")]
                                  #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/component_remove-components")]
                                  fn wit_import(
                                  _: i64, _: i64, _: i32, _: i32, );
                                }
                                wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), ptr1, len1);
                              }
                            }
                            #[allow(clippy::all)]
                            pub fn query(q: &QueryBuild,t: QueryEvent,) -> u64{
                              
                              #[allow(unused_imports)]
                              use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                              unsafe {
                                let QueryBuild{ components:components0, includes:includes0, excludes:excludes0, changed:changed0, } = q;
                                let vec1 = components0;
                                let ptr1 = vec1.as_ptr() as i32;
                                let len1 = vec1.len() as i32;
                                let vec2 = includes0;
                                let ptr2 = vec2.as_ptr() as i32;
                                let len2 = vec2.len() as i32;
                                let vec3 = excludes0;
                                let ptr3 = vec3.as_ptr() as i32;
                                let len3 = vec3.len() as i32;
                                let vec4 = changed0;
                                let ptr4 = vec4.as_ptr() as i32;
                                let len4 = vec4.len() as i32;
                                
                                #[link(wasm_import_module = "ambient:bindings/component")]
                                extern "C" {
                                  #[cfg_attr(target_arch = "wasm32", link_name = "query")]
                                  #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/component_query")]
                                  fn wit_import(
                                  _: i32, _: i32, _: i32, _: i32, _: i32, _: i32, _: i32, _: i32, _: i32, ) -> i64;
                                }
                                let ret = wit_import(ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, match t {
                                  QueryEvent::Frame => 0,
                                  QueryEvent::Spawn => 1,
                                  QueryEvent::Despawn => 2,
                                });
                                ret as u64
                              }
                            }
                            #[allow(clippy::all)]
                            pub fn query_eval(q: u64,) -> wit_bindgen::rt::vec::Vec::<(EntityId,wit_bindgen::rt::vec::Vec::<Value>,)>{
                              
                              #[allow(unused_imports)]
                              use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                              unsafe {
                                
                                #[repr(align(4))]
                                struct RetArea([u8; 8]);
                                let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                let ptr0 = ret_area.as_mut_ptr() as i32;
                                #[link(wasm_import_module = "ambient:bindings/component")]
                                extern "C" {
                                  #[cfg_attr(target_arch = "wasm32", link_name = "query-eval")]
                                  #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/component_query-eval")]
                                  fn wit_import(
                                  _: i64, _: i32, );
                                }
                                wit_import(wit_bindgen::rt::as_i64(q), ptr0);
                                let base35 = *((ptr0 + 0) as *const i32);
                                let len35 = *((ptr0 + 4) as *const i32);
                                let mut result35 = Vec::with_capacity(len35 as usize);
                                for i in 0..len35 {
                                  let base = base35 + i *24;
                                  result35.push({
                                    let base34 = *((base + 16) as *const i32);
                                    let len34 = *((base + 20) as *const i32);
                                    let mut result34 = Vec::with_capacity(len34 as usize);
                                    for i in 0..len34 {
                                      let base = base34 + i *88;
                                      result34.push({{match i32::from(*((base + 0) as *const u8)) {
                                        0 => Value::TypeEmpty(super::super::super::ambient::bindings::types::Empty{dummy:i32::from(*((base + 8) as *const u8)) as u8, }),
                                        1 => Value::TypeBool({
                                          #[cfg(not(debug_assertions))]
                                          { ::core::mem::transmute::<u8, bool>(i32::from(*((base + 8) as *const u8)) as u8) }
                                          #[cfg(debug_assertions)]
                                          {
                                            match i32::from(*((base + 8) as *const u8)) {
                                              0 => false,
                                              1 => true,
                                              _ => panic!("invalid bool discriminant"),
                                            }
                                          }
                                        }),
                                        2 => Value::TypeEntityId(super::super::super::ambient::bindings::types::EntityId{id0:*((base + 8) as *const i64) as u64, id1:*((base + 16) as *const i64) as u64, }),
                                        3 => Value::TypeF32(*((base + 8) as *const f32)),
                                        4 => Value::TypeF64(*((base + 8) as *const f64)),
                                        5 => Value::TypeMat4(super::super::super::ambient::bindings::types::Mat4{x:super::super::super::ambient::bindings::types::Vec4{x:*((base + 8) as *const f32), y:*((base + 12) as *const f32), z:*((base + 16) as *const f32), w:*((base + 20) as *const f32), }, y:super::super::super::ambient::bindings::types::Vec4{x:*((base + 24) as *const f32), y:*((base + 28) as *const f32), z:*((base + 32) as *const f32), w:*((base + 36) as *const f32), }, z:super::super::super::ambient::bindings::types::Vec4{x:*((base + 40) as *const f32), y:*((base + 44) as *const f32), z:*((base + 48) as *const f32), w:*((base + 52) as *const f32), }, w:super::super::super::ambient::bindings::types::Vec4{x:*((base + 56) as *const f32), y:*((base + 60) as *const f32), z:*((base + 64) as *const f32), w:*((base + 68) as *const f32), }, }),
                                        6 => Value::TypeQuat(super::super::super::ambient::bindings::types::Quat{x:*((base + 8) as *const f32), y:*((base + 12) as *const f32), z:*((base + 16) as *const f32), w:*((base + 20) as *const f32), }),
                                        7 => Value::TypeString({
                                          let len1 = *((base + 12) as *const i32) as usize;
                                          
                                          {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((base + 8) as *const i32) as *mut _, len1, len1))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((base + 8) as *const i32) as *mut _, len1, len1)).unwrap()}}
                                        }),
                                        8 => Value::TypeU8(i32::from(*((base + 8) as *const u8)) as u8),
                                        9 => Value::TypeU16(i32::from(*((base + 8) as *const u16)) as u16),
                                        10 => Value::TypeU32(*((base + 8) as *const i32) as u32),
                                        11 => Value::TypeU64(*((base + 8) as *const i64) as u64),
                                        12 => Value::TypeI8(i32::from(*((base + 8) as *const i8)) as i8),
                                        13 => Value::TypeI16(i32::from(*((base + 8) as *const i16)) as i16),
                                        14 => Value::TypeI32(*((base + 8) as *const i32)),
                                        15 => Value::TypeI64(*((base + 8) as *const i64)),
                                        16 => Value::TypeVec2(super::super::super::ambient::bindings::types::Vec2{x:*((base + 8) as *const f32), y:*((base + 12) as *const f32), }),
                                        17 => Value::TypeVec3(super::super::super::ambient::bindings::types::Vec3{x:*((base + 8) as *const f32), y:*((base + 12) as *const f32), z:*((base + 16) as *const f32), }),
                                        18 => Value::TypeVec4(super::super::super::ambient::bindings::types::Vec4{x:*((base + 8) as *const f32), y:*((base + 12) as *const f32), z:*((base + 16) as *const f32), w:*((base + 20) as *const f32), }),
                                        19 => Value::TypeUvec2(super::super::super::ambient::bindings::types::Uvec2{x:*((base + 8) as *const i32) as u32, y:*((base + 12) as *const i32) as u32, }),
                                        20 => Value::TypeUvec3(super::super::super::ambient::bindings::types::Uvec3{x:*((base + 8) as *const i32) as u32, y:*((base + 12) as *const i32) as u32, z:*((base + 16) as *const i32) as u32, }),
                                        21 => Value::TypeUvec4(super::super::super::ambient::bindings::types::Uvec4{x:*((base + 8) as *const i32) as u32, y:*((base + 12) as *const i32) as u32, z:*((base + 16) as *const i32) as u32, w:*((base + 20) as *const i32) as u32, }),
                                        22 => Value::TypeIvec2(super::super::super::ambient::bindings::types::Ivec2{x:*((base + 8) as *const i32), y:*((base + 12) as *const i32), }),
                                        23 => Value::TypeIvec3(super::super::super::ambient::bindings::types::Ivec3{x:*((base + 8) as *const i32), y:*((base + 12) as *const i32), z:*((base + 16) as *const i32), }),
                                        24 => Value::TypeIvec4(super::super::super::ambient::bindings::types::Ivec4{x:*((base + 8) as *const i32), y:*((base + 12) as *const i32), z:*((base + 16) as *const i32), w:*((base + 20) as *const i32), }),
                                        25 => Value::TypeDuration(super::super::super::ambient::bindings::types::Duration{seconds:*((base + 8) as *const i64) as u64, nanoseconds:*((base + 16) as *const i32) as u32, }),
                                        26 => Value::TypeProceduralMeshHandle(super::super::super::ambient::bindings::client_mesh::Handle{ulid:(*((base + 8) as *const i64) as u64, *((base + 16) as *const i64) as u64), }),
                                        27 => Value::TypeProceduralTextureHandle(super::super::super::ambient::bindings::client_texture::Handle{ulid:(*((base + 8) as *const i64) as u64, *((base + 16) as *const i64) as u64), }),
                                        28 => Value::TypeProceduralSamplerHandle(super::super::super::ambient::bindings::client_sampler::Handle{ulid:(*((base + 8) as *const i64) as u64, *((base + 16) as *const i64) as u64), }),
                                        29 => Value::TypeProceduralMaterialHandle(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 8) as *const i64) as u64, *((base + 16) as *const i64) as u64), }),
                                        30 => Value::TypeVec({{match i32::from(*((base + 8) as *const u8)) {
                                          0 => VecValue::TypeEmpty({
                                            let len2 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len2, len2)
                                          }),
                                          1 => VecValue::TypeBool({
                                            let base3 = *((base + 12) as *const i32);
                                            let len3 = *((base + 16) as *const i32);
                                            let mut result3 = Vec::with_capacity(len3 as usize);
                                            for i in 0..len3 {
                                              let base = base3 + i *1;
                                              result3.push({
                                                #[cfg(not(debug_assertions))]
                                                { ::core::mem::transmute::<u8, bool>(i32::from(*((base + 0) as *const u8)) as u8) }
                                                #[cfg(debug_assertions)]
                                                {
                                                  match i32::from(*((base + 0) as *const u8)) {
                                                    0 => false,
                                                    1 => true,
                                                    _ => panic!("invalid bool discriminant"),
                                                  }
                                                }
                                              });
                                            }
                                            wit_bindgen::rt::dealloc(base3, (len3 as usize) * 1, 1);
                                            
                                            result3
                                          }),
                                          2 => VecValue::TypeEntityId({
                                            let len4 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len4, len4)
                                          }),
                                          3 => VecValue::TypeF32({
                                            let len5 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len5, len5)
                                          }),
                                          4 => VecValue::TypeF64({
                                            let len6 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len6, len6)
                                          }),
                                          5 => VecValue::TypeMat4({
                                            let len7 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len7, len7)
                                          }),
                                          6 => VecValue::TypeQuat({
                                            let len8 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len8, len8)
                                          }),
                                          7 => VecValue::TypeString({
                                            let base10 = *((base + 12) as *const i32);
                                            let len10 = *((base + 16) as *const i32);
                                            let mut result10 = Vec::with_capacity(len10 as usize);
                                            for i in 0..len10 {
                                              let base = base10 + i *8;
                                              result10.push({
                                                let len9 = *((base + 4) as *const i32) as usize;
                                                
                                                {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((base + 0) as *const i32) as *mut _, len9, len9))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((base + 0) as *const i32) as *mut _, len9, len9)).unwrap()}}
                                              });
                                            }
                                            wit_bindgen::rt::dealloc(base10, (len10 as usize) * 8, 4);
                                            
                                            result10
                                          }),
                                          8 => VecValue::TypeU8({
                                            let len11 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len11, len11)
                                          }),
                                          9 => VecValue::TypeU16({
                                            let len12 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len12, len12)
                                          }),
                                          10 => VecValue::TypeU32({
                                            let len13 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len13, len13)
                                          }),
                                          11 => VecValue::TypeU64({
                                            let len14 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len14, len14)
                                          }),
                                          12 => VecValue::TypeI8({
                                            let len15 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len15, len15)
                                          }),
                                          13 => VecValue::TypeI16({
                                            let len16 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len16, len16)
                                          }),
                                          14 => VecValue::TypeI32({
                                            let len17 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len17, len17)
                                          }),
                                          15 => VecValue::TypeI64({
                                            let len18 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len18, len18)
                                          }),
                                          16 => VecValue::TypeVec2({
                                            let len19 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len19, len19)
                                          }),
                                          17 => VecValue::TypeVec3({
                                            let len20 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len20, len20)
                                          }),
                                          18 => VecValue::TypeVec4({
                                            let len21 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len21, len21)
                                          }),
                                          19 => VecValue::TypeUvec2({
                                            let len22 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len22, len22)
                                          }),
                                          20 => VecValue::TypeUvec3({
                                            let len23 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len23, len23)
                                          }),
                                          21 => VecValue::TypeUvec4({
                                            let len24 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len24, len24)
                                          }),
                                          22 => VecValue::TypeIvec2({
                                            let len25 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len25, len25)
                                          }),
                                          23 => VecValue::TypeIvec3({
                                            let len26 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len26, len26)
                                          }),
                                          24 => VecValue::TypeIvec4({
                                            let len27 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len27, len27)
                                          }),
                                          25 => VecValue::TypeDuration({
                                            let len28 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len28, len28)
                                          }),
                                          26 => VecValue::TypeProceduralMeshHandle({
                                            let len29 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len29, len29)
                                          }),
                                          27 => VecValue::TypeProceduralTextureHandle({
                                            let len30 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len30, len30)
                                          }),
                                          28 => VecValue::TypeProceduralSamplerHandle({
                                            let len31 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len31, len31)
                                          }),
                                          #[cfg(debug_assertions)]29 => VecValue::TypeProceduralMaterialHandle({
                                            let len32 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len32, len32)
                                          }),
                                          #[cfg(not(debug_assertions))]_ => VecValue::TypeProceduralMaterialHandle({
                                            let len32 = *((base + 16) as *const i32) as usize;
                                            
                                            Vec::from_raw_parts(*((base + 12) as *const i32) as *mut _, len32, len32)
                                          }),
                                          #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                                        }}}),
                                        #[cfg(debug_assertions)]31 => Value::TypeOption({{match i32::from(*((base + 8) as *const u8)) {
                                          0 => OptionValue::TypeEmpty(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Empty{dummy:i32::from(*((base + 17) as *const u8)) as u8, }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          1 => OptionValue::TypeBool(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some({
                                              #[cfg(not(debug_assertions))]
                                              { ::core::mem::transmute::<u8, bool>(i32::from(*((base + 17) as *const u8)) as u8) }
                                              #[cfg(debug_assertions)]
                                              {
                                                match i32::from(*((base + 17) as *const u8)) {
                                                  0 => false,
                                                  1 => true,
                                                  _ => panic!("invalid bool discriminant"),
                                                }
                                              }
                                            }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          2 => OptionValue::TypeEntityId(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::EntityId{id0:*((base + 24) as *const i64) as u64, id1:*((base + 32) as *const i64) as u64, }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          3 => OptionValue::TypeF32(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(*((base + 20) as *const f32)),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          4 => OptionValue::TypeF64(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(*((base + 24) as *const f64)),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          5 => OptionValue::TypeMat4(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Mat4{x:super::super::super::ambient::bindings::types::Vec4{x:*((base + 20) as *const f32), y:*((base + 24) as *const f32), z:*((base + 28) as *const f32), w:*((base + 32) as *const f32), }, y:super::super::super::ambient::bindings::types::Vec4{x:*((base + 36) as *const f32), y:*((base + 40) as *const f32), z:*((base + 44) as *const f32), w:*((base + 48) as *const f32), }, z:super::super::super::ambient::bindings::types::Vec4{x:*((base + 52) as *const f32), y:*((base + 56) as *const f32), z:*((base + 60) as *const f32), w:*((base + 64) as *const f32), }, w:super::super::super::ambient::bindings::types::Vec4{x:*((base + 68) as *const f32), y:*((base + 72) as *const f32), z:*((base + 76) as *const f32), w:*((base + 80) as *const f32), }, }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          6 => OptionValue::TypeQuat(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Quat{x:*((base + 20) as *const f32), y:*((base + 24) as *const f32), z:*((base + 28) as *const f32), w:*((base + 32) as *const f32), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          7 => OptionValue::TypeString(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some({
                                              let len33 = *((base + 24) as *const i32) as usize;
                                              
                                              {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len33, len33))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len33, len33)).unwrap()}}
                                            }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          8 => OptionValue::TypeU8(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(i32::from(*((base + 17) as *const u8)) as u8),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          9 => OptionValue::TypeU16(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(i32::from(*((base + 18) as *const u16)) as u16),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          10 => OptionValue::TypeU32(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(*((base + 20) as *const i32) as u32),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          11 => OptionValue::TypeU64(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(*((base + 24) as *const i64) as u64),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          12 => OptionValue::TypeI8(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(i32::from(*((base + 17) as *const i8)) as i8),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          13 => OptionValue::TypeI16(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(i32::from(*((base + 18) as *const i16)) as i16),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          14 => OptionValue::TypeI32(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(*((base + 20) as *const i32)),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          15 => OptionValue::TypeI64(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(*((base + 24) as *const i64)),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          16 => OptionValue::TypeVec2(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Vec2{x:*((base + 20) as *const f32), y:*((base + 24) as *const f32), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          17 => OptionValue::TypeVec3(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Vec3{x:*((base + 20) as *const f32), y:*((base + 24) as *const f32), z:*((base + 28) as *const f32), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          18 => OptionValue::TypeVec4(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Vec4{x:*((base + 20) as *const f32), y:*((base + 24) as *const f32), z:*((base + 28) as *const f32), w:*((base + 32) as *const f32), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          19 => OptionValue::TypeUvec2(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Uvec2{x:*((base + 20) as *const i32) as u32, y:*((base + 24) as *const i32) as u32, }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          20 => OptionValue::TypeUvec3(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Uvec3{x:*((base + 20) as *const i32) as u32, y:*((base + 24) as *const i32) as u32, z:*((base + 28) as *const i32) as u32, }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          21 => OptionValue::TypeUvec4(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Uvec4{x:*((base + 20) as *const i32) as u32, y:*((base + 24) as *const i32) as u32, z:*((base + 28) as *const i32) as u32, w:*((base + 32) as *const i32) as u32, }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          22 => OptionValue::TypeIvec2(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Ivec2{x:*((base + 20) as *const i32), y:*((base + 24) as *const i32), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          23 => OptionValue::TypeIvec3(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Ivec3{x:*((base + 20) as *const i32), y:*((base + 24) as *const i32), z:*((base + 28) as *const i32), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          24 => OptionValue::TypeIvec4(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Ivec4{x:*((base + 20) as *const i32), y:*((base + 24) as *const i32), z:*((base + 28) as *const i32), w:*((base + 32) as *const i32), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          25 => OptionValue::TypeDuration(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Duration{seconds:*((base + 24) as *const i64) as u64, nanoseconds:*((base + 32) as *const i32) as u32, }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          26 => OptionValue::TypeProceduralMeshHandle(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::client_mesh::Handle{ulid:(*((base + 24) as *const i64) as u64, *((base + 32) as *const i64) as u64), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          27 => OptionValue::TypeProceduralTextureHandle(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::client_texture::Handle{ulid:(*((base + 24) as *const i64) as u64, *((base + 32) as *const i64) as u64), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          28 => OptionValue::TypeProceduralSamplerHandle(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::client_sampler::Handle{ulid:(*((base + 24) as *const i64) as u64, *((base + 32) as *const i64) as u64), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          #[cfg(debug_assertions)]29 => OptionValue::TypeProceduralMaterialHandle(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 24) as *const i64) as u64, *((base + 32) as *const i64) as u64), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          #[cfg(not(debug_assertions))]_ => OptionValue::TypeProceduralMaterialHandle(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 24) as *const i64) as u64, *((base + 32) as *const i64) as u64), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                                        }}}),
                                        #[cfg(not(debug_assertions))]_ => Value::TypeOption({{match i32::from(*((base + 8) as *const u8)) {
                                          0 => OptionValue::TypeEmpty(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Empty{dummy:i32::from(*((base + 17) as *const u8)) as u8, }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          1 => OptionValue::TypeBool(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some({
                                              #[cfg(not(debug_assertions))]
                                              { ::core::mem::transmute::<u8, bool>(i32::from(*((base + 17) as *const u8)) as u8) }
                                              #[cfg(debug_assertions)]
                                              {
                                                match i32::from(*((base + 17) as *const u8)) {
                                                  0 => false,
                                                  1 => true,
                                                  _ => panic!("invalid bool discriminant"),
                                                }
                                              }
                                            }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          2 => OptionValue::TypeEntityId(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::EntityId{id0:*((base + 24) as *const i64) as u64, id1:*((base + 32) as *const i64) as u64, }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          3 => OptionValue::TypeF32(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(*((base + 20) as *const f32)),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          4 => OptionValue::TypeF64(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(*((base + 24) as *const f64)),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          5 => OptionValue::TypeMat4(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Mat4{x:super::super::super::ambient::bindings::types::Vec4{x:*((base + 20) as *const f32), y:*((base + 24) as *const f32), z:*((base + 28) as *const f32), w:*((base + 32) as *const f32), }, y:super::super::super::ambient::bindings::types::Vec4{x:*((base + 36) as *const f32), y:*((base + 40) as *const f32), z:*((base + 44) as *const f32), w:*((base + 48) as *const f32), }, z:super::super::super::ambient::bindings::types::Vec4{x:*((base + 52) as *const f32), y:*((base + 56) as *const f32), z:*((base + 60) as *const f32), w:*((base + 64) as *const f32), }, w:super::super::super::ambient::bindings::types::Vec4{x:*((base + 68) as *const f32), y:*((base + 72) as *const f32), z:*((base + 76) as *const f32), w:*((base + 80) as *const f32), }, }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          6 => OptionValue::TypeQuat(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Quat{x:*((base + 20) as *const f32), y:*((base + 24) as *const f32), z:*((base + 28) as *const f32), w:*((base + 32) as *const f32), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          7 => OptionValue::TypeString(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some({
                                              let len33 = *((base + 24) as *const i32) as usize;
                                              
                                              {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len33, len33))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len33, len33)).unwrap()}}
                                            }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          8 => OptionValue::TypeU8(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(i32::from(*((base + 17) as *const u8)) as u8),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          9 => OptionValue::TypeU16(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(i32::from(*((base + 18) as *const u16)) as u16),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          10 => OptionValue::TypeU32(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(*((base + 20) as *const i32) as u32),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          11 => OptionValue::TypeU64(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(*((base + 24) as *const i64) as u64),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          12 => OptionValue::TypeI8(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(i32::from(*((base + 17) as *const i8)) as i8),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          13 => OptionValue::TypeI16(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(i32::from(*((base + 18) as *const i16)) as i16),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          14 => OptionValue::TypeI32(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(*((base + 20) as *const i32)),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          15 => OptionValue::TypeI64(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(*((base + 24) as *const i64)),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          16 => OptionValue::TypeVec2(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Vec2{x:*((base + 20) as *const f32), y:*((base + 24) as *const f32), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          17 => OptionValue::TypeVec3(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Vec3{x:*((base + 20) as *const f32), y:*((base + 24) as *const f32), z:*((base + 28) as *const f32), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          18 => OptionValue::TypeVec4(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Vec4{x:*((base + 20) as *const f32), y:*((base + 24) as *const f32), z:*((base + 28) as *const f32), w:*((base + 32) as *const f32), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          19 => OptionValue::TypeUvec2(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Uvec2{x:*((base + 20) as *const i32) as u32, y:*((base + 24) as *const i32) as u32, }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          20 => OptionValue::TypeUvec3(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Uvec3{x:*((base + 20) as *const i32) as u32, y:*((base + 24) as *const i32) as u32, z:*((base + 28) as *const i32) as u32, }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          21 => OptionValue::TypeUvec4(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Uvec4{x:*((base + 20) as *const i32) as u32, y:*((base + 24) as *const i32) as u32, z:*((base + 28) as *const i32) as u32, w:*((base + 32) as *const i32) as u32, }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          22 => OptionValue::TypeIvec2(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Ivec2{x:*((base + 20) as *const i32), y:*((base + 24) as *const i32), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          23 => OptionValue::TypeIvec3(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Ivec3{x:*((base + 20) as *const i32), y:*((base + 24) as *const i32), z:*((base + 28) as *const i32), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          24 => OptionValue::TypeIvec4(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Ivec4{x:*((base + 20) as *const i32), y:*((base + 24) as *const i32), z:*((base + 28) as *const i32), w:*((base + 32) as *const i32), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          25 => OptionValue::TypeDuration(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::types::Duration{seconds:*((base + 24) as *const i64) as u64, nanoseconds:*((base + 32) as *const i32) as u32, }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          26 => OptionValue::TypeProceduralMeshHandle(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::client_mesh::Handle{ulid:(*((base + 24) as *const i64) as u64, *((base + 32) as *const i64) as u64), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          27 => OptionValue::TypeProceduralTextureHandle(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::client_texture::Handle{ulid:(*((base + 24) as *const i64) as u64, *((base + 32) as *const i64) as u64), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          28 => OptionValue::TypeProceduralSamplerHandle(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::client_sampler::Handle{ulid:(*((base + 24) as *const i64) as u64, *((base + 32) as *const i64) as u64), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          #[cfg(debug_assertions)]29 => OptionValue::TypeProceduralMaterialHandle(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 24) as *const i64) as u64, *((base + 32) as *const i64) as u64), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          #[cfg(not(debug_assertions))]_ => OptionValue::TypeProceduralMaterialHandle(match i32::from(*((base + 16) as *const u8)) {
                                            0 => None,
                                            1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 24) as *const i64) as u64, *((base + 32) as *const i64) as u64), }),
                                            #[cfg(not(debug_assertions))]
                                            _ => ::core::hint::unreachable_unchecked(),
                                            #[cfg(debug_assertions)]
                                            _ => panic!("invalid enum discriminant"),
                                          }),
                                          #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                                        }}}),
                                        #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                                      }}});
                                    }
                                    wit_bindgen::rt::dealloc(base34, (len34 as usize) * 88, 8);
                                    
                                    (super::super::super::ambient::bindings::types::EntityId{id0:*((base + 0) as *const i64) as u64, id1:*((base + 8) as *const i64) as u64, }, result34)
                                  });
                                }
                                wit_bindgen::rt::dealloc(base35, (len35 as usize) * 24, 8);
                                result35
                              }
                            }
                            
                          }
                          
                          
                          #[allow(clippy::all)]
                          pub mod entity {
                            #[used]
                            #[doc(hidden)]
                            #[cfg(target_arch = "wasm32")]
                            static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
                            
                            pub type EntityId = super::super::super::ambient::bindings::types::EntityId;
                            pub type Vec3 = super::super::super::ambient::bindings::types::Vec3;
                            pub type Mat4 = super::super::super::ambient::bindings::types::Mat4;
                            pub type EntityData = super::super::super::ambient::bindings::component::Entity;
                            #[allow(clippy::all)]
                            pub fn get_transforms_relative_to(entities: &[EntityId],origin: EntityId,) -> wit_bindgen::rt::vec::Vec::<Mat4>{
                              
                              #[allow(unused_imports)]
                              use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                              unsafe {
                                
                                #[repr(align(4))]
                                struct RetArea([u8; 8]);
                                let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                let vec0 = entities;
                                let ptr0 = vec0.as_ptr() as i32;
                                let len0 = vec0.len() as i32;
                                let super::super::super::ambient::bindings::types::EntityId{ id0:id01, id1:id11, } = origin;
                                let ptr2 = ret_area.as_mut_ptr() as i32;
                                #[link(wasm_import_module = "ambient:bindings/entity")]
                                extern "C" {
                                  #[cfg_attr(target_arch = "wasm32", link_name = "get-transforms-relative-to")]
                                  #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/entity_get-transforms-relative-to")]
                                  fn wit_import(
                                  _: i32, _: i32, _: i64, _: i64, _: i32, );
                                }
                                wit_import(ptr0, len0, wit_bindgen::rt::as_i64(id01), wit_bindgen::rt::as_i64(id11), ptr2);
                                let len3 = *((ptr2 + 4) as *const i32) as usize;
                                Vec::from_raw_parts(*((ptr2 + 0) as *const i32) as *mut _, len3, len3)
                              }
                            }
                            #[allow(clippy::all)]
                            pub fn spawn(data: &EntityData,) -> EntityId{
                              
                              #[allow(unused_imports)]
                              use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                              unsafe {
                                let mut cleanup_list = Vec::new();
                                
                                #[repr(align(8))]
                                struct RetArea([u8; 16]);
                                let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                let vec86 = data;
                                let len86 = vec86.len() as i32;
                                let layout86 = alloc::Layout::from_size_align_unchecked(vec86.len() * 96, 8);
                                let result86 = if layout86.size() != 0
                                {
                                  let ptr = alloc::alloc(layout86);
                                  if ptr.is_null()
                                  {
                                    alloc::handle_alloc_error(layout86);
                                  }
                                  ptr
                                }else {
                                  ::core::ptr::null_mut()
                                };
                                for (i, e) in vec86.into_iter().enumerate() {
                                  let base = result86 as i32 + (i as i32) * 96;
                                  {
                                    let (t0_0, t0_1, ) = e;
                                    *((base + 0) as *mut i32) = wit_bindgen::rt::as_i32(t0_0);
                                    match t0_1 {
                                      super::super::super::ambient::bindings::component::Value::TypeEmpty(e) => {
                                        *((base + 8) as *mut u8) = (0i32) as u8;
                                        let super::super::super::ambient::bindings::types::Empty{ dummy:dummy1, } = e;
                                        *((base + 16) as *mut u8) = (wit_bindgen::rt::as_i32(dummy1)) as u8;
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeBool(e) => {
                                        *((base + 8) as *mut u8) = (1i32) as u8;
                                        *((base + 16) as *mut u8) = (match e { true => 1, false => 0 }) as u8;
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeEntityId(e) => {
                                        *((base + 8) as *mut u8) = (2i32) as u8;
                                        let super::super::super::ambient::bindings::types::EntityId{ id0:id02, id1:id12, } = e;
                                        *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(id02);
                                        *((base + 24) as *mut i64) = wit_bindgen::rt::as_i64(id12);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeF32(e) => {
                                        *((base + 8) as *mut u8) = (3i32) as u8;
                                        *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(e);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeF64(e) => {
                                        *((base + 8) as *mut u8) = (4i32) as u8;
                                        *((base + 16) as *mut f64) = wit_bindgen::rt::as_f64(e);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeMat4(e) => {
                                        *((base + 8) as *mut u8) = (5i32) as u8;
                                        let super::super::super::ambient::bindings::types::Mat4{ x:x3, y:y3, z:z3, w:w3, } = e;
                                        let super::super::super::ambient::bindings::types::Vec4{ x:x4, y:y4, z:z4, w:w4, } = x3;
                                        *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(x4);
                                        *((base + 20) as *mut f32) = wit_bindgen::rt::as_f32(y4);
                                        *((base + 24) as *mut f32) = wit_bindgen::rt::as_f32(z4);
                                        *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(w4);
                                        let super::super::super::ambient::bindings::types::Vec4{ x:x5, y:y5, z:z5, w:w5, } = y3;
                                        *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(x5);
                                        *((base + 36) as *mut f32) = wit_bindgen::rt::as_f32(y5);
                                        *((base + 40) as *mut f32) = wit_bindgen::rt::as_f32(z5);
                                        *((base + 44) as *mut f32) = wit_bindgen::rt::as_f32(w5);
                                        let super::super::super::ambient::bindings::types::Vec4{ x:x6, y:y6, z:z6, w:w6, } = z3;
                                        *((base + 48) as *mut f32) = wit_bindgen::rt::as_f32(x6);
                                        *((base + 52) as *mut f32) = wit_bindgen::rt::as_f32(y6);
                                        *((base + 56) as *mut f32) = wit_bindgen::rt::as_f32(z6);
                                        *((base + 60) as *mut f32) = wit_bindgen::rt::as_f32(w6);
                                        let super::super::super::ambient::bindings::types::Vec4{ x:x7, y:y7, z:z7, w:w7, } = w3;
                                        *((base + 64) as *mut f32) = wit_bindgen::rt::as_f32(x7);
                                        *((base + 68) as *mut f32) = wit_bindgen::rt::as_f32(y7);
                                        *((base + 72) as *mut f32) = wit_bindgen::rt::as_f32(z7);
                                        *((base + 76) as *mut f32) = wit_bindgen::rt::as_f32(w7);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeQuat(e) => {
                                        *((base + 8) as *mut u8) = (6i32) as u8;
                                        let super::super::super::ambient::bindings::types::Quat{ x:x8, y:y8, z:z8, w:w8, } = e;
                                        *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(x8);
                                        *((base + 20) as *mut f32) = wit_bindgen::rt::as_f32(y8);
                                        *((base + 24) as *mut f32) = wit_bindgen::rt::as_f32(z8);
                                        *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(w8);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeString(e) => {
                                        *((base + 8) as *mut u8) = (7i32) as u8;
                                        let vec9 = e;
                                        let ptr9 = vec9.as_ptr() as i32;
                                        let len9 = vec9.len() as i32;
                                        *((base + 20) as *mut i32) = len9;
                                        *((base + 16) as *mut i32) = ptr9;
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeU8(e) => {
                                        *((base + 8) as *mut u8) = (8i32) as u8;
                                        *((base + 16) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeU16(e) => {
                                        *((base + 8) as *mut u8) = (9i32) as u8;
                                        *((base + 16) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeU32(e) => {
                                        *((base + 8) as *mut u8) = (10i32) as u8;
                                        *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(e);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeU64(e) => {
                                        *((base + 8) as *mut u8) = (11i32) as u8;
                                        *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(e);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeI8(e) => {
                                        *((base + 8) as *mut u8) = (12i32) as u8;
                                        *((base + 16) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeI16(e) => {
                                        *((base + 8) as *mut u8) = (13i32) as u8;
                                        *((base + 16) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeI32(e) => {
                                        *((base + 8) as *mut u8) = (14i32) as u8;
                                        *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(e);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeI64(e) => {
                                        *((base + 8) as *mut u8) = (15i32) as u8;
                                        *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(e);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeVec2(e) => {
                                        *((base + 8) as *mut u8) = (16i32) as u8;
                                        let super::super::super::ambient::bindings::types::Vec2{ x:x10, y:y10, } = e;
                                        *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(x10);
                                        *((base + 20) as *mut f32) = wit_bindgen::rt::as_f32(y10);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeVec3(e) => {
                                        *((base + 8) as *mut u8) = (17i32) as u8;
                                        let super::super::super::ambient::bindings::types::Vec3{ x:x11, y:y11, z:z11, } = e;
                                        *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(x11);
                                        *((base + 20) as *mut f32) = wit_bindgen::rt::as_f32(y11);
                                        *((base + 24) as *mut f32) = wit_bindgen::rt::as_f32(z11);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeVec4(e) => {
                                        *((base + 8) as *mut u8) = (18i32) as u8;
                                        let super::super::super::ambient::bindings::types::Vec4{ x:x12, y:y12, z:z12, w:w12, } = e;
                                        *((base + 16) as *mut f32) = wit_bindgen::rt::as_f32(x12);
                                        *((base + 20) as *mut f32) = wit_bindgen::rt::as_f32(y12);
                                        *((base + 24) as *mut f32) = wit_bindgen::rt::as_f32(z12);
                                        *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(w12);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeUvec2(e) => {
                                        *((base + 8) as *mut u8) = (19i32) as u8;
                                        let super::super::super::ambient::bindings::types::Uvec2{ x:x13, y:y13, } = e;
                                        *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x13);
                                        *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y13);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeUvec3(e) => {
                                        *((base + 8) as *mut u8) = (20i32) as u8;
                                        let super::super::super::ambient::bindings::types::Uvec3{ x:x14, y:y14, z:z14, } = e;
                                        *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x14);
                                        *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y14);
                                        *((base + 24) as *mut i32) = wit_bindgen::rt::as_i32(z14);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeUvec4(e) => {
                                        *((base + 8) as *mut u8) = (21i32) as u8;
                                        let super::super::super::ambient::bindings::types::Uvec4{ x:x15, y:y15, z:z15, w:w15, } = e;
                                        *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x15);
                                        *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y15);
                                        *((base + 24) as *mut i32) = wit_bindgen::rt::as_i32(z15);
                                        *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(w15);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeIvec2(e) => {
                                        *((base + 8) as *mut u8) = (22i32) as u8;
                                        let super::super::super::ambient::bindings::types::Ivec2{ x:x16, y:y16, } = e;
                                        *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x16);
                                        *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y16);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeIvec3(e) => {
                                        *((base + 8) as *mut u8) = (23i32) as u8;
                                        let super::super::super::ambient::bindings::types::Ivec3{ x:x17, y:y17, z:z17, } = e;
                                        *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x17);
                                        *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y17);
                                        *((base + 24) as *mut i32) = wit_bindgen::rt::as_i32(z17);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeIvec4(e) => {
                                        *((base + 8) as *mut u8) = (24i32) as u8;
                                        let super::super::super::ambient::bindings::types::Ivec4{ x:x18, y:y18, z:z18, w:w18, } = e;
                                        *((base + 16) as *mut i32) = wit_bindgen::rt::as_i32(x18);
                                        *((base + 20) as *mut i32) = wit_bindgen::rt::as_i32(y18);
                                        *((base + 24) as *mut i32) = wit_bindgen::rt::as_i32(z18);
                                        *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(w18);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeDuration(e) => {
                                        *((base + 8) as *mut u8) = (25i32) as u8;
                                        let super::super::super::ambient::bindings::types::Duration{ seconds:seconds19, nanoseconds:nanoseconds19, } = e;
                                        *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(seconds19);
                                        *((base + 24) as *mut i32) = wit_bindgen::rt::as_i32(nanoseconds19);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeProceduralMeshHandle(e) => {
                                        *((base + 8) as *mut u8) = (26i32) as u8;
                                        let super::super::super::ambient::bindings::client_mesh::Handle{ ulid:ulid20, } = e;
                                        let (t21_0, t21_1, ) = ulid20;
                                        *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(t21_0);
                                        *((base + 24) as *mut i64) = wit_bindgen::rt::as_i64(t21_1);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeProceduralTextureHandle(e) => {
                                        *((base + 8) as *mut u8) = (27i32) as u8;
                                        let super::super::super::ambient::bindings::client_texture::Handle{ ulid:ulid22, } = e;
                                        let (t23_0, t23_1, ) = ulid22;
                                        *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(t23_0);
                                        *((base + 24) as *mut i64) = wit_bindgen::rt::as_i64(t23_1);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeProceduralSamplerHandle(e) => {
                                        *((base + 8) as *mut u8) = (28i32) as u8;
                                        let super::super::super::ambient::bindings::client_sampler::Handle{ ulid:ulid24, } = e;
                                        let (t25_0, t25_1, ) = ulid24;
                                        *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(t25_0);
                                        *((base + 24) as *mut i64) = wit_bindgen::rt::as_i64(t25_1);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeProceduralMaterialHandle(e) => {
                                        *((base + 8) as *mut u8) = (29i32) as u8;
                                        let super::super::super::ambient::bindings::client_material::Handle{ ulid:ulid26, } = e;
                                        let (t27_0, t27_1, ) = ulid26;
                                        *((base + 16) as *mut i64) = wit_bindgen::rt::as_i64(t27_0);
                                        *((base + 24) as *mut i64) = wit_bindgen::rt::as_i64(t27_1);
                                        
                                      },
                                      super::super::super::ambient::bindings::component::Value::TypeVec(e) => {
                                        *((base + 8) as *mut u8) = (30i32) as u8;
                                        match e {
                                          super::super::super::ambient::bindings::component::VecValue::TypeEmpty(e) => {
                                            *((base + 16) as *mut u8) = (0i32) as u8;
                                            let vec28 = e;
                                            let ptr28 = vec28.as_ptr() as i32;
                                            let len28 = vec28.len() as i32;
                                            *((base + 24) as *mut i32) = len28;
                                            *((base + 20) as *mut i32) = ptr28;
                                            
                                          },
                                          super::super::super::ambient::bindings::component::VecValue::TypeBool(e) => {
                                            *((base + 16) as *mut u8) = (1i32) as u8;
                                            let vec29 = e;
                                            let len29 = vec29.len() as i32;
                                            let layout29 = alloc::Layout::from_size_align_unchecked(vec29.len() * 1, 1);
                                            let result29 = if layout29.size() != 0
                                            {
                                              let ptr = alloc::alloc(layout29);
                                              if ptr.is_null()
                                              {
                                                alloc::handle_alloc_error(layout29);
                                              }
                                              ptr
                                            }else {
                                              ::core::ptr::null_mut()
                                            };
                                            for (i, e) in vec29.into_iter().enumerate() {
                                              let base = result29 as i32 + (i as i32) * 1;
                                              {
                                                *((base + 0) as *mut u8) = (match e { true => 1, false => 0 }) as u8;
                                                
                                              }}
                                              *((base + 24) as *mut i32) = len29;
                                              *((base + 20) as *mut i32) = result29 as i32;
                                              cleanup_list.extend_from_slice(&[(result29, layout29),]);
                                              
                                            },
                                            super::super::super::ambient::bindings::component::VecValue::TypeEntityId(e) => {
                                              *((base + 16) as *mut u8) = (2i32) as u8;
                                              let vec30 = e;
                                              let ptr30 = vec30.as_ptr() as i32;
                                              let len30 = vec30.len() as i32;
                                              *((base + 24) as *mut i32) = len30;
                                              *((base + 20) as *mut i32) = ptr30;
                                              
                                            },
                                            super::super::super::ambient::bindings::component::VecValue::TypeF32(e) => {
                                              *((base + 16) as *mut u8) = (3i32) as u8;
                                              let vec31 = e;
                                              let ptr31 = vec31.as_ptr() as i32;
                                              let len31 = vec31.len() as i32;
                                              *((base + 24) as *mut i32) = len31;
                                              *((base + 20) as *mut i32) = ptr31;
                                              
                                            },
                                            super::super::super::ambient::bindings::component::VecValue::TypeF64(e) => {
                                              *((base + 16) as *mut u8) = (4i32) as u8;
                                              let vec32 = e;
                                              let ptr32 = vec32.as_ptr() as i32;
                                              let len32 = vec32.len() as i32;
                                              *((base + 24) as *mut i32) = len32;
                                              *((base + 20) as *mut i32) = ptr32;
                                              
                                            },
                                            super::super::super::ambient::bindings::component::VecValue::TypeMat4(e) => {
                                              *((base + 16) as *mut u8) = (5i32) as u8;
                                              let vec33 = e;
                                              let ptr33 = vec33.as_ptr() as i32;
                                              let len33 = vec33.len() as i32;
                                              *((base + 24) as *mut i32) = len33;
                                              *((base + 20) as *mut i32) = ptr33;
                                              
                                            },
                                            super::super::super::ambient::bindings::component::VecValue::TypeQuat(e) => {
                                              *((base + 16) as *mut u8) = (6i32) as u8;
                                              let vec34 = e;
                                              let ptr34 = vec34.as_ptr() as i32;
                                              let len34 = vec34.len() as i32;
                                              *((base + 24) as *mut i32) = len34;
                                              *((base + 20) as *mut i32) = ptr34;
                                              
                                            },
                                            super::super::super::ambient::bindings::component::VecValue::TypeString(e) => {
                                              *((base + 16) as *mut u8) = (7i32) as u8;
                                              let vec36 = e;
                                              let len36 = vec36.len() as i32;
                                              let layout36 = alloc::Layout::from_size_align_unchecked(vec36.len() * 8, 4);
                                              let result36 = if layout36.size() != 0
                                              {
                                                let ptr = alloc::alloc(layout36);
                                                if ptr.is_null()
                                                {
                                                  alloc::handle_alloc_error(layout36);
                                                }
                                                ptr
                                              }else {
                                                ::core::ptr::null_mut()
                                              };
                                              for (i, e) in vec36.into_iter().enumerate() {
                                                let base = result36 as i32 + (i as i32) * 8;
                                                {
                                                  let vec35 = e;
                                                  let ptr35 = vec35.as_ptr() as i32;
                                                  let len35 = vec35.len() as i32;
                                                  *((base + 4) as *mut i32) = len35;
                                                  *((base + 0) as *mut i32) = ptr35;
                                                  
                                                }}
                                                *((base + 24) as *mut i32) = len36;
                                                *((base + 20) as *mut i32) = result36 as i32;
                                                cleanup_list.extend_from_slice(&[(result36, layout36),]);
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeU8(e) => {
                                                *((base + 16) as *mut u8) = (8i32) as u8;
                                                let vec37 = e;
                                                let ptr37 = vec37.as_ptr() as i32;
                                                let len37 = vec37.len() as i32;
                                                *((base + 24) as *mut i32) = len37;
                                                *((base + 20) as *mut i32) = ptr37;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeU16(e) => {
                                                *((base + 16) as *mut u8) = (9i32) as u8;
                                                let vec38 = e;
                                                let ptr38 = vec38.as_ptr() as i32;
                                                let len38 = vec38.len() as i32;
                                                *((base + 24) as *mut i32) = len38;
                                                *((base + 20) as *mut i32) = ptr38;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeU32(e) => {
                                                *((base + 16) as *mut u8) = (10i32) as u8;
                                                let vec39 = e;
                                                let ptr39 = vec39.as_ptr() as i32;
                                                let len39 = vec39.len() as i32;
                                                *((base + 24) as *mut i32) = len39;
                                                *((base + 20) as *mut i32) = ptr39;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeU64(e) => {
                                                *((base + 16) as *mut u8) = (11i32) as u8;
                                                let vec40 = e;
                                                let ptr40 = vec40.as_ptr() as i32;
                                                let len40 = vec40.len() as i32;
                                                *((base + 24) as *mut i32) = len40;
                                                *((base + 20) as *mut i32) = ptr40;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeI8(e) => {
                                                *((base + 16) as *mut u8) = (12i32) as u8;
                                                let vec41 = e;
                                                let ptr41 = vec41.as_ptr() as i32;
                                                let len41 = vec41.len() as i32;
                                                *((base + 24) as *mut i32) = len41;
                                                *((base + 20) as *mut i32) = ptr41;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeI16(e) => {
                                                *((base + 16) as *mut u8) = (13i32) as u8;
                                                let vec42 = e;
                                                let ptr42 = vec42.as_ptr() as i32;
                                                let len42 = vec42.len() as i32;
                                                *((base + 24) as *mut i32) = len42;
                                                *((base + 20) as *mut i32) = ptr42;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeI32(e) => {
                                                *((base + 16) as *mut u8) = (14i32) as u8;
                                                let vec43 = e;
                                                let ptr43 = vec43.as_ptr() as i32;
                                                let len43 = vec43.len() as i32;
                                                *((base + 24) as *mut i32) = len43;
                                                *((base + 20) as *mut i32) = ptr43;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeI64(e) => {
                                                *((base + 16) as *mut u8) = (15i32) as u8;
                                                let vec44 = e;
                                                let ptr44 = vec44.as_ptr() as i32;
                                                let len44 = vec44.len() as i32;
                                                *((base + 24) as *mut i32) = len44;
                                                *((base + 20) as *mut i32) = ptr44;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeVec2(e) => {
                                                *((base + 16) as *mut u8) = (16i32) as u8;
                                                let vec45 = e;
                                                let ptr45 = vec45.as_ptr() as i32;
                                                let len45 = vec45.len() as i32;
                                                *((base + 24) as *mut i32) = len45;
                                                *((base + 20) as *mut i32) = ptr45;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeVec3(e) => {
                                                *((base + 16) as *mut u8) = (17i32) as u8;
                                                let vec46 = e;
                                                let ptr46 = vec46.as_ptr() as i32;
                                                let len46 = vec46.len() as i32;
                                                *((base + 24) as *mut i32) = len46;
                                                *((base + 20) as *mut i32) = ptr46;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeVec4(e) => {
                                                *((base + 16) as *mut u8) = (18i32) as u8;
                                                let vec47 = e;
                                                let ptr47 = vec47.as_ptr() as i32;
                                                let len47 = vec47.len() as i32;
                                                *((base + 24) as *mut i32) = len47;
                                                *((base + 20) as *mut i32) = ptr47;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeUvec2(e) => {
                                                *((base + 16) as *mut u8) = (19i32) as u8;
                                                let vec48 = e;
                                                let ptr48 = vec48.as_ptr() as i32;
                                                let len48 = vec48.len() as i32;
                                                *((base + 24) as *mut i32) = len48;
                                                *((base + 20) as *mut i32) = ptr48;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeUvec3(e) => {
                                                *((base + 16) as *mut u8) = (20i32) as u8;
                                                let vec49 = e;
                                                let ptr49 = vec49.as_ptr() as i32;
                                                let len49 = vec49.len() as i32;
                                                *((base + 24) as *mut i32) = len49;
                                                *((base + 20) as *mut i32) = ptr49;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeUvec4(e) => {
                                                *((base + 16) as *mut u8) = (21i32) as u8;
                                                let vec50 = e;
                                                let ptr50 = vec50.as_ptr() as i32;
                                                let len50 = vec50.len() as i32;
                                                *((base + 24) as *mut i32) = len50;
                                                *((base + 20) as *mut i32) = ptr50;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeIvec2(e) => {
                                                *((base + 16) as *mut u8) = (22i32) as u8;
                                                let vec51 = e;
                                                let ptr51 = vec51.as_ptr() as i32;
                                                let len51 = vec51.len() as i32;
                                                *((base + 24) as *mut i32) = len51;
                                                *((base + 20) as *mut i32) = ptr51;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeIvec3(e) => {
                                                *((base + 16) as *mut u8) = (23i32) as u8;
                                                let vec52 = e;
                                                let ptr52 = vec52.as_ptr() as i32;
                                                let len52 = vec52.len() as i32;
                                                *((base + 24) as *mut i32) = len52;
                                                *((base + 20) as *mut i32) = ptr52;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeIvec4(e) => {
                                                *((base + 16) as *mut u8) = (24i32) as u8;
                                                let vec53 = e;
                                                let ptr53 = vec53.as_ptr() as i32;
                                                let len53 = vec53.len() as i32;
                                                *((base + 24) as *mut i32) = len53;
                                                *((base + 20) as *mut i32) = ptr53;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeDuration(e) => {
                                                *((base + 16) as *mut u8) = (25i32) as u8;
                                                let vec54 = e;
                                                let ptr54 = vec54.as_ptr() as i32;
                                                let len54 = vec54.len() as i32;
                                                *((base + 24) as *mut i32) = len54;
                                                *((base + 20) as *mut i32) = ptr54;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeProceduralMeshHandle(e) => {
                                                *((base + 16) as *mut u8) = (26i32) as u8;
                                                let vec55 = e;
                                                let ptr55 = vec55.as_ptr() as i32;
                                                let len55 = vec55.len() as i32;
                                                *((base + 24) as *mut i32) = len55;
                                                *((base + 20) as *mut i32) = ptr55;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeProceduralTextureHandle(e) => {
                                                *((base + 16) as *mut u8) = (27i32) as u8;
                                                let vec56 = e;
                                                let ptr56 = vec56.as_ptr() as i32;
                                                let len56 = vec56.len() as i32;
                                                *((base + 24) as *mut i32) = len56;
                                                *((base + 20) as *mut i32) = ptr56;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeProceduralSamplerHandle(e) => {
                                                *((base + 16) as *mut u8) = (28i32) as u8;
                                                let vec57 = e;
                                                let ptr57 = vec57.as_ptr() as i32;
                                                let len57 = vec57.len() as i32;
                                                *((base + 24) as *mut i32) = len57;
                                                *((base + 20) as *mut i32) = ptr57;
                                                
                                              },
                                              super::super::super::ambient::bindings::component::VecValue::TypeProceduralMaterialHandle(e) => {
                                                *((base + 16) as *mut u8) = (29i32) as u8;
                                                let vec58 = e;
                                                let ptr58 = vec58.as_ptr() as i32;
                                                let len58 = vec58.len() as i32;
                                                *((base + 24) as *mut i32) = len58;
                                                *((base + 20) as *mut i32) = ptr58;
                                                
                                              },
                                            };
                                            
                                          },
                                          super::super::super::ambient::bindings::component::Value::TypeOption(e) => {
                                            *((base + 8) as *mut u8) = (31i32) as u8;
                                            match e {
                                              super::super::super::ambient::bindings::component::OptionValue::TypeEmpty(e) => {
                                                *((base + 16) as *mut u8) = (0i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::types::Empty{ dummy:dummy59, } = e;
                                                    *((base + 25) as *mut u8) = (wit_bindgen::rt::as_i32(dummy59)) as u8;
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeBool(e) => {
                                                *((base + 16) as *mut u8) = (1i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    *((base + 25) as *mut u8) = (match e { true => 1, false => 0 }) as u8;
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeEntityId(e) => {
                                                *((base + 16) as *mut u8) = (2i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::types::EntityId{ id0:id060, id1:id160, } = e;
                                                    *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(id060);
                                                    *((base + 40) as *mut i64) = wit_bindgen::rt::as_i64(id160);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeF32(e) => {
                                                *((base + 16) as *mut u8) = (3i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(e);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeF64(e) => {
                                                *((base + 16) as *mut u8) = (4i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    *((base + 32) as *mut f64) = wit_bindgen::rt::as_f64(e);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeMat4(e) => {
                                                *((base + 16) as *mut u8) = (5i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::types::Mat4{ x:x61, y:y61, z:z61, w:w61, } = e;
                                                    let super::super::super::ambient::bindings::types::Vec4{ x:x62, y:y62, z:z62, w:w62, } = x61;
                                                    *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(x62);
                                                    *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(y62);
                                                    *((base + 36) as *mut f32) = wit_bindgen::rt::as_f32(z62);
                                                    *((base + 40) as *mut f32) = wit_bindgen::rt::as_f32(w62);
                                                    let super::super::super::ambient::bindings::types::Vec4{ x:x63, y:y63, z:z63, w:w63, } = y61;
                                                    *((base + 44) as *mut f32) = wit_bindgen::rt::as_f32(x63);
                                                    *((base + 48) as *mut f32) = wit_bindgen::rt::as_f32(y63);
                                                    *((base + 52) as *mut f32) = wit_bindgen::rt::as_f32(z63);
                                                    *((base + 56) as *mut f32) = wit_bindgen::rt::as_f32(w63);
                                                    let super::super::super::ambient::bindings::types::Vec4{ x:x64, y:y64, z:z64, w:w64, } = z61;
                                                    *((base + 60) as *mut f32) = wit_bindgen::rt::as_f32(x64);
                                                    *((base + 64) as *mut f32) = wit_bindgen::rt::as_f32(y64);
                                                    *((base + 68) as *mut f32) = wit_bindgen::rt::as_f32(z64);
                                                    *((base + 72) as *mut f32) = wit_bindgen::rt::as_f32(w64);
                                                    let super::super::super::ambient::bindings::types::Vec4{ x:x65, y:y65, z:z65, w:w65, } = w61;
                                                    *((base + 76) as *mut f32) = wit_bindgen::rt::as_f32(x65);
                                                    *((base + 80) as *mut f32) = wit_bindgen::rt::as_f32(y65);
                                                    *((base + 84) as *mut f32) = wit_bindgen::rt::as_f32(z65);
                                                    *((base + 88) as *mut f32) = wit_bindgen::rt::as_f32(w65);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeQuat(e) => {
                                                *((base + 16) as *mut u8) = (6i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::types::Quat{ x:x66, y:y66, z:z66, w:w66, } = e;
                                                    *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(x66);
                                                    *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(y66);
                                                    *((base + 36) as *mut f32) = wit_bindgen::rt::as_f32(z66);
                                                    *((base + 40) as *mut f32) = wit_bindgen::rt::as_f32(w66);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeString(e) => {
                                                *((base + 16) as *mut u8) = (7i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let vec67 = e;
                                                    let ptr67 = vec67.as_ptr() as i32;
                                                    let len67 = vec67.len() as i32;
                                                    *((base + 32) as *mut i32) = len67;
                                                    *((base + 28) as *mut i32) = ptr67;
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeU8(e) => {
                                                *((base + 16) as *mut u8) = (8i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    *((base + 25) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeU16(e) => {
                                                *((base + 16) as *mut u8) = (9i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    *((base + 26) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeU32(e) => {
                                                *((base + 16) as *mut u8) = (10i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(e);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeU64(e) => {
                                                *((base + 16) as *mut u8) = (11i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(e);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeI8(e) => {
                                                *((base + 16) as *mut u8) = (12i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    *((base + 25) as *mut u8) = (wit_bindgen::rt::as_i32(e)) as u8;
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeI16(e) => {
                                                *((base + 16) as *mut u8) = (13i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    *((base + 26) as *mut u16) = (wit_bindgen::rt::as_i32(e)) as u16;
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeI32(e) => {
                                                *((base + 16) as *mut u8) = (14i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(e);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeI64(e) => {
                                                *((base + 16) as *mut u8) = (15i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(e);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeVec2(e) => {
                                                *((base + 16) as *mut u8) = (16i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::types::Vec2{ x:x68, y:y68, } = e;
                                                    *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(x68);
                                                    *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(y68);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeVec3(e) => {
                                                *((base + 16) as *mut u8) = (17i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::types::Vec3{ x:x69, y:y69, z:z69, } = e;
                                                    *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(x69);
                                                    *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(y69);
                                                    *((base + 36) as *mut f32) = wit_bindgen::rt::as_f32(z69);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeVec4(e) => {
                                                *((base + 16) as *mut u8) = (18i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::types::Vec4{ x:x70, y:y70, z:z70, w:w70, } = e;
                                                    *((base + 28) as *mut f32) = wit_bindgen::rt::as_f32(x70);
                                                    *((base + 32) as *mut f32) = wit_bindgen::rt::as_f32(y70);
                                                    *((base + 36) as *mut f32) = wit_bindgen::rt::as_f32(z70);
                                                    *((base + 40) as *mut f32) = wit_bindgen::rt::as_f32(w70);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeUvec2(e) => {
                                                *((base + 16) as *mut u8) = (19i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::types::Uvec2{ x:x71, y:y71, } = e;
                                                    *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x71);
                                                    *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y71);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeUvec3(e) => {
                                                *((base + 16) as *mut u8) = (20i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::types::Uvec3{ x:x72, y:y72, z:z72, } = e;
                                                    *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x72);
                                                    *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y72);
                                                    *((base + 36) as *mut i32) = wit_bindgen::rt::as_i32(z72);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeUvec4(e) => {
                                                *((base + 16) as *mut u8) = (21i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::types::Uvec4{ x:x73, y:y73, z:z73, w:w73, } = e;
                                                    *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x73);
                                                    *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y73);
                                                    *((base + 36) as *mut i32) = wit_bindgen::rt::as_i32(z73);
                                                    *((base + 40) as *mut i32) = wit_bindgen::rt::as_i32(w73);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeIvec2(e) => {
                                                *((base + 16) as *mut u8) = (22i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::types::Ivec2{ x:x74, y:y74, } = e;
                                                    *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x74);
                                                    *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y74);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeIvec3(e) => {
                                                *((base + 16) as *mut u8) = (23i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::types::Ivec3{ x:x75, y:y75, z:z75, } = e;
                                                    *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x75);
                                                    *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y75);
                                                    *((base + 36) as *mut i32) = wit_bindgen::rt::as_i32(z75);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeIvec4(e) => {
                                                *((base + 16) as *mut u8) = (24i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::types::Ivec4{ x:x76, y:y76, z:z76, w:w76, } = e;
                                                    *((base + 28) as *mut i32) = wit_bindgen::rt::as_i32(x76);
                                                    *((base + 32) as *mut i32) = wit_bindgen::rt::as_i32(y76);
                                                    *((base + 36) as *mut i32) = wit_bindgen::rt::as_i32(z76);
                                                    *((base + 40) as *mut i32) = wit_bindgen::rt::as_i32(w76);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeDuration(e) => {
                                                *((base + 16) as *mut u8) = (25i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::types::Duration{ seconds:seconds77, nanoseconds:nanoseconds77, } = e;
                                                    *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(seconds77);
                                                    *((base + 40) as *mut i32) = wit_bindgen::rt::as_i32(nanoseconds77);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeProceduralMeshHandle(e) => {
                                                *((base + 16) as *mut u8) = (26i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::client_mesh::Handle{ ulid:ulid78, } = e;
                                                    let (t79_0, t79_1, ) = ulid78;
                                                    *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(t79_0);
                                                    *((base + 40) as *mut i64) = wit_bindgen::rt::as_i64(t79_1);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeProceduralTextureHandle(e) => {
                                                *((base + 16) as *mut u8) = (27i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::client_texture::Handle{ ulid:ulid80, } = e;
                                                    let (t81_0, t81_1, ) = ulid80;
                                                    *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(t81_0);
                                                    *((base + 40) as *mut i64) = wit_bindgen::rt::as_i64(t81_1);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeProceduralSamplerHandle(e) => {
                                                *((base + 16) as *mut u8) = (28i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::client_sampler::Handle{ ulid:ulid82, } = e;
                                                    let (t83_0, t83_1, ) = ulid82;
                                                    *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(t83_0);
                                                    *((base + 40) as *mut i64) = wit_bindgen::rt::as_i64(t83_1);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                              super::super::super::ambient::bindings::component::OptionValue::TypeProceduralMaterialHandle(e) => {
                                                *((base + 16) as *mut u8) = (29i32) as u8;
                                                match e {
                                                  Some(e) => {
                                                    *((base + 24) as *mut u8) = (1i32) as u8;
                                                    let super::super::super::ambient::bindings::client_material::Handle{ ulid:ulid84, } = e;
                                                    let (t85_0, t85_1, ) = ulid84;
                                                    *((base + 32) as *mut i64) = wit_bindgen::rt::as_i64(t85_0);
                                                    *((base + 40) as *mut i64) = wit_bindgen::rt::as_i64(t85_1);
                                                    
                                                  },
                                                  None => {
                                                    {
                                                      *((base + 24) as *mut u8) = (0i32) as u8;
                                                      
                                                    }
                                                  },
                                                };
                                              },
                                            };
                                            
                                          },
                                        };
                                        
                                      }}
                                      let ptr87 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/entity")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "spawn")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/entity_spawn")]
                                        fn wit_import(
                                        _: i32, _: i32, _: i32, );
                                      }
                                      wit_import(result86 as i32, len86, ptr87);
                                      if layout86.size() != 0 {
                                        alloc::dealloc(result86, layout86);
                                      }
                                      for (ptr, layout) in cleanup_list {
                                        
                                        if layout.size() != 0 {
                                          
                                          alloc::dealloc(ptr, layout);
                                          
                                        }
                                        
                                      }
                                      super::super::super::ambient::bindings::types::EntityId{id0:*((ptr87 + 0) as *const i64) as u64, id1:*((ptr87 + 8) as *const i64) as u64, }
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn despawn(entity: EntityId,) -> Option<EntityData>{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(4))]
                                      struct RetArea([u8; 12]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                      let ptr1 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/entity")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "despawn")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/entity_despawn")]
                                        fn wit_import(
                                        _: i64, _: i64, _: i32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), ptr1);
                                      match i32::from(*((ptr1 + 0) as *const u8)) {
                                        0 => None,
                                        1 => Some({
                                          let base35 = *((ptr1 + 4) as *const i32);
                                          let len35 = *((ptr1 + 8) as *const i32);
                                          let mut result35 = Vec::with_capacity(len35 as usize);
                                          for i in 0..len35 {
                                            let base = base35 + i *96;
                                            result35.push((*((base + 0) as *const i32) as u32, {{match i32::from(*((base + 8) as *const u8)) {
                                              0 => super::super::super::ambient::bindings::component::Value::TypeEmpty(super::super::super::ambient::bindings::types::Empty{dummy:i32::from(*((base + 16) as *const u8)) as u8, }),
                                              1 => super::super::super::ambient::bindings::component::Value::TypeBool({
                                                #[cfg(not(debug_assertions))]
                                                { ::core::mem::transmute::<u8, bool>(i32::from(*((base + 16) as *const u8)) as u8) }
                                                #[cfg(debug_assertions)]
                                                {
                                                  match i32::from(*((base + 16) as *const u8)) {
                                                    0 => false,
                                                    1 => true,
                                                    _ => panic!("invalid bool discriminant"),
                                                  }
                                                }
                                              }),
                                              2 => super::super::super::ambient::bindings::component::Value::TypeEntityId(super::super::super::ambient::bindings::types::EntityId{id0:*((base + 16) as *const i64) as u64, id1:*((base + 24) as *const i64) as u64, }),
                                              3 => super::super::super::ambient::bindings::component::Value::TypeF32(*((base + 16) as *const f32)),
                                              4 => super::super::super::ambient::bindings::component::Value::TypeF64(*((base + 16) as *const f64)),
                                              5 => super::super::super::ambient::bindings::component::Value::TypeMat4(super::super::super::ambient::bindings::types::Mat4{x:super::super::super::ambient::bindings::types::Vec4{x:*((base + 16) as *const f32), y:*((base + 20) as *const f32), z:*((base + 24) as *const f32), w:*((base + 28) as *const f32), }, y:super::super::super::ambient::bindings::types::Vec4{x:*((base + 32) as *const f32), y:*((base + 36) as *const f32), z:*((base + 40) as *const f32), w:*((base + 44) as *const f32), }, z:super::super::super::ambient::bindings::types::Vec4{x:*((base + 48) as *const f32), y:*((base + 52) as *const f32), z:*((base + 56) as *const f32), w:*((base + 60) as *const f32), }, w:super::super::super::ambient::bindings::types::Vec4{x:*((base + 64) as *const f32), y:*((base + 68) as *const f32), z:*((base + 72) as *const f32), w:*((base + 76) as *const f32), }, }),
                                              6 => super::super::super::ambient::bindings::component::Value::TypeQuat(super::super::super::ambient::bindings::types::Quat{x:*((base + 16) as *const f32), y:*((base + 20) as *const f32), z:*((base + 24) as *const f32), w:*((base + 28) as *const f32), }),
                                              7 => super::super::super::ambient::bindings::component::Value::TypeString({
                                                let len2 = *((base + 20) as *const i32) as usize;
                                                
                                                {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((base + 16) as *const i32) as *mut _, len2, len2))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((base + 16) as *const i32) as *mut _, len2, len2)).unwrap()}}
                                              }),
                                              8 => super::super::super::ambient::bindings::component::Value::TypeU8(i32::from(*((base + 16) as *const u8)) as u8),
                                              9 => super::super::super::ambient::bindings::component::Value::TypeU16(i32::from(*((base + 16) as *const u16)) as u16),
                                              10 => super::super::super::ambient::bindings::component::Value::TypeU32(*((base + 16) as *const i32) as u32),
                                              11 => super::super::super::ambient::bindings::component::Value::TypeU64(*((base + 16) as *const i64) as u64),
                                              12 => super::super::super::ambient::bindings::component::Value::TypeI8(i32::from(*((base + 16) as *const i8)) as i8),
                                              13 => super::super::super::ambient::bindings::component::Value::TypeI16(i32::from(*((base + 16) as *const i16)) as i16),
                                              14 => super::super::super::ambient::bindings::component::Value::TypeI32(*((base + 16) as *const i32)),
                                              15 => super::super::super::ambient::bindings::component::Value::TypeI64(*((base + 16) as *const i64)),
                                              16 => super::super::super::ambient::bindings::component::Value::TypeVec2(super::super::super::ambient::bindings::types::Vec2{x:*((base + 16) as *const f32), y:*((base + 20) as *const f32), }),
                                              17 => super::super::super::ambient::bindings::component::Value::TypeVec3(super::super::super::ambient::bindings::types::Vec3{x:*((base + 16) as *const f32), y:*((base + 20) as *const f32), z:*((base + 24) as *const f32), }),
                                              18 => super::super::super::ambient::bindings::component::Value::TypeVec4(super::super::super::ambient::bindings::types::Vec4{x:*((base + 16) as *const f32), y:*((base + 20) as *const f32), z:*((base + 24) as *const f32), w:*((base + 28) as *const f32), }),
                                              19 => super::super::super::ambient::bindings::component::Value::TypeUvec2(super::super::super::ambient::bindings::types::Uvec2{x:*((base + 16) as *const i32) as u32, y:*((base + 20) as *const i32) as u32, }),
                                              20 => super::super::super::ambient::bindings::component::Value::TypeUvec3(super::super::super::ambient::bindings::types::Uvec3{x:*((base + 16) as *const i32) as u32, y:*((base + 20) as *const i32) as u32, z:*((base + 24) as *const i32) as u32, }),
                                              21 => super::super::super::ambient::bindings::component::Value::TypeUvec4(super::super::super::ambient::bindings::types::Uvec4{x:*((base + 16) as *const i32) as u32, y:*((base + 20) as *const i32) as u32, z:*((base + 24) as *const i32) as u32, w:*((base + 28) as *const i32) as u32, }),
                                              22 => super::super::super::ambient::bindings::component::Value::TypeIvec2(super::super::super::ambient::bindings::types::Ivec2{x:*((base + 16) as *const i32), y:*((base + 20) as *const i32), }),
                                              23 => super::super::super::ambient::bindings::component::Value::TypeIvec3(super::super::super::ambient::bindings::types::Ivec3{x:*((base + 16) as *const i32), y:*((base + 20) as *const i32), z:*((base + 24) as *const i32), }),
                                              24 => super::super::super::ambient::bindings::component::Value::TypeIvec4(super::super::super::ambient::bindings::types::Ivec4{x:*((base + 16) as *const i32), y:*((base + 20) as *const i32), z:*((base + 24) as *const i32), w:*((base + 28) as *const i32), }),
                                              25 => super::super::super::ambient::bindings::component::Value::TypeDuration(super::super::super::ambient::bindings::types::Duration{seconds:*((base + 16) as *const i64) as u64, nanoseconds:*((base + 24) as *const i32) as u32, }),
                                              26 => super::super::super::ambient::bindings::component::Value::TypeProceduralMeshHandle(super::super::super::ambient::bindings::client_mesh::Handle{ulid:(*((base + 16) as *const i64) as u64, *((base + 24) as *const i64) as u64), }),
                                              27 => super::super::super::ambient::bindings::component::Value::TypeProceduralTextureHandle(super::super::super::ambient::bindings::client_texture::Handle{ulid:(*((base + 16) as *const i64) as u64, *((base + 24) as *const i64) as u64), }),
                                              28 => super::super::super::ambient::bindings::component::Value::TypeProceduralSamplerHandle(super::super::super::ambient::bindings::client_sampler::Handle{ulid:(*((base + 16) as *const i64) as u64, *((base + 24) as *const i64) as u64), }),
                                              29 => super::super::super::ambient::bindings::component::Value::TypeProceduralMaterialHandle(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 16) as *const i64) as u64, *((base + 24) as *const i64) as u64), }),
                                              30 => super::super::super::ambient::bindings::component::Value::TypeVec({{match i32::from(*((base + 16) as *const u8)) {
                                                0 => super::super::super::ambient::bindings::component::VecValue::TypeEmpty({
                                                  let len3 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len3, len3)
                                                }),
                                                1 => super::super::super::ambient::bindings::component::VecValue::TypeBool({
                                                  let base4 = *((base + 20) as *const i32);
                                                  let len4 = *((base + 24) as *const i32);
                                                  let mut result4 = Vec::with_capacity(len4 as usize);
                                                  for i in 0..len4 {
                                                    let base = base4 + i *1;
                                                    result4.push({
                                                      #[cfg(not(debug_assertions))]
                                                      { ::core::mem::transmute::<u8, bool>(i32::from(*((base + 0) as *const u8)) as u8) }
                                                      #[cfg(debug_assertions)]
                                                      {
                                                        match i32::from(*((base + 0) as *const u8)) {
                                                          0 => false,
                                                          1 => true,
                                                          _ => panic!("invalid bool discriminant"),
                                                        }
                                                      }
                                                    });
                                                  }
                                                  wit_bindgen::rt::dealloc(base4, (len4 as usize) * 1, 1);
                                                  
                                                  result4
                                                }),
                                                2 => super::super::super::ambient::bindings::component::VecValue::TypeEntityId({
                                                  let len5 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len5, len5)
                                                }),
                                                3 => super::super::super::ambient::bindings::component::VecValue::TypeF32({
                                                  let len6 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len6, len6)
                                                }),
                                                4 => super::super::super::ambient::bindings::component::VecValue::TypeF64({
                                                  let len7 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len7, len7)
                                                }),
                                                5 => super::super::super::ambient::bindings::component::VecValue::TypeMat4({
                                                  let len8 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len8, len8)
                                                }),
                                                6 => super::super::super::ambient::bindings::component::VecValue::TypeQuat({
                                                  let len9 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len9, len9)
                                                }),
                                                7 => super::super::super::ambient::bindings::component::VecValue::TypeString({
                                                  let base11 = *((base + 20) as *const i32);
                                                  let len11 = *((base + 24) as *const i32);
                                                  let mut result11 = Vec::with_capacity(len11 as usize);
                                                  for i in 0..len11 {
                                                    let base = base11 + i *8;
                                                    result11.push({
                                                      let len10 = *((base + 4) as *const i32) as usize;
                                                      
                                                      {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((base + 0) as *const i32) as *mut _, len10, len10))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((base + 0) as *const i32) as *mut _, len10, len10)).unwrap()}}
                                                    });
                                                  }
                                                  wit_bindgen::rt::dealloc(base11, (len11 as usize) * 8, 4);
                                                  
                                                  result11
                                                }),
                                                8 => super::super::super::ambient::bindings::component::VecValue::TypeU8({
                                                  let len12 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len12, len12)
                                                }),
                                                9 => super::super::super::ambient::bindings::component::VecValue::TypeU16({
                                                  let len13 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len13, len13)
                                                }),
                                                10 => super::super::super::ambient::bindings::component::VecValue::TypeU32({
                                                  let len14 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len14, len14)
                                                }),
                                                11 => super::super::super::ambient::bindings::component::VecValue::TypeU64({
                                                  let len15 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len15, len15)
                                                }),
                                                12 => super::super::super::ambient::bindings::component::VecValue::TypeI8({
                                                  let len16 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len16, len16)
                                                }),
                                                13 => super::super::super::ambient::bindings::component::VecValue::TypeI16({
                                                  let len17 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len17, len17)
                                                }),
                                                14 => super::super::super::ambient::bindings::component::VecValue::TypeI32({
                                                  let len18 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len18, len18)
                                                }),
                                                15 => super::super::super::ambient::bindings::component::VecValue::TypeI64({
                                                  let len19 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len19, len19)
                                                }),
                                                16 => super::super::super::ambient::bindings::component::VecValue::TypeVec2({
                                                  let len20 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len20, len20)
                                                }),
                                                17 => super::super::super::ambient::bindings::component::VecValue::TypeVec3({
                                                  let len21 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len21, len21)
                                                }),
                                                18 => super::super::super::ambient::bindings::component::VecValue::TypeVec4({
                                                  let len22 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len22, len22)
                                                }),
                                                19 => super::super::super::ambient::bindings::component::VecValue::TypeUvec2({
                                                  let len23 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len23, len23)
                                                }),
                                                20 => super::super::super::ambient::bindings::component::VecValue::TypeUvec3({
                                                  let len24 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len24, len24)
                                                }),
                                                21 => super::super::super::ambient::bindings::component::VecValue::TypeUvec4({
                                                  let len25 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len25, len25)
                                                }),
                                                22 => super::super::super::ambient::bindings::component::VecValue::TypeIvec2({
                                                  let len26 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len26, len26)
                                                }),
                                                23 => super::super::super::ambient::bindings::component::VecValue::TypeIvec3({
                                                  let len27 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len27, len27)
                                                }),
                                                24 => super::super::super::ambient::bindings::component::VecValue::TypeIvec4({
                                                  let len28 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len28, len28)
                                                }),
                                                25 => super::super::super::ambient::bindings::component::VecValue::TypeDuration({
                                                  let len29 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len29, len29)
                                                }),
                                                26 => super::super::super::ambient::bindings::component::VecValue::TypeProceduralMeshHandle({
                                                  let len30 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len30, len30)
                                                }),
                                                27 => super::super::super::ambient::bindings::component::VecValue::TypeProceduralTextureHandle({
                                                  let len31 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len31, len31)
                                                }),
                                                28 => super::super::super::ambient::bindings::component::VecValue::TypeProceduralSamplerHandle({
                                                  let len32 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len32, len32)
                                                }),
                                                #[cfg(debug_assertions)]29 => super::super::super::ambient::bindings::component::VecValue::TypeProceduralMaterialHandle({
                                                  let len33 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len33, len33)
                                                }),
                                                #[cfg(not(debug_assertions))]_ => super::super::super::ambient::bindings::component::VecValue::TypeProceduralMaterialHandle({
                                                  let len33 = *((base + 24) as *const i32) as usize;
                                                  
                                                  Vec::from_raw_parts(*((base + 20) as *const i32) as *mut _, len33, len33)
                                                }),
                                                #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                                              }}}),
                                              #[cfg(debug_assertions)]31 => super::super::super::ambient::bindings::component::Value::TypeOption({{match i32::from(*((base + 16) as *const u8)) {
                                                0 => super::super::super::ambient::bindings::component::OptionValue::TypeEmpty(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Empty{dummy:i32::from(*((base + 25) as *const u8)) as u8, }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                1 => super::super::super::ambient::bindings::component::OptionValue::TypeBool(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some({
                                                    #[cfg(not(debug_assertions))]
                                                    { ::core::mem::transmute::<u8, bool>(i32::from(*((base + 25) as *const u8)) as u8) }
                                                    #[cfg(debug_assertions)]
                                                    {
                                                      match i32::from(*((base + 25) as *const u8)) {
                                                        0 => false,
                                                        1 => true,
                                                        _ => panic!("invalid bool discriminant"),
                                                      }
                                                    }
                                                  }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                2 => super::super::super::ambient::bindings::component::OptionValue::TypeEntityId(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::EntityId{id0:*((base + 32) as *const i64) as u64, id1:*((base + 40) as *const i64) as u64, }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                3 => super::super::super::ambient::bindings::component::OptionValue::TypeF32(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(*((base + 28) as *const f32)),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                4 => super::super::super::ambient::bindings::component::OptionValue::TypeF64(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(*((base + 32) as *const f64)),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                5 => super::super::super::ambient::bindings::component::OptionValue::TypeMat4(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Mat4{x:super::super::super::ambient::bindings::types::Vec4{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }, y:super::super::super::ambient::bindings::types::Vec4{x:*((base + 44) as *const f32), y:*((base + 48) as *const f32), z:*((base + 52) as *const f32), w:*((base + 56) as *const f32), }, z:super::super::super::ambient::bindings::types::Vec4{x:*((base + 60) as *const f32), y:*((base + 64) as *const f32), z:*((base + 68) as *const f32), w:*((base + 72) as *const f32), }, w:super::super::super::ambient::bindings::types::Vec4{x:*((base + 76) as *const f32), y:*((base + 80) as *const f32), z:*((base + 84) as *const f32), w:*((base + 88) as *const f32), }, }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                6 => super::super::super::ambient::bindings::component::OptionValue::TypeQuat(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Quat{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                7 => super::super::super::ambient::bindings::component::OptionValue::TypeString(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some({
                                                    let len34 = *((base + 32) as *const i32) as usize;
                                                    
                                                    {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((base + 28) as *const i32) as *mut _, len34, len34))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((base + 28) as *const i32) as *mut _, len34, len34)).unwrap()}}
                                                  }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                8 => super::super::super::ambient::bindings::component::OptionValue::TypeU8(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(i32::from(*((base + 25) as *const u8)) as u8),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                9 => super::super::super::ambient::bindings::component::OptionValue::TypeU16(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(i32::from(*((base + 26) as *const u16)) as u16),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                10 => super::super::super::ambient::bindings::component::OptionValue::TypeU32(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(*((base + 28) as *const i32) as u32),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                11 => super::super::super::ambient::bindings::component::OptionValue::TypeU64(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(*((base + 32) as *const i64) as u64),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                12 => super::super::super::ambient::bindings::component::OptionValue::TypeI8(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(i32::from(*((base + 25) as *const i8)) as i8),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                13 => super::super::super::ambient::bindings::component::OptionValue::TypeI16(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(i32::from(*((base + 26) as *const i16)) as i16),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                14 => super::super::super::ambient::bindings::component::OptionValue::TypeI32(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(*((base + 28) as *const i32)),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                15 => super::super::super::ambient::bindings::component::OptionValue::TypeI64(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(*((base + 32) as *const i64)),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                16 => super::super::super::ambient::bindings::component::OptionValue::TypeVec2(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Vec2{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                17 => super::super::super::ambient::bindings::component::OptionValue::TypeVec3(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Vec3{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                18 => super::super::super::ambient::bindings::component::OptionValue::TypeVec4(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Vec4{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                19 => super::super::super::ambient::bindings::component::OptionValue::TypeUvec2(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Uvec2{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                20 => super::super::super::ambient::bindings::component::OptionValue::TypeUvec3(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Uvec3{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, z:*((base + 36) as *const i32) as u32, }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                21 => super::super::super::ambient::bindings::component::OptionValue::TypeUvec4(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Uvec4{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, z:*((base + 36) as *const i32) as u32, w:*((base + 40) as *const i32) as u32, }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                22 => super::super::super::ambient::bindings::component::OptionValue::TypeIvec2(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Ivec2{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                23 => super::super::super::ambient::bindings::component::OptionValue::TypeIvec3(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Ivec3{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), z:*((base + 36) as *const i32), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                24 => super::super::super::ambient::bindings::component::OptionValue::TypeIvec4(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Ivec4{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), z:*((base + 36) as *const i32), w:*((base + 40) as *const i32), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                25 => super::super::super::ambient::bindings::component::OptionValue::TypeDuration(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Duration{seconds:*((base + 32) as *const i64) as u64, nanoseconds:*((base + 40) as *const i32) as u32, }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                26 => super::super::super::ambient::bindings::component::OptionValue::TypeProceduralMeshHandle(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::client_mesh::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                27 => super::super::super::ambient::bindings::component::OptionValue::TypeProceduralTextureHandle(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::client_texture::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                28 => super::super::super::ambient::bindings::component::OptionValue::TypeProceduralSamplerHandle(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::client_sampler::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                #[cfg(debug_assertions)]29 => super::super::super::ambient::bindings::component::OptionValue::TypeProceduralMaterialHandle(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                #[cfg(not(debug_assertions))]_ => super::super::super::ambient::bindings::component::OptionValue::TypeProceduralMaterialHandle(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                                              }}}),
                                              #[cfg(not(debug_assertions))]_ => super::super::super::ambient::bindings::component::Value::TypeOption({{match i32::from(*((base + 16) as *const u8)) {
                                                0 => super::super::super::ambient::bindings::component::OptionValue::TypeEmpty(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Empty{dummy:i32::from(*((base + 25) as *const u8)) as u8, }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                1 => super::super::super::ambient::bindings::component::OptionValue::TypeBool(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some({
                                                    #[cfg(not(debug_assertions))]
                                                    { ::core::mem::transmute::<u8, bool>(i32::from(*((base + 25) as *const u8)) as u8) }
                                                    #[cfg(debug_assertions)]
                                                    {
                                                      match i32::from(*((base + 25) as *const u8)) {
                                                        0 => false,
                                                        1 => true,
                                                        _ => panic!("invalid bool discriminant"),
                                                      }
                                                    }
                                                  }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                2 => super::super::super::ambient::bindings::component::OptionValue::TypeEntityId(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::EntityId{id0:*((base + 32) as *const i64) as u64, id1:*((base + 40) as *const i64) as u64, }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                3 => super::super::super::ambient::bindings::component::OptionValue::TypeF32(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(*((base + 28) as *const f32)),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                4 => super::super::super::ambient::bindings::component::OptionValue::TypeF64(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(*((base + 32) as *const f64)),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                5 => super::super::super::ambient::bindings::component::OptionValue::TypeMat4(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Mat4{x:super::super::super::ambient::bindings::types::Vec4{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }, y:super::super::super::ambient::bindings::types::Vec4{x:*((base + 44) as *const f32), y:*((base + 48) as *const f32), z:*((base + 52) as *const f32), w:*((base + 56) as *const f32), }, z:super::super::super::ambient::bindings::types::Vec4{x:*((base + 60) as *const f32), y:*((base + 64) as *const f32), z:*((base + 68) as *const f32), w:*((base + 72) as *const f32), }, w:super::super::super::ambient::bindings::types::Vec4{x:*((base + 76) as *const f32), y:*((base + 80) as *const f32), z:*((base + 84) as *const f32), w:*((base + 88) as *const f32), }, }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                6 => super::super::super::ambient::bindings::component::OptionValue::TypeQuat(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Quat{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                7 => super::super::super::ambient::bindings::component::OptionValue::TypeString(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some({
                                                    let len34 = *((base + 32) as *const i32) as usize;
                                                    
                                                    {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(*((base + 28) as *const i32) as *mut _, len34, len34))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(*((base + 28) as *const i32) as *mut _, len34, len34)).unwrap()}}
                                                  }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                8 => super::super::super::ambient::bindings::component::OptionValue::TypeU8(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(i32::from(*((base + 25) as *const u8)) as u8),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                9 => super::super::super::ambient::bindings::component::OptionValue::TypeU16(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(i32::from(*((base + 26) as *const u16)) as u16),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                10 => super::super::super::ambient::bindings::component::OptionValue::TypeU32(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(*((base + 28) as *const i32) as u32),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                11 => super::super::super::ambient::bindings::component::OptionValue::TypeU64(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(*((base + 32) as *const i64) as u64),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                12 => super::super::super::ambient::bindings::component::OptionValue::TypeI8(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(i32::from(*((base + 25) as *const i8)) as i8),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                13 => super::super::super::ambient::bindings::component::OptionValue::TypeI16(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(i32::from(*((base + 26) as *const i16)) as i16),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                14 => super::super::super::ambient::bindings::component::OptionValue::TypeI32(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(*((base + 28) as *const i32)),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                15 => super::super::super::ambient::bindings::component::OptionValue::TypeI64(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(*((base + 32) as *const i64)),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                16 => super::super::super::ambient::bindings::component::OptionValue::TypeVec2(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Vec2{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                17 => super::super::super::ambient::bindings::component::OptionValue::TypeVec3(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Vec3{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                18 => super::super::super::ambient::bindings::component::OptionValue::TypeVec4(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Vec4{x:*((base + 28) as *const f32), y:*((base + 32) as *const f32), z:*((base + 36) as *const f32), w:*((base + 40) as *const f32), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                19 => super::super::super::ambient::bindings::component::OptionValue::TypeUvec2(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Uvec2{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                20 => super::super::super::ambient::bindings::component::OptionValue::TypeUvec3(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Uvec3{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, z:*((base + 36) as *const i32) as u32, }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                21 => super::super::super::ambient::bindings::component::OptionValue::TypeUvec4(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Uvec4{x:*((base + 28) as *const i32) as u32, y:*((base + 32) as *const i32) as u32, z:*((base + 36) as *const i32) as u32, w:*((base + 40) as *const i32) as u32, }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                22 => super::super::super::ambient::bindings::component::OptionValue::TypeIvec2(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Ivec2{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                23 => super::super::super::ambient::bindings::component::OptionValue::TypeIvec3(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Ivec3{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), z:*((base + 36) as *const i32), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                24 => super::super::super::ambient::bindings::component::OptionValue::TypeIvec4(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Ivec4{x:*((base + 28) as *const i32), y:*((base + 32) as *const i32), z:*((base + 36) as *const i32), w:*((base + 40) as *const i32), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                25 => super::super::super::ambient::bindings::component::OptionValue::TypeDuration(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::types::Duration{seconds:*((base + 32) as *const i64) as u64, nanoseconds:*((base + 40) as *const i32) as u32, }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                26 => super::super::super::ambient::bindings::component::OptionValue::TypeProceduralMeshHandle(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::client_mesh::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                27 => super::super::super::ambient::bindings::component::OptionValue::TypeProceduralTextureHandle(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::client_texture::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                28 => super::super::super::ambient::bindings::component::OptionValue::TypeProceduralSamplerHandle(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::client_sampler::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                #[cfg(debug_assertions)]29 => super::super::super::ambient::bindings::component::OptionValue::TypeProceduralMaterialHandle(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                #[cfg(not(debug_assertions))]_ => super::super::super::ambient::bindings::component::OptionValue::TypeProceduralMaterialHandle(match i32::from(*((base + 24) as *const u8)) {
                                                  0 => None,
                                                  1 => Some(super::super::super::ambient::bindings::client_material::Handle{ulid:(*((base + 32) as *const i64) as u64, *((base + 40) as *const i64) as u64), }),
                                                  #[cfg(not(debug_assertions))]
                                                  _ => ::core::hint::unreachable_unchecked(),
                                                  #[cfg(debug_assertions)]
                                                  _ => panic!("invalid enum discriminant"),
                                                }),
                                                #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                                              }}}),
                                              #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                                            }}}));
                                          }
                                          wit_bindgen::rt::dealloc(base35, (len35 as usize) * 96, 8);
                                          
                                          result35
                                        }),
                                        #[cfg(not(debug_assertions))]
                                        _ => ::core::hint::unreachable_unchecked(),
                                        #[cfg(debug_assertions)]
                                        _ => panic!("invalid enum discriminant"),
                                      }
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn in_area(position: Vec3,radius: f32,) -> wit_bindgen::rt::vec::Vec::<EntityId>{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(4))]
                                      struct RetArea([u8; 8]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x0, y:y0, z:z0, } = position;
                                      let ptr1 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/entity")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "in-area")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/entity_in-area")]
                                        fn wit_import(
                                        _: f32, _: f32, _: f32, _: f32, _: i32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_f32(x0), wit_bindgen::rt::as_f32(y0), wit_bindgen::rt::as_f32(z0), wit_bindgen::rt::as_f32(radius), ptr1);
                                      let len2 = *((ptr1 + 4) as *const i32) as usize;
                                      Vec::from_raw_parts(*((ptr1 + 0) as *const i32) as *mut _, len2, len2)
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn exists(entity: EntityId,) -> bool{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/entity")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "exists")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/entity_exists")]
                                        fn wit_import(
                                        _: i64, _: i64, ) -> i32;
                                      }
                                      let ret = wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10));
                                      {
                                        #[cfg(not(debug_assertions))]
                                        { ::core::mem::transmute::<u8, bool>(ret as u8) }
                                        #[cfg(debug_assertions)]
                                        {
                                          match ret {
                                            0 => false,
                                            1 => true,
                                            _ => panic!("invalid bool discriminant"),
                                          }
                                        }
                                      }
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn get_all(index: u32,) -> wit_bindgen::rt::vec::Vec::<EntityId>{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(4))]
                                      struct RetArea([u8; 8]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let ptr0 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/entity")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "get-all")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/entity_get-all")]
                                        fn wit_import(
                                        _: i32, _: i32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_i32(index), ptr0);
                                      let len1 = *((ptr0 + 4) as *const i32) as usize;
                                      Vec::from_raw_parts(*((ptr0 + 0) as *const i32) as *mut _, len1, len1)
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn resources() -> EntityId{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(8))]
                                      struct RetArea([u8; 16]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let ptr0 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/entity")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "resources")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/entity_resources")]
                                        fn wit_import(
                                        _: i32, );
                                      }
                                      wit_import(ptr0);
                                      super::super::super::ambient::bindings::types::EntityId{id0:*((ptr0 + 0) as *const i64) as u64, id1:*((ptr0 + 8) as *const i64) as u64, }
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn synchronized_resources() -> EntityId{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(8))]
                                      struct RetArea([u8; 16]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let ptr0 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/entity")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "synchronized-resources")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/entity_synchronized-resources")]
                                        fn wit_import(
                                        _: i32, );
                                      }
                                      wit_import(ptr0);
                                      super::super::super::ambient::bindings::types::EntityId{id0:*((ptr0 + 0) as *const i64) as u64, id1:*((ptr0 + 8) as *const i64) as u64, }
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn persisted_resources() -> EntityId{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(8))]
                                      struct RetArea([u8; 16]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let ptr0 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/entity")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "persisted-resources")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/entity_persisted-resources")]
                                        fn wit_import(
                                        _: i32, );
                                      }
                                      wit_import(ptr0);
                                      super::super::super::ambient::bindings::types::EntityId{id0:*((ptr0 + 0) as *const i64) as u64, id1:*((ptr0 + 8) as *const i64) as u64, }
                                    }
                                  }
                                  
                                }
                                
                                
                                #[allow(clippy::all)]
                                pub mod message {
                                  #[used]
                                  #[doc(hidden)]
                                  #[cfg(target_arch = "wasm32")]
                                  static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
                                  
                                  #[allow(clippy::all)]
                                  pub fn subscribe(name: &str,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let vec0 = name;
                                      let ptr0 = vec0.as_ptr() as i32;
                                      let len0 = vec0.len() as i32;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/message")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "subscribe")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/message_subscribe")]
                                        fn wit_import(
                                        _: i32, _: i32, );
                                      }
                                      wit_import(ptr0, len0);
                                    }
                                  }
                                  
                                }
                                
                                
                                #[allow(clippy::all)]
                                pub mod player {
                                  #[used]
                                  #[doc(hidden)]
                                  #[cfg(target_arch = "wasm32")]
                                  static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
                                  
                                  pub type EntityId = super::super::super::ambient::bindings::types::EntityId;
                                  #[allow(clippy::all)]
                                  pub fn get_by_user_id(user_id: &str,) -> Option<EntityId>{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(8))]
                                      struct RetArea([u8; 24]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let vec0 = user_id;
                                      let ptr0 = vec0.as_ptr() as i32;
                                      let len0 = vec0.len() as i32;
                                      let ptr1 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/player")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "get-by-user-id")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/player_get-by-user-id")]
                                        fn wit_import(
                                        _: i32, _: i32, _: i32, );
                                      }
                                      wit_import(ptr0, len0, ptr1);
                                      match i32::from(*((ptr1 + 0) as *const u8)) {
                                        0 => None,
                                        1 => Some(super::super::super::ambient::bindings::types::EntityId{id0:*((ptr1 + 8) as *const i64) as u64, id1:*((ptr1 + 16) as *const i64) as u64, }),
                                        #[cfg(not(debug_assertions))]
                                        _ => ::core::hint::unreachable_unchecked(),
                                        #[cfg(debug_assertions)]
                                        _ => panic!("invalid enum discriminant"),
                                      }
                                    }
                                  }
                                  
                                }
                                
                                
                                #[allow(clippy::all)]
                                pub mod ambient_package {
                                  #[used]
                                  #[doc(hidden)]
                                  #[cfg(target_arch = "wasm32")]
                                  static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
                                  
                                  pub type EntityId = super::super::super::ambient::bindings::types::EntityId;
                                  #[allow(clippy::all)]
                                  pub fn get_entity_for_package_id(package_id: &str,) -> Option<EntityId>{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(8))]
                                      struct RetArea([u8; 24]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let vec0 = package_id;
                                      let ptr0 = vec0.as_ptr() as i32;
                                      let len0 = vec0.len() as i32;
                                      let ptr1 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/ambient-package")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "get-entity-for-package-id")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/ambient-package_get-entity-for-package-id")]
                                        fn wit_import(
                                        _: i32, _: i32, _: i32, );
                                      }
                                      wit_import(ptr0, len0, ptr1);
                                      match i32::from(*((ptr1 + 0) as *const u8)) {
                                        0 => None,
                                        1 => Some(super::super::super::ambient::bindings::types::EntityId{id0:*((ptr1 + 8) as *const i64) as u64, id1:*((ptr1 + 16) as *const i64) as u64, }),
                                        #[cfg(not(debug_assertions))]
                                        _ => ::core::hint::unreachable_unchecked(),
                                        #[cfg(debug_assertions)]
                                        _ => panic!("invalid enum discriminant"),
                                      }
                                    }
                                  }
                                  
                                }
                                
                                
                                #[allow(clippy::all)]
                                pub mod client_message {
                                  #[used]
                                  #[doc(hidden)]
                                  #[cfg(target_arch = "wasm32")]
                                  static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
                                  
                                  pub type EntityId = super::super::super::ambient::bindings::types::EntityId;
                                  #[derive(Clone, Copy)]
                                  pub enum Target{
                                    ServerUnreliable,
                                    ServerReliable,
                                    LocalBroadcast(bool),
                                    Local(EntityId),
                                  }
                                  impl ::core::fmt::Debug for Target {
                                    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
                                      match self {
                                        Target::ServerUnreliable => {
                                          f.debug_tuple("Target::ServerUnreliable").finish()
                                        }
                                        Target::ServerReliable => {
                                          f.debug_tuple("Target::ServerReliable").finish()
                                        }
                                        Target::LocalBroadcast(e) => {
                                          f.debug_tuple("Target::LocalBroadcast").field(e).finish()
                                        }
                                        Target::Local(e) => {
                                          f.debug_tuple("Target::Local").field(e).finish()
                                        }
                                      }
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn send(target_id: Target,name: &str,data: &[u8],){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let (result1_0,result1_1,result1_2,) = match target_id {
                                        Target::ServerUnreliable=> {
                                          (0i32, 0i64, 0i64)
                                        }
                                        Target::ServerReliable=> {
                                          (1i32, 0i64, 0i64)
                                        }
                                        Target::LocalBroadcast(e) => (2i32, i64::from(match e { true => 1, false => 0 }), 0i64),
                                        Target::Local(e) => {
                                          let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = e;
                                          
                                          (3i32, wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10))
                                        },
                                      };
                                      let vec2 = name;
                                      let ptr2 = vec2.as_ptr() as i32;
                                      let len2 = vec2.len() as i32;
                                      let vec3 = data;
                                      let ptr3 = vec3.as_ptr() as i32;
                                      let len3 = vec3.len() as i32;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/client-message")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "send")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-message_send")]
                                        fn wit_import(
                                        _: i32, _: i64, _: i64, _: i32, _: i32, _: i32, _: i32, );
                                      }
                                      wit_import(result1_0, result1_1, result1_2, ptr2, len2, ptr3, len3);
                                    }
                                  }
                                  
                                }
                                
                                
                                #[allow(clippy::all)]
                                pub mod client_player {
                                  #[used]
                                  #[doc(hidden)]
                                  #[cfg(target_arch = "wasm32")]
                                  static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
                                  
                                  pub type EntityId = super::super::super::ambient::bindings::types::EntityId;
                                  #[allow(clippy::all)]
                                  pub fn get_local() -> EntityId{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(8))]
                                      struct RetArea([u8; 16]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let ptr0 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/client-player")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "get-local")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-player_get-local")]
                                        fn wit_import(
                                        _: i32, );
                                      }
                                      wit_import(ptr0);
                                      super::super::super::ambient::bindings::types::EntityId{id0:*((ptr0 + 0) as *const i64) as u64, id1:*((ptr0 + 8) as *const i64) as u64, }
                                    }
                                  }
                                  
                                }
                                
                                
                                #[allow(clippy::all)]
                                pub mod client_input {
                                  #[used]
                                  #[doc(hidden)]
                                  #[cfg(target_arch = "wasm32")]
                                  static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
                                  
                                  pub type Vec2 = super::super::super::ambient::bindings::types::Vec2;
                                  #[repr(u8)]
                                  #[derive(Clone, Copy, PartialEq, Eq)]
                                  pub enum VirtualKeyCode {
                                    /// The '1' key over the letters.
                                    Key1,
                                    /// The '2' key over the letters.
                                    Key2,
                                    /// The '3' key over the letters.
                                    Key3,
                                    /// The '4' key over the letters.
                                    Key4,
                                    /// The '5' key over the letters.
                                    Key5,
                                    /// The '6' key over the letters.
                                    Key6,
                                    /// The '7' key over the letters.
                                    Key7,
                                    /// The '8' key over the letters.
                                    Key8,
                                    /// The '9' key over the letters.
                                    Key9,
                                    /// The '0' key over the 'O' and 'P' keys.
                                    Key0,
                                    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,
                                    /// The Escape key, next to F1.
                                    Escape,
                                    F1,
                                    F2,
                                    F3,
                                    F4,
                                    F5,
                                    F6,
                                    F7,
                                    F8,
                                    F9,
                                    F10,
                                    F11,
                                    F12,
                                    F13,
                                    F14,
                                    F15,
                                    F16,
                                    F17,
                                    F18,
                                    F19,
                                    F20,
                                    F21,
                                    F22,
                                    F23,
                                    F24,
                                    /// Print Screen/SysRq.
                                    Snapshot,
                                    /// Scroll Lock.
                                    Scroll,
                                    /// Pause/Break key, next to Scroll lock.
                                    Pause,
                                    /// `Insert`, next to Backspace.
                                    Insert,
                                    Home,
                                    Delete,
                                    End,
                                    PageDown,
                                    PageUp,
                                    Left,
                                    Up,
                                    Right,
                                    Down,
                                    /// The Backspace key, right over Enter.
                                    Back,
                                    /// The Enter key.
                                    Return,
                                    /// The space bar.
                                    Space,
                                    /// The "Compose" key on Linux.
                                    Compose,
                                    Caret,
                                    Numlock,
                                    Numpad0,
                                    Numpad1,
                                    Numpad2,
                                    Numpad3,
                                    Numpad4,
                                    Numpad5,
                                    Numpad6,
                                    Numpad7,
                                    Numpad8,
                                    Numpad9,
                                    NumpadAdd,
                                    NumpadDivide,
                                    NumpadDecimal,
                                    NumpadComma,
                                    NumpadEnter,
                                    NumpadEquals,
                                    NumpadMultiply,
                                    NumpadSubtract,
                                    AbntC1,
                                    AbntC2,
                                    Apostrophe,
                                    Apps,
                                    Asterisk,
                                    At,
                                    Ax,
                                    Backslash,
                                    Calculator,
                                    Capital,
                                    Colon,
                                    Comma,
                                    Convert,
                                    Equals,
                                    Grave,
                                    Kana,
                                    Kanji,
                                    LAlt,
                                    LBracket,
                                    LControl,
                                    LShift,
                                    LWin,
                                    Mail,
                                    MediaSelect,
                                    MediaStop,
                                    Minus,
                                    Mute,
                                    MyComputer,
                                    NavigateForward,
                                    NavigateBackward,
                                    NextTrack,
                                    NoConvert,
                                    Oem102,
                                    Period,
                                    PlayPause,
                                    Plus,
                                    Power,
                                    PrevTrack,
                                    RAlt,
                                    RBracket,
                                    RControl,
                                    RShift,
                                    RWin,
                                    Semicolon,
                                    Slash,
                                    Sleep,
                                    Stop,
                                    Sysrq,
                                    Tab,
                                    Underline,
                                    Unlabeled,
                                    VolumeDown,
                                    VolumeUp,
                                    Wake,
                                    WebBack,
                                    WebFavorites,
                                    WebForward,
                                    WebHome,
                                    WebRefresh,
                                    WebSearch,
                                    WebStop,
                                    Yen,
                                    Copy,
                                    Paste,
                                    Cut,
                                  }
                                  impl ::core::fmt::Debug for VirtualKeyCode {
                                    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
                                      match self {
                                        VirtualKeyCode::Key1 => {
                                          f.debug_tuple("VirtualKeyCode::Key1").finish()
                                        }
                                        VirtualKeyCode::Key2 => {
                                          f.debug_tuple("VirtualKeyCode::Key2").finish()
                                        }
                                        VirtualKeyCode::Key3 => {
                                          f.debug_tuple("VirtualKeyCode::Key3").finish()
                                        }
                                        VirtualKeyCode::Key4 => {
                                          f.debug_tuple("VirtualKeyCode::Key4").finish()
                                        }
                                        VirtualKeyCode::Key5 => {
                                          f.debug_tuple("VirtualKeyCode::Key5").finish()
                                        }
                                        VirtualKeyCode::Key6 => {
                                          f.debug_tuple("VirtualKeyCode::Key6").finish()
                                        }
                                        VirtualKeyCode::Key7 => {
                                          f.debug_tuple("VirtualKeyCode::Key7").finish()
                                        }
                                        VirtualKeyCode::Key8 => {
                                          f.debug_tuple("VirtualKeyCode::Key8").finish()
                                        }
                                        VirtualKeyCode::Key9 => {
                                          f.debug_tuple("VirtualKeyCode::Key9").finish()
                                        }
                                        VirtualKeyCode::Key0 => {
                                          f.debug_tuple("VirtualKeyCode::Key0").finish()
                                        }
                                        VirtualKeyCode::A => {
                                          f.debug_tuple("VirtualKeyCode::A").finish()
                                        }
                                        VirtualKeyCode::B => {
                                          f.debug_tuple("VirtualKeyCode::B").finish()
                                        }
                                        VirtualKeyCode::C => {
                                          f.debug_tuple("VirtualKeyCode::C").finish()
                                        }
                                        VirtualKeyCode::D => {
                                          f.debug_tuple("VirtualKeyCode::D").finish()
                                        }
                                        VirtualKeyCode::E => {
                                          f.debug_tuple("VirtualKeyCode::E").finish()
                                        }
                                        VirtualKeyCode::F => {
                                          f.debug_tuple("VirtualKeyCode::F").finish()
                                        }
                                        VirtualKeyCode::G => {
                                          f.debug_tuple("VirtualKeyCode::G").finish()
                                        }
                                        VirtualKeyCode::H => {
                                          f.debug_tuple("VirtualKeyCode::H").finish()
                                        }
                                        VirtualKeyCode::I => {
                                          f.debug_tuple("VirtualKeyCode::I").finish()
                                        }
                                        VirtualKeyCode::J => {
                                          f.debug_tuple("VirtualKeyCode::J").finish()
                                        }
                                        VirtualKeyCode::K => {
                                          f.debug_tuple("VirtualKeyCode::K").finish()
                                        }
                                        VirtualKeyCode::L => {
                                          f.debug_tuple("VirtualKeyCode::L").finish()
                                        }
                                        VirtualKeyCode::M => {
                                          f.debug_tuple("VirtualKeyCode::M").finish()
                                        }
                                        VirtualKeyCode::N => {
                                          f.debug_tuple("VirtualKeyCode::N").finish()
                                        }
                                        VirtualKeyCode::O => {
                                          f.debug_tuple("VirtualKeyCode::O").finish()
                                        }
                                        VirtualKeyCode::P => {
                                          f.debug_tuple("VirtualKeyCode::P").finish()
                                        }
                                        VirtualKeyCode::Q => {
                                          f.debug_tuple("VirtualKeyCode::Q").finish()
                                        }
                                        VirtualKeyCode::R => {
                                          f.debug_tuple("VirtualKeyCode::R").finish()
                                        }
                                        VirtualKeyCode::S => {
                                          f.debug_tuple("VirtualKeyCode::S").finish()
                                        }
                                        VirtualKeyCode::T => {
                                          f.debug_tuple("VirtualKeyCode::T").finish()
                                        }
                                        VirtualKeyCode::U => {
                                          f.debug_tuple("VirtualKeyCode::U").finish()
                                        }
                                        VirtualKeyCode::V => {
                                          f.debug_tuple("VirtualKeyCode::V").finish()
                                        }
                                        VirtualKeyCode::W => {
                                          f.debug_tuple("VirtualKeyCode::W").finish()
                                        }
                                        VirtualKeyCode::X => {
                                          f.debug_tuple("VirtualKeyCode::X").finish()
                                        }
                                        VirtualKeyCode::Y => {
                                          f.debug_tuple("VirtualKeyCode::Y").finish()
                                        }
                                        VirtualKeyCode::Z => {
                                          f.debug_tuple("VirtualKeyCode::Z").finish()
                                        }
                                        VirtualKeyCode::Escape => {
                                          f.debug_tuple("VirtualKeyCode::Escape").finish()
                                        }
                                        VirtualKeyCode::F1 => {
                                          f.debug_tuple("VirtualKeyCode::F1").finish()
                                        }
                                        VirtualKeyCode::F2 => {
                                          f.debug_tuple("VirtualKeyCode::F2").finish()
                                        }
                                        VirtualKeyCode::F3 => {
                                          f.debug_tuple("VirtualKeyCode::F3").finish()
                                        }
                                        VirtualKeyCode::F4 => {
                                          f.debug_tuple("VirtualKeyCode::F4").finish()
                                        }
                                        VirtualKeyCode::F5 => {
                                          f.debug_tuple("VirtualKeyCode::F5").finish()
                                        }
                                        VirtualKeyCode::F6 => {
                                          f.debug_tuple("VirtualKeyCode::F6").finish()
                                        }
                                        VirtualKeyCode::F7 => {
                                          f.debug_tuple("VirtualKeyCode::F7").finish()
                                        }
                                        VirtualKeyCode::F8 => {
                                          f.debug_tuple("VirtualKeyCode::F8").finish()
                                        }
                                        VirtualKeyCode::F9 => {
                                          f.debug_tuple("VirtualKeyCode::F9").finish()
                                        }
                                        VirtualKeyCode::F10 => {
                                          f.debug_tuple("VirtualKeyCode::F10").finish()
                                        }
                                        VirtualKeyCode::F11 => {
                                          f.debug_tuple("VirtualKeyCode::F11").finish()
                                        }
                                        VirtualKeyCode::F12 => {
                                          f.debug_tuple("VirtualKeyCode::F12").finish()
                                        }
                                        VirtualKeyCode::F13 => {
                                          f.debug_tuple("VirtualKeyCode::F13").finish()
                                        }
                                        VirtualKeyCode::F14 => {
                                          f.debug_tuple("VirtualKeyCode::F14").finish()
                                        }
                                        VirtualKeyCode::F15 => {
                                          f.debug_tuple("VirtualKeyCode::F15").finish()
                                        }
                                        VirtualKeyCode::F16 => {
                                          f.debug_tuple("VirtualKeyCode::F16").finish()
                                        }
                                        VirtualKeyCode::F17 => {
                                          f.debug_tuple("VirtualKeyCode::F17").finish()
                                        }
                                        VirtualKeyCode::F18 => {
                                          f.debug_tuple("VirtualKeyCode::F18").finish()
                                        }
                                        VirtualKeyCode::F19 => {
                                          f.debug_tuple("VirtualKeyCode::F19").finish()
                                        }
                                        VirtualKeyCode::F20 => {
                                          f.debug_tuple("VirtualKeyCode::F20").finish()
                                        }
                                        VirtualKeyCode::F21 => {
                                          f.debug_tuple("VirtualKeyCode::F21").finish()
                                        }
                                        VirtualKeyCode::F22 => {
                                          f.debug_tuple("VirtualKeyCode::F22").finish()
                                        }
                                        VirtualKeyCode::F23 => {
                                          f.debug_tuple("VirtualKeyCode::F23").finish()
                                        }
                                        VirtualKeyCode::F24 => {
                                          f.debug_tuple("VirtualKeyCode::F24").finish()
                                        }
                                        VirtualKeyCode::Snapshot => {
                                          f.debug_tuple("VirtualKeyCode::Snapshot").finish()
                                        }
                                        VirtualKeyCode::Scroll => {
                                          f.debug_tuple("VirtualKeyCode::Scroll").finish()
                                        }
                                        VirtualKeyCode::Pause => {
                                          f.debug_tuple("VirtualKeyCode::Pause").finish()
                                        }
                                        VirtualKeyCode::Insert => {
                                          f.debug_tuple("VirtualKeyCode::Insert").finish()
                                        }
                                        VirtualKeyCode::Home => {
                                          f.debug_tuple("VirtualKeyCode::Home").finish()
                                        }
                                        VirtualKeyCode::Delete => {
                                          f.debug_tuple("VirtualKeyCode::Delete").finish()
                                        }
                                        VirtualKeyCode::End => {
                                          f.debug_tuple("VirtualKeyCode::End").finish()
                                        }
                                        VirtualKeyCode::PageDown => {
                                          f.debug_tuple("VirtualKeyCode::PageDown").finish()
                                        }
                                        VirtualKeyCode::PageUp => {
                                          f.debug_tuple("VirtualKeyCode::PageUp").finish()
                                        }
                                        VirtualKeyCode::Left => {
                                          f.debug_tuple("VirtualKeyCode::Left").finish()
                                        }
                                        VirtualKeyCode::Up => {
                                          f.debug_tuple("VirtualKeyCode::Up").finish()
                                        }
                                        VirtualKeyCode::Right => {
                                          f.debug_tuple("VirtualKeyCode::Right").finish()
                                        }
                                        VirtualKeyCode::Down => {
                                          f.debug_tuple("VirtualKeyCode::Down").finish()
                                        }
                                        VirtualKeyCode::Back => {
                                          f.debug_tuple("VirtualKeyCode::Back").finish()
                                        }
                                        VirtualKeyCode::Return => {
                                          f.debug_tuple("VirtualKeyCode::Return").finish()
                                        }
                                        VirtualKeyCode::Space => {
                                          f.debug_tuple("VirtualKeyCode::Space").finish()
                                        }
                                        VirtualKeyCode::Compose => {
                                          f.debug_tuple("VirtualKeyCode::Compose").finish()
                                        }
                                        VirtualKeyCode::Caret => {
                                          f.debug_tuple("VirtualKeyCode::Caret").finish()
                                        }
                                        VirtualKeyCode::Numlock => {
                                          f.debug_tuple("VirtualKeyCode::Numlock").finish()
                                        }
                                        VirtualKeyCode::Numpad0 => {
                                          f.debug_tuple("VirtualKeyCode::Numpad0").finish()
                                        }
                                        VirtualKeyCode::Numpad1 => {
                                          f.debug_tuple("VirtualKeyCode::Numpad1").finish()
                                        }
                                        VirtualKeyCode::Numpad2 => {
                                          f.debug_tuple("VirtualKeyCode::Numpad2").finish()
                                        }
                                        VirtualKeyCode::Numpad3 => {
                                          f.debug_tuple("VirtualKeyCode::Numpad3").finish()
                                        }
                                        VirtualKeyCode::Numpad4 => {
                                          f.debug_tuple("VirtualKeyCode::Numpad4").finish()
                                        }
                                        VirtualKeyCode::Numpad5 => {
                                          f.debug_tuple("VirtualKeyCode::Numpad5").finish()
                                        }
                                        VirtualKeyCode::Numpad6 => {
                                          f.debug_tuple("VirtualKeyCode::Numpad6").finish()
                                        }
                                        VirtualKeyCode::Numpad7 => {
                                          f.debug_tuple("VirtualKeyCode::Numpad7").finish()
                                        }
                                        VirtualKeyCode::Numpad8 => {
                                          f.debug_tuple("VirtualKeyCode::Numpad8").finish()
                                        }
                                        VirtualKeyCode::Numpad9 => {
                                          f.debug_tuple("VirtualKeyCode::Numpad9").finish()
                                        }
                                        VirtualKeyCode::NumpadAdd => {
                                          f.debug_tuple("VirtualKeyCode::NumpadAdd").finish()
                                        }
                                        VirtualKeyCode::NumpadDivide => {
                                          f.debug_tuple("VirtualKeyCode::NumpadDivide").finish()
                                        }
                                        VirtualKeyCode::NumpadDecimal => {
                                          f.debug_tuple("VirtualKeyCode::NumpadDecimal").finish()
                                        }
                                        VirtualKeyCode::NumpadComma => {
                                          f.debug_tuple("VirtualKeyCode::NumpadComma").finish()
                                        }
                                        VirtualKeyCode::NumpadEnter => {
                                          f.debug_tuple("VirtualKeyCode::NumpadEnter").finish()
                                        }
                                        VirtualKeyCode::NumpadEquals => {
                                          f.debug_tuple("VirtualKeyCode::NumpadEquals").finish()
                                        }
                                        VirtualKeyCode::NumpadMultiply => {
                                          f.debug_tuple("VirtualKeyCode::NumpadMultiply").finish()
                                        }
                                        VirtualKeyCode::NumpadSubtract => {
                                          f.debug_tuple("VirtualKeyCode::NumpadSubtract").finish()
                                        }
                                        VirtualKeyCode::AbntC1 => {
                                          f.debug_tuple("VirtualKeyCode::AbntC1").finish()
                                        }
                                        VirtualKeyCode::AbntC2 => {
                                          f.debug_tuple("VirtualKeyCode::AbntC2").finish()
                                        }
                                        VirtualKeyCode::Apostrophe => {
                                          f.debug_tuple("VirtualKeyCode::Apostrophe").finish()
                                        }
                                        VirtualKeyCode::Apps => {
                                          f.debug_tuple("VirtualKeyCode::Apps").finish()
                                        }
                                        VirtualKeyCode::Asterisk => {
                                          f.debug_tuple("VirtualKeyCode::Asterisk").finish()
                                        }
                                        VirtualKeyCode::At => {
                                          f.debug_tuple("VirtualKeyCode::At").finish()
                                        }
                                        VirtualKeyCode::Ax => {
                                          f.debug_tuple("VirtualKeyCode::Ax").finish()
                                        }
                                        VirtualKeyCode::Backslash => {
                                          f.debug_tuple("VirtualKeyCode::Backslash").finish()
                                        }
                                        VirtualKeyCode::Calculator => {
                                          f.debug_tuple("VirtualKeyCode::Calculator").finish()
                                        }
                                        VirtualKeyCode::Capital => {
                                          f.debug_tuple("VirtualKeyCode::Capital").finish()
                                        }
                                        VirtualKeyCode::Colon => {
                                          f.debug_tuple("VirtualKeyCode::Colon").finish()
                                        }
                                        VirtualKeyCode::Comma => {
                                          f.debug_tuple("VirtualKeyCode::Comma").finish()
                                        }
                                        VirtualKeyCode::Convert => {
                                          f.debug_tuple("VirtualKeyCode::Convert").finish()
                                        }
                                        VirtualKeyCode::Equals => {
                                          f.debug_tuple("VirtualKeyCode::Equals").finish()
                                        }
                                        VirtualKeyCode::Grave => {
                                          f.debug_tuple("VirtualKeyCode::Grave").finish()
                                        }
                                        VirtualKeyCode::Kana => {
                                          f.debug_tuple("VirtualKeyCode::Kana").finish()
                                        }
                                        VirtualKeyCode::Kanji => {
                                          f.debug_tuple("VirtualKeyCode::Kanji").finish()
                                        }
                                        VirtualKeyCode::LAlt => {
                                          f.debug_tuple("VirtualKeyCode::LAlt").finish()
                                        }
                                        VirtualKeyCode::LBracket => {
                                          f.debug_tuple("VirtualKeyCode::LBracket").finish()
                                        }
                                        VirtualKeyCode::LControl => {
                                          f.debug_tuple("VirtualKeyCode::LControl").finish()
                                        }
                                        VirtualKeyCode::LShift => {
                                          f.debug_tuple("VirtualKeyCode::LShift").finish()
                                        }
                                        VirtualKeyCode::LWin => {
                                          f.debug_tuple("VirtualKeyCode::LWin").finish()
                                        }
                                        VirtualKeyCode::Mail => {
                                          f.debug_tuple("VirtualKeyCode::Mail").finish()
                                        }
                                        VirtualKeyCode::MediaSelect => {
                                          f.debug_tuple("VirtualKeyCode::MediaSelect").finish()
                                        }
                                        VirtualKeyCode::MediaStop => {
                                          f.debug_tuple("VirtualKeyCode::MediaStop").finish()
                                        }
                                        VirtualKeyCode::Minus => {
                                          f.debug_tuple("VirtualKeyCode::Minus").finish()
                                        }
                                        VirtualKeyCode::Mute => {
                                          f.debug_tuple("VirtualKeyCode::Mute").finish()
                                        }
                                        VirtualKeyCode::MyComputer => {
                                          f.debug_tuple("VirtualKeyCode::MyComputer").finish()
                                        }
                                        VirtualKeyCode::NavigateForward => {
                                          f.debug_tuple("VirtualKeyCode::NavigateForward").finish()
                                        }
                                        VirtualKeyCode::NavigateBackward => {
                                          f.debug_tuple("VirtualKeyCode::NavigateBackward").finish()
                                        }
                                        VirtualKeyCode::NextTrack => {
                                          f.debug_tuple("VirtualKeyCode::NextTrack").finish()
                                        }
                                        VirtualKeyCode::NoConvert => {
                                          f.debug_tuple("VirtualKeyCode::NoConvert").finish()
                                        }
                                        VirtualKeyCode::Oem102 => {
                                          f.debug_tuple("VirtualKeyCode::Oem102").finish()
                                        }
                                        VirtualKeyCode::Period => {
                                          f.debug_tuple("VirtualKeyCode::Period").finish()
                                        }
                                        VirtualKeyCode::PlayPause => {
                                          f.debug_tuple("VirtualKeyCode::PlayPause").finish()
                                        }
                                        VirtualKeyCode::Plus => {
                                          f.debug_tuple("VirtualKeyCode::Plus").finish()
                                        }
                                        VirtualKeyCode::Power => {
                                          f.debug_tuple("VirtualKeyCode::Power").finish()
                                        }
                                        VirtualKeyCode::PrevTrack => {
                                          f.debug_tuple("VirtualKeyCode::PrevTrack").finish()
                                        }
                                        VirtualKeyCode::RAlt => {
                                          f.debug_tuple("VirtualKeyCode::RAlt").finish()
                                        }
                                        VirtualKeyCode::RBracket => {
                                          f.debug_tuple("VirtualKeyCode::RBracket").finish()
                                        }
                                        VirtualKeyCode::RControl => {
                                          f.debug_tuple("VirtualKeyCode::RControl").finish()
                                        }
                                        VirtualKeyCode::RShift => {
                                          f.debug_tuple("VirtualKeyCode::RShift").finish()
                                        }
                                        VirtualKeyCode::RWin => {
                                          f.debug_tuple("VirtualKeyCode::RWin").finish()
                                        }
                                        VirtualKeyCode::Semicolon => {
                                          f.debug_tuple("VirtualKeyCode::Semicolon").finish()
                                        }
                                        VirtualKeyCode::Slash => {
                                          f.debug_tuple("VirtualKeyCode::Slash").finish()
                                        }
                                        VirtualKeyCode::Sleep => {
                                          f.debug_tuple("VirtualKeyCode::Sleep").finish()
                                        }
                                        VirtualKeyCode::Stop => {
                                          f.debug_tuple("VirtualKeyCode::Stop").finish()
                                        }
                                        VirtualKeyCode::Sysrq => {
                                          f.debug_tuple("VirtualKeyCode::Sysrq").finish()
                                        }
                                        VirtualKeyCode::Tab => {
                                          f.debug_tuple("VirtualKeyCode::Tab").finish()
                                        }
                                        VirtualKeyCode::Underline => {
                                          f.debug_tuple("VirtualKeyCode::Underline").finish()
                                        }
                                        VirtualKeyCode::Unlabeled => {
                                          f.debug_tuple("VirtualKeyCode::Unlabeled").finish()
                                        }
                                        VirtualKeyCode::VolumeDown => {
                                          f.debug_tuple("VirtualKeyCode::VolumeDown").finish()
                                        }
                                        VirtualKeyCode::VolumeUp => {
                                          f.debug_tuple("VirtualKeyCode::VolumeUp").finish()
                                        }
                                        VirtualKeyCode::Wake => {
                                          f.debug_tuple("VirtualKeyCode::Wake").finish()
                                        }
                                        VirtualKeyCode::WebBack => {
                                          f.debug_tuple("VirtualKeyCode::WebBack").finish()
                                        }
                                        VirtualKeyCode::WebFavorites => {
                                          f.debug_tuple("VirtualKeyCode::WebFavorites").finish()
                                        }
                                        VirtualKeyCode::WebForward => {
                                          f.debug_tuple("VirtualKeyCode::WebForward").finish()
                                        }
                                        VirtualKeyCode::WebHome => {
                                          f.debug_tuple("VirtualKeyCode::WebHome").finish()
                                        }
                                        VirtualKeyCode::WebRefresh => {
                                          f.debug_tuple("VirtualKeyCode::WebRefresh").finish()
                                        }
                                        VirtualKeyCode::WebSearch => {
                                          f.debug_tuple("VirtualKeyCode::WebSearch").finish()
                                        }
                                        VirtualKeyCode::WebStop => {
                                          f.debug_tuple("VirtualKeyCode::WebStop").finish()
                                        }
                                        VirtualKeyCode::Yen => {
                                          f.debug_tuple("VirtualKeyCode::Yen").finish()
                                        }
                                        VirtualKeyCode::Copy => {
                                          f.debug_tuple("VirtualKeyCode::Copy").finish()
                                        }
                                        VirtualKeyCode::Paste => {
                                          f.debug_tuple("VirtualKeyCode::Paste").finish()
                                        }
                                        VirtualKeyCode::Cut => {
                                          f.debug_tuple("VirtualKeyCode::Cut").finish()
                                        }
                                      }
                                    }
                                  }
                                  #[derive(Clone, Copy)]
                                  pub enum MouseButton{
                                    Left,
                                    Right,
                                    Middle,
                                    Other(u16),
                                  }
                                  impl ::core::fmt::Debug for MouseButton {
                                    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
                                      match self {
                                        MouseButton::Left => {
                                          f.debug_tuple("MouseButton::Left").finish()
                                        }
                                        MouseButton::Right => {
                                          f.debug_tuple("MouseButton::Right").finish()
                                        }
                                        MouseButton::Middle => {
                                          f.debug_tuple("MouseButton::Middle").finish()
                                        }
                                        MouseButton::Other(e) => {
                                          f.debug_tuple("MouseButton::Other").field(e).finish()
                                        }
                                      }
                                    }
                                  }
                                  #[derive(Clone)]
                                  pub struct Input {
                                    pub keys: wit_bindgen::rt::vec::Vec::<VirtualKeyCode>,
                                    pub mouse_position: Vec2,
                                    pub mouse_delta: Vec2,
                                    pub mouse_wheel: f32,
                                    pub mouse_buttons: wit_bindgen::rt::vec::Vec::<MouseButton>,
                                  }
                                  impl ::core::fmt::Debug for Input {
                                    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
                                      f.debug_struct("Input").field("keys", &self.keys).field("mouse-position", &self.mouse_position).field("mouse-delta", &self.mouse_delta).field("mouse-wheel", &self.mouse_wheel).field("mouse-buttons", &self.mouse_buttons).finish()
                                    }
                                  }
                                  #[derive(Clone, Copy)]
                                  pub enum CursorIcon{
                                    /// The platform-dependent default cursor.
                                    DefaultIcon,
                                    /// A simple crosshair.
                                    Crosshair,
                                    /// A hand (often used to indicate links in web browsers).
                                    Hand,
                                    /// Self explanatory.
                                    Arrow,
                                    /// Indicates something is to be moved.
                                    Move,
                                    /// Indicates text that may be selected or edited.
                                    Text,
                                    /// Program busy indicator.
                                    Wait,
                                    /// Help indicator (often rendered as a "?")
                                    Help,
                                    /// Progress indicator. Shows that processing is being done. But in contrast
                                    /// with "Wait" the user may still interact with the program. Often rendered
                                    /// as a spinning beach ball, or an arrow with a watch or hourglass.
                                    Progress,
                                    /// Cursor showing that something cannot be done.
                                    NotAllowed,
                                    ContextMenu,
                                    Cell,
                                    VerticalText,
                                    Alias,
                                    Copy,
                                    NoDrop,
                                    /// Indicates something can be grabbed.
                                    Grab,
                                    /// Indicates something is grabbed.
                                    Grabbing,
                                    AllScroll,
                                    ZoomIn,
                                    ZoomOut,
                                    /// Indicate that some edge is to be moved. For example, the 'SeResize' cursor
                                    /// is used when the movement starts from the south-east corner of the box.
                                    EResize,
                                    NResize,
                                    NeResize,
                                    NwResize,
                                    SResize,
                                    SeResize,
                                    SwResize,
                                    WResize,
                                    EwResize,
                                    NsResize,
                                    NeswResize,
                                    NwseResize,
                                    ColResize,
                                    RowResize,
                                  }
                                  impl ::core::fmt::Debug for CursorIcon {
                                    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
                                      match self {
                                        CursorIcon::DefaultIcon => {
                                          f.debug_tuple("CursorIcon::DefaultIcon").finish()
                                        }
                                        CursorIcon::Crosshair => {
                                          f.debug_tuple("CursorIcon::Crosshair").finish()
                                        }
                                        CursorIcon::Hand => {
                                          f.debug_tuple("CursorIcon::Hand").finish()
                                        }
                                        CursorIcon::Arrow => {
                                          f.debug_tuple("CursorIcon::Arrow").finish()
                                        }
                                        CursorIcon::Move => {
                                          f.debug_tuple("CursorIcon::Move").finish()
                                        }
                                        CursorIcon::Text => {
                                          f.debug_tuple("CursorIcon::Text").finish()
                                        }
                                        CursorIcon::Wait => {
                                          f.debug_tuple("CursorIcon::Wait").finish()
                                        }
                                        CursorIcon::Help => {
                                          f.debug_tuple("CursorIcon::Help").finish()
                                        }
                                        CursorIcon::Progress => {
                                          f.debug_tuple("CursorIcon::Progress").finish()
                                        }
                                        CursorIcon::NotAllowed => {
                                          f.debug_tuple("CursorIcon::NotAllowed").finish()
                                        }
                                        CursorIcon::ContextMenu => {
                                          f.debug_tuple("CursorIcon::ContextMenu").finish()
                                        }
                                        CursorIcon::Cell => {
                                          f.debug_tuple("CursorIcon::Cell").finish()
                                        }
                                        CursorIcon::VerticalText => {
                                          f.debug_tuple("CursorIcon::VerticalText").finish()
                                        }
                                        CursorIcon::Alias => {
                                          f.debug_tuple("CursorIcon::Alias").finish()
                                        }
                                        CursorIcon::Copy => {
                                          f.debug_tuple("CursorIcon::Copy").finish()
                                        }
                                        CursorIcon::NoDrop => {
                                          f.debug_tuple("CursorIcon::NoDrop").finish()
                                        }
                                        CursorIcon::Grab => {
                                          f.debug_tuple("CursorIcon::Grab").finish()
                                        }
                                        CursorIcon::Grabbing => {
                                          f.debug_tuple("CursorIcon::Grabbing").finish()
                                        }
                                        CursorIcon::AllScroll => {
                                          f.debug_tuple("CursorIcon::AllScroll").finish()
                                        }
                                        CursorIcon::ZoomIn => {
                                          f.debug_tuple("CursorIcon::ZoomIn").finish()
                                        }
                                        CursorIcon::ZoomOut => {
                                          f.debug_tuple("CursorIcon::ZoomOut").finish()
                                        }
                                        CursorIcon::EResize => {
                                          f.debug_tuple("CursorIcon::EResize").finish()
                                        }
                                        CursorIcon::NResize => {
                                          f.debug_tuple("CursorIcon::NResize").finish()
                                        }
                                        CursorIcon::NeResize => {
                                          f.debug_tuple("CursorIcon::NeResize").finish()
                                        }
                                        CursorIcon::NwResize => {
                                          f.debug_tuple("CursorIcon::NwResize").finish()
                                        }
                                        CursorIcon::SResize => {
                                          f.debug_tuple("CursorIcon::SResize").finish()
                                        }
                                        CursorIcon::SeResize => {
                                          f.debug_tuple("CursorIcon::SeResize").finish()
                                        }
                                        CursorIcon::SwResize => {
                                          f.debug_tuple("CursorIcon::SwResize").finish()
                                        }
                                        CursorIcon::WResize => {
                                          f.debug_tuple("CursorIcon::WResize").finish()
                                        }
                                        CursorIcon::EwResize => {
                                          f.debug_tuple("CursorIcon::EwResize").finish()
                                        }
                                        CursorIcon::NsResize => {
                                          f.debug_tuple("CursorIcon::NsResize").finish()
                                        }
                                        CursorIcon::NeswResize => {
                                          f.debug_tuple("CursorIcon::NeswResize").finish()
                                        }
                                        CursorIcon::NwseResize => {
                                          f.debug_tuple("CursorIcon::NwseResize").finish()
                                        }
                                        CursorIcon::ColResize => {
                                          f.debug_tuple("CursorIcon::ColResize").finish()
                                        }
                                        CursorIcon::RowResize => {
                                          f.debug_tuple("CursorIcon::RowResize").finish()
                                        }
                                      }
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn get() -> Input{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(4))]
                                      struct RetArea([u8; 36]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let ptr0 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/client-input")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "get")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-input_get")]
                                        fn wit_import(
                                        _: i32, );
                                      }
                                      wit_import(ptr0);
                                      let base1 = *((ptr0 + 0) as *const i32);
                                      let len1 = *((ptr0 + 4) as *const i32);
                                      let mut result1 = Vec::with_capacity(len1 as usize);
                                      for i in 0..len1 {
                                        let base = base1 + i *1;
                                        result1.push({#[cfg(debug_assertions)]{match i32::from(*((base + 0) as *const u8)) {
                                          0 => VirtualKeyCode::Key1,
                                          1 => VirtualKeyCode::Key2,
                                          2 => VirtualKeyCode::Key3,
                                          3 => VirtualKeyCode::Key4,
                                          4 => VirtualKeyCode::Key5,
                                          5 => VirtualKeyCode::Key6,
                                          6 => VirtualKeyCode::Key7,
                                          7 => VirtualKeyCode::Key8,
                                          8 => VirtualKeyCode::Key9,
                                          9 => VirtualKeyCode::Key0,
                                          10 => VirtualKeyCode::A,
                                          11 => VirtualKeyCode::B,
                                          12 => VirtualKeyCode::C,
                                          13 => VirtualKeyCode::D,
                                          14 => VirtualKeyCode::E,
                                          15 => VirtualKeyCode::F,
                                          16 => VirtualKeyCode::G,
                                          17 => VirtualKeyCode::H,
                                          18 => VirtualKeyCode::I,
                                          19 => VirtualKeyCode::J,
                                          20 => VirtualKeyCode::K,
                                          21 => VirtualKeyCode::L,
                                          22 => VirtualKeyCode::M,
                                          23 => VirtualKeyCode::N,
                                          24 => VirtualKeyCode::O,
                                          25 => VirtualKeyCode::P,
                                          26 => VirtualKeyCode::Q,
                                          27 => VirtualKeyCode::R,
                                          28 => VirtualKeyCode::S,
                                          29 => VirtualKeyCode::T,
                                          30 => VirtualKeyCode::U,
                                          31 => VirtualKeyCode::V,
                                          32 => VirtualKeyCode::W,
                                          33 => VirtualKeyCode::X,
                                          34 => VirtualKeyCode::Y,
                                          35 => VirtualKeyCode::Z,
                                          36 => VirtualKeyCode::Escape,
                                          37 => VirtualKeyCode::F1,
                                          38 => VirtualKeyCode::F2,
                                          39 => VirtualKeyCode::F3,
                                          40 => VirtualKeyCode::F4,
                                          41 => VirtualKeyCode::F5,
                                          42 => VirtualKeyCode::F6,
                                          43 => VirtualKeyCode::F7,
                                          44 => VirtualKeyCode::F8,
                                          45 => VirtualKeyCode::F9,
                                          46 => VirtualKeyCode::F10,
                                          47 => VirtualKeyCode::F11,
                                          48 => VirtualKeyCode::F12,
                                          49 => VirtualKeyCode::F13,
                                          50 => VirtualKeyCode::F14,
                                          51 => VirtualKeyCode::F15,
                                          52 => VirtualKeyCode::F16,
                                          53 => VirtualKeyCode::F17,
                                          54 => VirtualKeyCode::F18,
                                          55 => VirtualKeyCode::F19,
                                          56 => VirtualKeyCode::F20,
                                          57 => VirtualKeyCode::F21,
                                          58 => VirtualKeyCode::F22,
                                          59 => VirtualKeyCode::F23,
                                          60 => VirtualKeyCode::F24,
                                          61 => VirtualKeyCode::Snapshot,
                                          62 => VirtualKeyCode::Scroll,
                                          63 => VirtualKeyCode::Pause,
                                          64 => VirtualKeyCode::Insert,
                                          65 => VirtualKeyCode::Home,
                                          66 => VirtualKeyCode::Delete,
                                          67 => VirtualKeyCode::End,
                                          68 => VirtualKeyCode::PageDown,
                                          69 => VirtualKeyCode::PageUp,
                                          70 => VirtualKeyCode::Left,
                                          71 => VirtualKeyCode::Up,
                                          72 => VirtualKeyCode::Right,
                                          73 => VirtualKeyCode::Down,
                                          74 => VirtualKeyCode::Back,
                                          75 => VirtualKeyCode::Return,
                                          76 => VirtualKeyCode::Space,
                                          77 => VirtualKeyCode::Compose,
                                          78 => VirtualKeyCode::Caret,
                                          79 => VirtualKeyCode::Numlock,
                                          80 => VirtualKeyCode::Numpad0,
                                          81 => VirtualKeyCode::Numpad1,
                                          82 => VirtualKeyCode::Numpad2,
                                          83 => VirtualKeyCode::Numpad3,
                                          84 => VirtualKeyCode::Numpad4,
                                          85 => VirtualKeyCode::Numpad5,
                                          86 => VirtualKeyCode::Numpad6,
                                          87 => VirtualKeyCode::Numpad7,
                                          88 => VirtualKeyCode::Numpad8,
                                          89 => VirtualKeyCode::Numpad9,
                                          90 => VirtualKeyCode::NumpadAdd,
                                          91 => VirtualKeyCode::NumpadDivide,
                                          92 => VirtualKeyCode::NumpadDecimal,
                                          93 => VirtualKeyCode::NumpadComma,
                                          94 => VirtualKeyCode::NumpadEnter,
                                          95 => VirtualKeyCode::NumpadEquals,
                                          96 => VirtualKeyCode::NumpadMultiply,
                                          97 => VirtualKeyCode::NumpadSubtract,
                                          98 => VirtualKeyCode::AbntC1,
                                          99 => VirtualKeyCode::AbntC2,
                                          100 => VirtualKeyCode::Apostrophe,
                                          101 => VirtualKeyCode::Apps,
                                          102 => VirtualKeyCode::Asterisk,
                                          103 => VirtualKeyCode::At,
                                          104 => VirtualKeyCode::Ax,
                                          105 => VirtualKeyCode::Backslash,
                                          106 => VirtualKeyCode::Calculator,
                                          107 => VirtualKeyCode::Capital,
                                          108 => VirtualKeyCode::Colon,
                                          109 => VirtualKeyCode::Comma,
                                          110 => VirtualKeyCode::Convert,
                                          111 => VirtualKeyCode::Equals,
                                          112 => VirtualKeyCode::Grave,
                                          113 => VirtualKeyCode::Kana,
                                          114 => VirtualKeyCode::Kanji,
                                          115 => VirtualKeyCode::LAlt,
                                          116 => VirtualKeyCode::LBracket,
                                          117 => VirtualKeyCode::LControl,
                                          118 => VirtualKeyCode::LShift,
                                          119 => VirtualKeyCode::LWin,
                                          120 => VirtualKeyCode::Mail,
                                          121 => VirtualKeyCode::MediaSelect,
                                          122 => VirtualKeyCode::MediaStop,
                                          123 => VirtualKeyCode::Minus,
                                          124 => VirtualKeyCode::Mute,
                                          125 => VirtualKeyCode::MyComputer,
                                          126 => VirtualKeyCode::NavigateForward,
                                          127 => VirtualKeyCode::NavigateBackward,
                                          128 => VirtualKeyCode::NextTrack,
                                          129 => VirtualKeyCode::NoConvert,
                                          130 => VirtualKeyCode::Oem102,
                                          131 => VirtualKeyCode::Period,
                                          132 => VirtualKeyCode::PlayPause,
                                          133 => VirtualKeyCode::Plus,
                                          134 => VirtualKeyCode::Power,
                                          135 => VirtualKeyCode::PrevTrack,
                                          136 => VirtualKeyCode::RAlt,
                                          137 => VirtualKeyCode::RBracket,
                                          138 => VirtualKeyCode::RControl,
                                          139 => VirtualKeyCode::RShift,
                                          140 => VirtualKeyCode::RWin,
                                          141 => VirtualKeyCode::Semicolon,
                                          142 => VirtualKeyCode::Slash,
                                          143 => VirtualKeyCode::Sleep,
                                          144 => VirtualKeyCode::Stop,
                                          145 => VirtualKeyCode::Sysrq,
                                          146 => VirtualKeyCode::Tab,
                                          147 => VirtualKeyCode::Underline,
                                          148 => VirtualKeyCode::Unlabeled,
                                          149 => VirtualKeyCode::VolumeDown,
                                          150 => VirtualKeyCode::VolumeUp,
                                          151 => VirtualKeyCode::Wake,
                                          152 => VirtualKeyCode::WebBack,
                                          153 => VirtualKeyCode::WebFavorites,
                                          154 => VirtualKeyCode::WebForward,
                                          155 => VirtualKeyCode::WebHome,
                                          156 => VirtualKeyCode::WebRefresh,
                                          157 => VirtualKeyCode::WebSearch,
                                          158 => VirtualKeyCode::WebStop,
                                          159 => VirtualKeyCode::Yen,
                                          160 => VirtualKeyCode::Copy,
                                          161 => VirtualKeyCode::Paste,
                                          162 => VirtualKeyCode::Cut,
                                          _ => panic!("invalid enum discriminant"),
                                        }}#[cfg(not(debug_assertions))]{::core::mem::transmute::<_, VirtualKeyCode>(i32::from(*((base + 0) as *const u8)) as u8)}});
                                      }
                                      wit_bindgen::rt::dealloc(base1, (len1 as usize) * 1, 1);
                                      let base2 = *((ptr0 + 28) as *const i32);
                                      let len2 = *((ptr0 + 32) as *const i32);
                                      let mut result2 = Vec::with_capacity(len2 as usize);
                                      for i in 0..len2 {
                                        let base = base2 + i *4;
                                        result2.push({{match i32::from(*((base + 0) as *const u8)) {
                                          0 => MouseButton::Left,
                                          1 => MouseButton::Right,
                                          2 => MouseButton::Middle,
                                          #[cfg(debug_assertions)]3 => MouseButton::Other(i32::from(*((base + 2) as *const u16)) as u16),
                                          #[cfg(not(debug_assertions))]_ => MouseButton::Other(i32::from(*((base + 2) as *const u16)) as u16),
                                          #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                                        }}});
                                      }
                                      wit_bindgen::rt::dealloc(base2, (len2 as usize) * 4, 2);
                                      Input{keys:result1, mouse_position:super::super::super::ambient::bindings::types::Vec2{x:*((ptr0 + 8) as *const f32), y:*((ptr0 + 12) as *const f32), }, mouse_delta:super::super::super::ambient::bindings::types::Vec2{x:*((ptr0 + 16) as *const f32), y:*((ptr0 + 20) as *const f32), }, mouse_wheel:*((ptr0 + 24) as *const f32), mouse_buttons:result2, }
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn get_previous() -> Input{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(4))]
                                      struct RetArea([u8; 36]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let ptr0 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/client-input")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "get-previous")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-input_get-previous")]
                                        fn wit_import(
                                        _: i32, );
                                      }
                                      wit_import(ptr0);
                                      let base1 = *((ptr0 + 0) as *const i32);
                                      let len1 = *((ptr0 + 4) as *const i32);
                                      let mut result1 = Vec::with_capacity(len1 as usize);
                                      for i in 0..len1 {
                                        let base = base1 + i *1;
                                        result1.push({#[cfg(debug_assertions)]{match i32::from(*((base + 0) as *const u8)) {
                                          0 => VirtualKeyCode::Key1,
                                          1 => VirtualKeyCode::Key2,
                                          2 => VirtualKeyCode::Key3,
                                          3 => VirtualKeyCode::Key4,
                                          4 => VirtualKeyCode::Key5,
                                          5 => VirtualKeyCode::Key6,
                                          6 => VirtualKeyCode::Key7,
                                          7 => VirtualKeyCode::Key8,
                                          8 => VirtualKeyCode::Key9,
                                          9 => VirtualKeyCode::Key0,
                                          10 => VirtualKeyCode::A,
                                          11 => VirtualKeyCode::B,
                                          12 => VirtualKeyCode::C,
                                          13 => VirtualKeyCode::D,
                                          14 => VirtualKeyCode::E,
                                          15 => VirtualKeyCode::F,
                                          16 => VirtualKeyCode::G,
                                          17 => VirtualKeyCode::H,
                                          18 => VirtualKeyCode::I,
                                          19 => VirtualKeyCode::J,
                                          20 => VirtualKeyCode::K,
                                          21 => VirtualKeyCode::L,
                                          22 => VirtualKeyCode::M,
                                          23 => VirtualKeyCode::N,
                                          24 => VirtualKeyCode::O,
                                          25 => VirtualKeyCode::P,
                                          26 => VirtualKeyCode::Q,
                                          27 => VirtualKeyCode::R,
                                          28 => VirtualKeyCode::S,
                                          29 => VirtualKeyCode::T,
                                          30 => VirtualKeyCode::U,
                                          31 => VirtualKeyCode::V,
                                          32 => VirtualKeyCode::W,
                                          33 => VirtualKeyCode::X,
                                          34 => VirtualKeyCode::Y,
                                          35 => VirtualKeyCode::Z,
                                          36 => VirtualKeyCode::Escape,
                                          37 => VirtualKeyCode::F1,
                                          38 => VirtualKeyCode::F2,
                                          39 => VirtualKeyCode::F3,
                                          40 => VirtualKeyCode::F4,
                                          41 => VirtualKeyCode::F5,
                                          42 => VirtualKeyCode::F6,
                                          43 => VirtualKeyCode::F7,
                                          44 => VirtualKeyCode::F8,
                                          45 => VirtualKeyCode::F9,
                                          46 => VirtualKeyCode::F10,
                                          47 => VirtualKeyCode::F11,
                                          48 => VirtualKeyCode::F12,
                                          49 => VirtualKeyCode::F13,
                                          50 => VirtualKeyCode::F14,
                                          51 => VirtualKeyCode::F15,
                                          52 => VirtualKeyCode::F16,
                                          53 => VirtualKeyCode::F17,
                                          54 => VirtualKeyCode::F18,
                                          55 => VirtualKeyCode::F19,
                                          56 => VirtualKeyCode::F20,
                                          57 => VirtualKeyCode::F21,
                                          58 => VirtualKeyCode::F22,
                                          59 => VirtualKeyCode::F23,
                                          60 => VirtualKeyCode::F24,
                                          61 => VirtualKeyCode::Snapshot,
                                          62 => VirtualKeyCode::Scroll,
                                          63 => VirtualKeyCode::Pause,
                                          64 => VirtualKeyCode::Insert,
                                          65 => VirtualKeyCode::Home,
                                          66 => VirtualKeyCode::Delete,
                                          67 => VirtualKeyCode::End,
                                          68 => VirtualKeyCode::PageDown,
                                          69 => VirtualKeyCode::PageUp,
                                          70 => VirtualKeyCode::Left,
                                          71 => VirtualKeyCode::Up,
                                          72 => VirtualKeyCode::Right,
                                          73 => VirtualKeyCode::Down,
                                          74 => VirtualKeyCode::Back,
                                          75 => VirtualKeyCode::Return,
                                          76 => VirtualKeyCode::Space,
                                          77 => VirtualKeyCode::Compose,
                                          78 => VirtualKeyCode::Caret,
                                          79 => VirtualKeyCode::Numlock,
                                          80 => VirtualKeyCode::Numpad0,
                                          81 => VirtualKeyCode::Numpad1,
                                          82 => VirtualKeyCode::Numpad2,
                                          83 => VirtualKeyCode::Numpad3,
                                          84 => VirtualKeyCode::Numpad4,
                                          85 => VirtualKeyCode::Numpad5,
                                          86 => VirtualKeyCode::Numpad6,
                                          87 => VirtualKeyCode::Numpad7,
                                          88 => VirtualKeyCode::Numpad8,
                                          89 => VirtualKeyCode::Numpad9,
                                          90 => VirtualKeyCode::NumpadAdd,
                                          91 => VirtualKeyCode::NumpadDivide,
                                          92 => VirtualKeyCode::NumpadDecimal,
                                          93 => VirtualKeyCode::NumpadComma,
                                          94 => VirtualKeyCode::NumpadEnter,
                                          95 => VirtualKeyCode::NumpadEquals,
                                          96 => VirtualKeyCode::NumpadMultiply,
                                          97 => VirtualKeyCode::NumpadSubtract,
                                          98 => VirtualKeyCode::AbntC1,
                                          99 => VirtualKeyCode::AbntC2,
                                          100 => VirtualKeyCode::Apostrophe,
                                          101 => VirtualKeyCode::Apps,
                                          102 => VirtualKeyCode::Asterisk,
                                          103 => VirtualKeyCode::At,
                                          104 => VirtualKeyCode::Ax,
                                          105 => VirtualKeyCode::Backslash,
                                          106 => VirtualKeyCode::Calculator,
                                          107 => VirtualKeyCode::Capital,
                                          108 => VirtualKeyCode::Colon,
                                          109 => VirtualKeyCode::Comma,
                                          110 => VirtualKeyCode::Convert,
                                          111 => VirtualKeyCode::Equals,
                                          112 => VirtualKeyCode::Grave,
                                          113 => VirtualKeyCode::Kana,
                                          114 => VirtualKeyCode::Kanji,
                                          115 => VirtualKeyCode::LAlt,
                                          116 => VirtualKeyCode::LBracket,
                                          117 => VirtualKeyCode::LControl,
                                          118 => VirtualKeyCode::LShift,
                                          119 => VirtualKeyCode::LWin,
                                          120 => VirtualKeyCode::Mail,
                                          121 => VirtualKeyCode::MediaSelect,
                                          122 => VirtualKeyCode::MediaStop,
                                          123 => VirtualKeyCode::Minus,
                                          124 => VirtualKeyCode::Mute,
                                          125 => VirtualKeyCode::MyComputer,
                                          126 => VirtualKeyCode::NavigateForward,
                                          127 => VirtualKeyCode::NavigateBackward,
                                          128 => VirtualKeyCode::NextTrack,
                                          129 => VirtualKeyCode::NoConvert,
                                          130 => VirtualKeyCode::Oem102,
                                          131 => VirtualKeyCode::Period,
                                          132 => VirtualKeyCode::PlayPause,
                                          133 => VirtualKeyCode::Plus,
                                          134 => VirtualKeyCode::Power,
                                          135 => VirtualKeyCode::PrevTrack,
                                          136 => VirtualKeyCode::RAlt,
                                          137 => VirtualKeyCode::RBracket,
                                          138 => VirtualKeyCode::RControl,
                                          139 => VirtualKeyCode::RShift,
                                          140 => VirtualKeyCode::RWin,
                                          141 => VirtualKeyCode::Semicolon,
                                          142 => VirtualKeyCode::Slash,
                                          143 => VirtualKeyCode::Sleep,
                                          144 => VirtualKeyCode::Stop,
                                          145 => VirtualKeyCode::Sysrq,
                                          146 => VirtualKeyCode::Tab,
                                          147 => VirtualKeyCode::Underline,
                                          148 => VirtualKeyCode::Unlabeled,
                                          149 => VirtualKeyCode::VolumeDown,
                                          150 => VirtualKeyCode::VolumeUp,
                                          151 => VirtualKeyCode::Wake,
                                          152 => VirtualKeyCode::WebBack,
                                          153 => VirtualKeyCode::WebFavorites,
                                          154 => VirtualKeyCode::WebForward,
                                          155 => VirtualKeyCode::WebHome,
                                          156 => VirtualKeyCode::WebRefresh,
                                          157 => VirtualKeyCode::WebSearch,
                                          158 => VirtualKeyCode::WebStop,
                                          159 => VirtualKeyCode::Yen,
                                          160 => VirtualKeyCode::Copy,
                                          161 => VirtualKeyCode::Paste,
                                          162 => VirtualKeyCode::Cut,
                                          _ => panic!("invalid enum discriminant"),
                                        }}#[cfg(not(debug_assertions))]{::core::mem::transmute::<_, VirtualKeyCode>(i32::from(*((base + 0) as *const u8)) as u8)}});
                                      }
                                      wit_bindgen::rt::dealloc(base1, (len1 as usize) * 1, 1);
                                      let base2 = *((ptr0 + 28) as *const i32);
                                      let len2 = *((ptr0 + 32) as *const i32);
                                      let mut result2 = Vec::with_capacity(len2 as usize);
                                      for i in 0..len2 {
                                        let base = base2 + i *4;
                                        result2.push({{match i32::from(*((base + 0) as *const u8)) {
                                          0 => MouseButton::Left,
                                          1 => MouseButton::Right,
                                          2 => MouseButton::Middle,
                                          #[cfg(debug_assertions)]3 => MouseButton::Other(i32::from(*((base + 2) as *const u16)) as u16),
                                          #[cfg(not(debug_assertions))]_ => MouseButton::Other(i32::from(*((base + 2) as *const u16)) as u16),
                                          #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                                        }}});
                                      }
                                      wit_bindgen::rt::dealloc(base2, (len2 as usize) * 4, 2);
                                      Input{keys:result1, mouse_position:super::super::super::ambient::bindings::types::Vec2{x:*((ptr0 + 8) as *const f32), y:*((ptr0 + 12) as *const f32), }, mouse_delta:super::super::super::ambient::bindings::types::Vec2{x:*((ptr0 + 16) as *const f32), y:*((ptr0 + 20) as *const f32), }, mouse_wheel:*((ptr0 + 24) as *const f32), mouse_buttons:result2, }
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn set_cursor(icon: CursorIcon,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let result0 = match icon {
                                        CursorIcon::DefaultIcon=> {
                                          0i32
                                        }
                                        CursorIcon::Crosshair=> {
                                          1i32
                                        }
                                        CursorIcon::Hand=> {
                                          2i32
                                        }
                                        CursorIcon::Arrow=> {
                                          3i32
                                        }
                                        CursorIcon::Move=> {
                                          4i32
                                        }
                                        CursorIcon::Text=> {
                                          5i32
                                        }
                                        CursorIcon::Wait=> {
                                          6i32
                                        }
                                        CursorIcon::Help=> {
                                          7i32
                                        }
                                        CursorIcon::Progress=> {
                                          8i32
                                        }
                                        CursorIcon::NotAllowed=> {
                                          9i32
                                        }
                                        CursorIcon::ContextMenu=> {
                                          10i32
                                        }
                                        CursorIcon::Cell=> {
                                          11i32
                                        }
                                        CursorIcon::VerticalText=> {
                                          12i32
                                        }
                                        CursorIcon::Alias=> {
                                          13i32
                                        }
                                        CursorIcon::Copy=> {
                                          14i32
                                        }
                                        CursorIcon::NoDrop=> {
                                          15i32
                                        }
                                        CursorIcon::Grab=> {
                                          16i32
                                        }
                                        CursorIcon::Grabbing=> {
                                          17i32
                                        }
                                        CursorIcon::AllScroll=> {
                                          18i32
                                        }
                                        CursorIcon::ZoomIn=> {
                                          19i32
                                        }
                                        CursorIcon::ZoomOut=> {
                                          20i32
                                        }
                                        CursorIcon::EResize=> {
                                          21i32
                                        }
                                        CursorIcon::NResize=> {
                                          22i32
                                        }
                                        CursorIcon::NeResize=> {
                                          23i32
                                        }
                                        CursorIcon::NwResize=> {
                                          24i32
                                        }
                                        CursorIcon::SResize=> {
                                          25i32
                                        }
                                        CursorIcon::SeResize=> {
                                          26i32
                                        }
                                        CursorIcon::SwResize=> {
                                          27i32
                                        }
                                        CursorIcon::WResize=> {
                                          28i32
                                        }
                                        CursorIcon::EwResize=> {
                                          29i32
                                        }
                                        CursorIcon::NsResize=> {
                                          30i32
                                        }
                                        CursorIcon::NeswResize=> {
                                          31i32
                                        }
                                        CursorIcon::NwseResize=> {
                                          32i32
                                        }
                                        CursorIcon::ColResize=> {
                                          33i32
                                        }
                                        CursorIcon::RowResize=> {
                                          34i32
                                        }
                                      };
                                      
                                      #[link(wasm_import_module = "ambient:bindings/client-input")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "set-cursor")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-input_set-cursor")]
                                        fn wit_import(
                                        _: i32, );
                                      }
                                      wit_import(result0);
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn set_cursor_visible(visible: bool,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[link(wasm_import_module = "ambient:bindings/client-input")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "set-cursor-visible")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-input_set-cursor-visible")]
                                        fn wit_import(
                                        _: i32, );
                                      }
                                      wit_import(match visible { true => 1, false => 0 });
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn set_cursor_lock(locked: bool,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[link(wasm_import_module = "ambient:bindings/client-input")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "set-cursor-lock")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-input_set-cursor-lock")]
                                        fn wit_import(
                                        _: i32, );
                                      }
                                      wit_import(match locked { true => 1, false => 0 });
                                    }
                                  }
                                  
                                }
                                
                                
                                #[allow(clippy::all)]
                                pub mod client_camera {
                                  #[used]
                                  #[doc(hidden)]
                                  #[cfg(target_arch = "wasm32")]
                                  static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
                                  
                                  pub type Vec3 = super::super::super::ambient::bindings::types::Vec3;
                                  pub type Vec2 = super::super::super::ambient::bindings::types::Vec2;
                                  pub type Ray = super::super::super::ambient::bindings::types::Ray;
                                  pub type EntityId = super::super::super::ambient::bindings::types::EntityId;
                                  #[allow(clippy::all)]
                                  pub fn clip_position_to_world_ray(camera: EntityId,clip_space_pos: Vec2,) -> Ray{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(4))]
                                      struct RetArea([u8; 24]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = camera;
                                      let super::super::super::ambient::bindings::types::Vec2{ x:x1, y:y1, } = clip_space_pos;
                                      let ptr2 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/client-camera")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "clip-position-to-world-ray")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-camera_clip-position-to-world-ray")]
                                        fn wit_import(
                                        _: i64, _: i64, _: f32, _: f32, _: i32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), wit_bindgen::rt::as_f32(x1), wit_bindgen::rt::as_f32(y1), ptr2);
                                      super::super::super::ambient::bindings::types::Ray{origin:super::super::super::ambient::bindings::types::Vec3{x:*((ptr2 + 0) as *const f32), y:*((ptr2 + 4) as *const f32), z:*((ptr2 + 8) as *const f32), }, dir:super::super::super::ambient::bindings::types::Vec3{x:*((ptr2 + 12) as *const f32), y:*((ptr2 + 16) as *const f32), z:*((ptr2 + 20) as *const f32), }, }
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn screen_to_clip_space(screen_pos: Vec2,) -> Vec2{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(4))]
                                      struct RetArea([u8; 8]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let super::super::super::ambient::bindings::types::Vec2{ x:x0, y:y0, } = screen_pos;
                                      let ptr1 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/client-camera")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "screen-to-clip-space")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-camera_screen-to-clip-space")]
                                        fn wit_import(
                                        _: f32, _: f32, _: i32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_f32(x0), wit_bindgen::rt::as_f32(y0), ptr1);
                                      super::super::super::ambient::bindings::types::Vec2{x:*((ptr1 + 0) as *const f32), y:*((ptr1 + 4) as *const f32), }
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn screen_position_to_world_ray(camera: EntityId,screen_pos: Vec2,) -> Ray{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(4))]
                                      struct RetArea([u8; 24]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = camera;
                                      let super::super::super::ambient::bindings::types::Vec2{ x:x1, y:y1, } = screen_pos;
                                      let ptr2 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/client-camera")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "screen-position-to-world-ray")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-camera_screen-position-to-world-ray")]
                                        fn wit_import(
                                        _: i64, _: i64, _: f32, _: f32, _: i32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), wit_bindgen::rt::as_f32(x1), wit_bindgen::rt::as_f32(y1), ptr2);
                                      super::super::super::ambient::bindings::types::Ray{origin:super::super::super::ambient::bindings::types::Vec3{x:*((ptr2 + 0) as *const f32), y:*((ptr2 + 4) as *const f32), z:*((ptr2 + 8) as *const f32), }, dir:super::super::super::ambient::bindings::types::Vec3{x:*((ptr2 + 12) as *const f32), y:*((ptr2 + 16) as *const f32), z:*((ptr2 + 20) as *const f32), }, }
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn world_to_screen(camera: EntityId,screen_pos: Vec3,) -> Vec2{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(4))]
                                      struct RetArea([u8; 8]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = camera;
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x1, y:y1, z:z1, } = screen_pos;
                                      let ptr2 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/client-camera")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "world-to-screen")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-camera_world-to-screen")]
                                        fn wit_import(
                                        _: i64, _: i64, _: f32, _: f32, _: f32, _: i32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), wit_bindgen::rt::as_f32(x1), wit_bindgen::rt::as_f32(y1), wit_bindgen::rt::as_f32(z1), ptr2);
                                      super::super::super::ambient::bindings::types::Vec2{x:*((ptr2 + 0) as *const f32), y:*((ptr2 + 4) as *const f32), }
                                    }
                                  }
                                  
                                }
                                
                                
                                #[allow(clippy::all)]
                                pub mod client_clipboard {
                                  #[used]
                                  #[doc(hidden)]
                                  #[cfg(target_arch = "wasm32")]
                                  static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
                                  
                                  #[allow(clippy::all)]
                                  pub fn get(){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[link(wasm_import_module = "ambient:bindings/client-clipboard")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "get")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-clipboard_get")]
                                        fn wit_import(
                                        );
                                      }
                                      wit_import();
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn set(text: &str,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let vec0 = text;
                                      let ptr0 = vec0.as_ptr() as i32;
                                      let len0 = vec0.len() as i32;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/client-clipboard")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "set")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-clipboard_set")]
                                        fn wit_import(
                                        _: i32, _: i32, );
                                      }
                                      wit_import(ptr0, len0);
                                    }
                                  }
                                  
                                }
                                
                                
                                #[allow(clippy::all)]
                                pub mod client_window {
                                  #[used]
                                  #[doc(hidden)]
                                  #[cfg(target_arch = "wasm32")]
                                  static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
                                  
                                  #[allow(clippy::all)]
                                  pub fn set_fullscreen(fullscreen: bool,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[link(wasm_import_module = "ambient:bindings/client-window")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "set-fullscreen")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/client-window_set-fullscreen")]
                                        fn wit_import(
                                        _: i32, );
                                      }
                                      wit_import(match fullscreen { true => 1, false => 0 });
                                    }
                                  }
                                  
                                }
                                
                                
                                #[allow(clippy::all)]
                                pub mod server_asset {
                                  #[used]
                                  #[doc(hidden)]
                                  #[cfg(target_arch = "wasm32")]
                                  static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
                                  
                                  
                                }
                                
                                
                                #[allow(clippy::all)]
                                pub mod server_physics {
                                  #[used]
                                  #[doc(hidden)]
                                  #[cfg(target_arch = "wasm32")]
                                  static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
                                  
                                  pub type EntityId = super::super::super::ambient::bindings::types::EntityId;
                                  pub type Vec3 = super::super::super::ambient::bindings::types::Vec3;
                                  pub type Mat4 = super::super::super::ambient::bindings::types::Mat4;
                                  #[repr(C)]
                                  #[derive(Copy, Clone)]
                                  pub struct CharacterCollision {
                                    pub side: bool,
                                    pub up: bool,
                                    pub down: bool,
                                  }
                                  impl ::core::fmt::Debug for CharacterCollision {
                                    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
                                      f.debug_struct("CharacterCollision").field("side", &self.side).field("up", &self.up).field("down", &self.down).finish()
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn add_force(entity: EntityId,force: Vec3,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x1, y:y1, z:z1, } = force;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/server-physics")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "add-force")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-physics_add-force")]
                                        fn wit_import(
                                        _: i64, _: i64, _: f32, _: f32, _: f32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), wit_bindgen::rt::as_f32(x1), wit_bindgen::rt::as_f32(y1), wit_bindgen::rt::as_f32(z1));
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn add_impulse(entity: EntityId,impulse: Vec3,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x1, y:y1, z:z1, } = impulse;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/server-physics")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "add-impulse")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-physics_add-impulse")]
                                        fn wit_import(
                                        _: i64, _: i64, _: f32, _: f32, _: f32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), wit_bindgen::rt::as_f32(x1), wit_bindgen::rt::as_f32(y1), wit_bindgen::rt::as_f32(z1));
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn add_radial_impulse(position: Vec3,impulse: f32,radius: f32,falloff_radius: Option<f32>,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x0, y:y0, z:z0, } = position;
                                      let (result1_0,result1_1,) = match falloff_radius {
                                        Some(e) => (1i32, wit_bindgen::rt::as_f32(e)),
                                        None => {
                                          (0i32, 0.0f32)
                                        },
                                      };
                                      #[link(wasm_import_module = "ambient:bindings/server-physics")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "add-radial-impulse")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-physics_add-radial-impulse")]
                                        fn wit_import(
                                        _: f32, _: f32, _: f32, _: f32, _: f32, _: i32, _: f32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_f32(x0), wit_bindgen::rt::as_f32(y0), wit_bindgen::rt::as_f32(z0), wit_bindgen::rt::as_f32(impulse), wit_bindgen::rt::as_f32(radius), result1_0, result1_1);
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn add_force_at_position(entity: EntityId,force: Vec3,position: Vec3,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x1, y:y1, z:z1, } = force;
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x2, y:y2, z:z2, } = position;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/server-physics")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "add-force-at-position")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-physics_add-force-at-position")]
                                        fn wit_import(
                                        _: i64, _: i64, _: f32, _: f32, _: f32, _: f32, _: f32, _: f32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), wit_bindgen::rt::as_f32(x1), wit_bindgen::rt::as_f32(y1), wit_bindgen::rt::as_f32(z1), wit_bindgen::rt::as_f32(x2), wit_bindgen::rt::as_f32(y2), wit_bindgen::rt::as_f32(z2));
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn add_impulse_at_position(entity: EntityId,impulse: Vec3,position: Vec3,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x1, y:y1, z:z1, } = impulse;
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x2, y:y2, z:z2, } = position;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/server-physics")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "add-impulse-at-position")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-physics_add-impulse-at-position")]
                                        fn wit_import(
                                        _: i64, _: i64, _: f32, _: f32, _: f32, _: f32, _: f32, _: f32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), wit_bindgen::rt::as_f32(x1), wit_bindgen::rt::as_f32(y1), wit_bindgen::rt::as_f32(z1), wit_bindgen::rt::as_f32(x2), wit_bindgen::rt::as_f32(y2), wit_bindgen::rt::as_f32(z2));
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn get_velocity_at_position(entity: EntityId,position: Vec3,) -> Vec3{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(4))]
                                      struct RetArea([u8; 12]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x1, y:y1, z:z1, } = position;
                                      let ptr2 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/server-physics")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "get-velocity-at-position")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-physics_get-velocity-at-position")]
                                        fn wit_import(
                                        _: i64, _: i64, _: f32, _: f32, _: f32, _: i32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), wit_bindgen::rt::as_f32(x1), wit_bindgen::rt::as_f32(y1), wit_bindgen::rt::as_f32(z1), ptr2);
                                      super::super::super::ambient::bindings::types::Vec3{x:*((ptr2 + 0) as *const f32), y:*((ptr2 + 4) as *const f32), z:*((ptr2 + 8) as *const f32), }
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn set_gravity(gravity: Vec3,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x0, y:y0, z:z0, } = gravity;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/server-physics")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "set-gravity")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-physics_set-gravity")]
                                        fn wit_import(
                                        _: f32, _: f32, _: f32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_f32(x0), wit_bindgen::rt::as_f32(y0), wit_bindgen::rt::as_f32(z0));
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn unfreeze(entity: EntityId,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/server-physics")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "unfreeze")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-physics_unfreeze")]
                                        fn wit_import(
                                        _: i64, _: i64, );
                                      }
                                      wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10));
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn freeze(entity: EntityId,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/server-physics")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "freeze")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-physics_freeze")]
                                        fn wit_import(
                                        _: i64, _: i64, );
                                      }
                                      wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10));
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn start_motor(entity: EntityId,velocity: f32,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/server-physics")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "start-motor")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-physics_start-motor")]
                                        fn wit_import(
                                        _: i64, _: i64, _: f32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), wit_bindgen::rt::as_f32(velocity));
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn stop_motor(entity: EntityId,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/server-physics")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "stop-motor")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-physics_stop-motor")]
                                        fn wit_import(
                                        _: i64, _: i64, );
                                      }
                                      wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10));
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn create_revolute_joint(actor0: EntityId,transform0: Mat4,actor1: EntityId,transform1: Mat4,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(8))]
                                      struct RetArea([u8; 160]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let ptr0 = ret_area.as_mut_ptr() as i32;let super::super::super::ambient::bindings::types::EntityId{ id0:id01, id1:id11, } = actor0;
                                      *((ptr0 + 0) as *mut i64) = wit_bindgen::rt::as_i64(id01);
                                      *((ptr0 + 8) as *mut i64) = wit_bindgen::rt::as_i64(id11);
                                      let super::super::super::ambient::bindings::types::Mat4{ x:x2, y:y2, z:z2, w:w2, } = transform0;
                                      let super::super::super::ambient::bindings::types::Vec4{ x:x3, y:y3, z:z3, w:w3, } = x2;
                                      *((ptr0 + 16) as *mut f32) = wit_bindgen::rt::as_f32(x3);
                                      *((ptr0 + 20) as *mut f32) = wit_bindgen::rt::as_f32(y3);
                                      *((ptr0 + 24) as *mut f32) = wit_bindgen::rt::as_f32(z3);
                                      *((ptr0 + 28) as *mut f32) = wit_bindgen::rt::as_f32(w3);
                                      let super::super::super::ambient::bindings::types::Vec4{ x:x4, y:y4, z:z4, w:w4, } = y2;
                                      *((ptr0 + 32) as *mut f32) = wit_bindgen::rt::as_f32(x4);
                                      *((ptr0 + 36) as *mut f32) = wit_bindgen::rt::as_f32(y4);
                                      *((ptr0 + 40) as *mut f32) = wit_bindgen::rt::as_f32(z4);
                                      *((ptr0 + 44) as *mut f32) = wit_bindgen::rt::as_f32(w4);
                                      let super::super::super::ambient::bindings::types::Vec4{ x:x5, y:y5, z:z5, w:w5, } = z2;
                                      *((ptr0 + 48) as *mut f32) = wit_bindgen::rt::as_f32(x5);
                                      *((ptr0 + 52) as *mut f32) = wit_bindgen::rt::as_f32(y5);
                                      *((ptr0 + 56) as *mut f32) = wit_bindgen::rt::as_f32(z5);
                                      *((ptr0 + 60) as *mut f32) = wit_bindgen::rt::as_f32(w5);
                                      let super::super::super::ambient::bindings::types::Vec4{ x:x6, y:y6, z:z6, w:w6, } = w2;
                                      *((ptr0 + 64) as *mut f32) = wit_bindgen::rt::as_f32(x6);
                                      *((ptr0 + 68) as *mut f32) = wit_bindgen::rt::as_f32(y6);
                                      *((ptr0 + 72) as *mut f32) = wit_bindgen::rt::as_f32(z6);
                                      *((ptr0 + 76) as *mut f32) = wit_bindgen::rt::as_f32(w6);
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id07, id1:id17, } = actor1;
                                      *((ptr0 + 80) as *mut i64) = wit_bindgen::rt::as_i64(id07);
                                      *((ptr0 + 88) as *mut i64) = wit_bindgen::rt::as_i64(id17);
                                      let super::super::super::ambient::bindings::types::Mat4{ x:x8, y:y8, z:z8, w:w8, } = transform1;
                                      let super::super::super::ambient::bindings::types::Vec4{ x:x9, y:y9, z:z9, w:w9, } = x8;
                                      *((ptr0 + 96) as *mut f32) = wit_bindgen::rt::as_f32(x9);
                                      *((ptr0 + 100) as *mut f32) = wit_bindgen::rt::as_f32(y9);
                                      *((ptr0 + 104) as *mut f32) = wit_bindgen::rt::as_f32(z9);
                                      *((ptr0 + 108) as *mut f32) = wit_bindgen::rt::as_f32(w9);
                                      let super::super::super::ambient::bindings::types::Vec4{ x:x10, y:y10, z:z10, w:w10, } = y8;
                                      *((ptr0 + 112) as *mut f32) = wit_bindgen::rt::as_f32(x10);
                                      *((ptr0 + 116) as *mut f32) = wit_bindgen::rt::as_f32(y10);
                                      *((ptr0 + 120) as *mut f32) = wit_bindgen::rt::as_f32(z10);
                                      *((ptr0 + 124) as *mut f32) = wit_bindgen::rt::as_f32(w10);
                                      let super::super::super::ambient::bindings::types::Vec4{ x:x11, y:y11, z:z11, w:w11, } = z8;
                                      *((ptr0 + 128) as *mut f32) = wit_bindgen::rt::as_f32(x11);
                                      *((ptr0 + 132) as *mut f32) = wit_bindgen::rt::as_f32(y11);
                                      *((ptr0 + 136) as *mut f32) = wit_bindgen::rt::as_f32(z11);
                                      *((ptr0 + 140) as *mut f32) = wit_bindgen::rt::as_f32(w11);
                                      let super::super::super::ambient::bindings::types::Vec4{ x:x12, y:y12, z:z12, w:w12, } = w8;
                                      *((ptr0 + 144) as *mut f32) = wit_bindgen::rt::as_f32(x12);
                                      *((ptr0 + 148) as *mut f32) = wit_bindgen::rt::as_f32(y12);
                                      *((ptr0 + 152) as *mut f32) = wit_bindgen::rt::as_f32(z12);
                                      *((ptr0 + 156) as *mut f32) = wit_bindgen::rt::as_f32(w12);
                                      
                                      #[link(wasm_import_module = "ambient:bindings/server-physics")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "create-revolute-joint")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-physics_create-revolute-joint")]
                                        fn wit_import(
                                        _: i32, );
                                      }
                                      wit_import(ptr0);
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn raycast_first(origin: Vec3,direction: Vec3,) -> Option<(EntityId,f32,)>{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(8))]
                                      struct RetArea([u8; 32]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x0, y:y0, z:z0, } = origin;
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x1, y:y1, z:z1, } = direction;
                                      let ptr2 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/server-physics")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "raycast-first")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-physics_raycast-first")]
                                        fn wit_import(
                                        _: f32, _: f32, _: f32, _: f32, _: f32, _: f32, _: i32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_f32(x0), wit_bindgen::rt::as_f32(y0), wit_bindgen::rt::as_f32(z0), wit_bindgen::rt::as_f32(x1), wit_bindgen::rt::as_f32(y1), wit_bindgen::rt::as_f32(z1), ptr2);
                                      match i32::from(*((ptr2 + 0) as *const u8)) {
                                        0 => None,
                                        1 => Some((super::super::super::ambient::bindings::types::EntityId{id0:*((ptr2 + 8) as *const i64) as u64, id1:*((ptr2 + 16) as *const i64) as u64, }, *((ptr2 + 24) as *const f32))),
                                        #[cfg(not(debug_assertions))]
                                        _ => ::core::hint::unreachable_unchecked(),
                                        #[cfg(debug_assertions)]
                                        _ => panic!("invalid enum discriminant"),
                                      }
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn raycast(origin: Vec3,direction: Vec3,) -> wit_bindgen::rt::vec::Vec::<(EntityId,f32,)>{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(4))]
                                      struct RetArea([u8; 8]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x0, y:y0, z:z0, } = origin;
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x1, y:y1, z:z1, } = direction;
                                      let ptr2 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/server-physics")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "raycast")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-physics_raycast")]
                                        fn wit_import(
                                        _: f32, _: f32, _: f32, _: f32, _: f32, _: f32, _: i32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_f32(x0), wit_bindgen::rt::as_f32(y0), wit_bindgen::rt::as_f32(z0), wit_bindgen::rt::as_f32(x1), wit_bindgen::rt::as_f32(y1), wit_bindgen::rt::as_f32(z1), ptr2);
                                      let len3 = *((ptr2 + 4) as *const i32) as usize;
                                      Vec::from_raw_parts(*((ptr2 + 0) as *const i32) as *mut _, len3, len3)
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn move_character(entity: EntityId,displacement: Vec3,min_dist: f32,elapsed_time: f32,) -> CharacterCollision{
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      
                                      #[repr(align(1))]
                                      struct RetArea([u8; 3]);
                                      let mut ret_area = ::core::mem::MaybeUninit::<RetArea>::uninit();
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x1, y:y1, z:z1, } = displacement;
                                      let ptr2 = ret_area.as_mut_ptr() as i32;
                                      #[link(wasm_import_module = "ambient:bindings/server-physics")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "move-character")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-physics_move-character")]
                                        fn wit_import(
                                        _: i64, _: i64, _: f32, _: f32, _: f32, _: f32, _: f32, _: i32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), wit_bindgen::rt::as_f32(x1), wit_bindgen::rt::as_f32(y1), wit_bindgen::rt::as_f32(z1), wit_bindgen::rt::as_f32(min_dist), wit_bindgen::rt::as_f32(elapsed_time), ptr2);
                                      CharacterCollision{side:{
                                        #[cfg(not(debug_assertions))]
                                        { ::core::mem::transmute::<u8, bool>(i32::from(*((ptr2 + 0) as *const u8)) as u8) }
                                        #[cfg(debug_assertions)]
                                        {
                                          match i32::from(*((ptr2 + 0) as *const u8)) {
                                            0 => false,
                                            1 => true,
                                            _ => panic!("invalid bool discriminant"),
                                          }
                                        }
                                      }, up:{
                                        #[cfg(not(debug_assertions))]
                                        { ::core::mem::transmute::<u8, bool>(i32::from(*((ptr2 + 1) as *const u8)) as u8) }
                                        #[cfg(debug_assertions)]
                                        {
                                          match i32::from(*((ptr2 + 1) as *const u8)) {
                                            0 => false,
                                            1 => true,
                                            _ => panic!("invalid bool discriminant"),
                                          }
                                        }
                                      }, down:{
                                        #[cfg(not(debug_assertions))]
                                        { ::core::mem::transmute::<u8, bool>(i32::from(*((ptr2 + 2) as *const u8)) as u8) }
                                        #[cfg(debug_assertions)]
                                        {
                                          match i32::from(*((ptr2 + 2) as *const u8)) {
                                            0 => false,
                                            1 => true,
                                            _ => panic!("invalid bool discriminant"),
                                          }
                                        }
                                      }, }
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn set_character_position(entity: EntityId,position: Vec3,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x1, y:y1, z:z1, } = position;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/server-physics")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "set-character-position")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-physics_set-character-position")]
                                        fn wit_import(
                                        _: i64, _: i64, _: f32, _: f32, _: f32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), wit_bindgen::rt::as_f32(x1), wit_bindgen::rt::as_f32(y1), wit_bindgen::rt::as_f32(z1));
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn set_character_foot_position(entity: EntityId,position: Vec3,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let super::super::super::ambient::bindings::types::EntityId{ id0:id00, id1:id10, } = entity;
                                      let super::super::super::ambient::bindings::types::Vec3{ x:x1, y:y1, z:z1, } = position;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/server-physics")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "set-character-foot-position")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-physics_set-character-foot-position")]
                                        fn wit_import(
                                        _: i64, _: i64, _: f32, _: f32, _: f32, );
                                      }
                                      wit_import(wit_bindgen::rt::as_i64(id00), wit_bindgen::rt::as_i64(id10), wit_bindgen::rt::as_f32(x1), wit_bindgen::rt::as_f32(y1), wit_bindgen::rt::as_f32(z1));
                                    }
                                  }
                                  
                                }
                                
                                
                                #[allow(clippy::all)]
                                pub mod server_message {
                                  #[used]
                                  #[doc(hidden)]
                                  #[cfg(target_arch = "wasm32")]
                                  static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
                                  
                                  pub type EntityId = super::super::super::ambient::bindings::types::EntityId;
                                  #[derive(Clone)]
                                  pub enum Target{
                                    ClientBroadcastUnreliable,
                                    ClientBroadcastReliable,
                                    ClientTargetedUnreliable(wit_bindgen::rt::string::String),
                                    ClientTargetedReliable(wit_bindgen::rt::string::String),
                                    LocalBroadcast(bool),
                                    Local(EntityId),
                                  }
                                  impl ::core::fmt::Debug for Target {
                                    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
                                      match self {
                                        Target::ClientBroadcastUnreliable => {
                                          f.debug_tuple("Target::ClientBroadcastUnreliable").finish()
                                        }
                                        Target::ClientBroadcastReliable => {
                                          f.debug_tuple("Target::ClientBroadcastReliable").finish()
                                        }
                                        Target::ClientTargetedUnreliable(e) => {
                                          f.debug_tuple("Target::ClientTargetedUnreliable").field(e).finish()
                                        }
                                        Target::ClientTargetedReliable(e) => {
                                          f.debug_tuple("Target::ClientTargetedReliable").field(e).finish()
                                        }
                                        Target::LocalBroadcast(e) => {
                                          f.debug_tuple("Target::LocalBroadcast").field(e).finish()
                                        }
                                        Target::Local(e) => {
                                          f.debug_tuple("Target::Local").field(e).finish()
                                        }
                                      }
                                    }
                                  }
                                  #[allow(clippy::all)]
                                  pub fn send(target_id: &Target,name: &str,data: &[u8],){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let (result3_0,result3_1,result3_2,) = match target_id {
                                        Target::ClientBroadcastUnreliable=> {
                                          (0i32, 0i64, 0i64)
                                        }
                                        Target::ClientBroadcastReliable=> {
                                          (1i32, 0i64, 0i64)
                                        }
                                        Target::ClientTargetedUnreliable(e) => {
                                          let vec0 = e;
                                          let ptr0 = vec0.as_ptr() as i32;
                                          let len0 = vec0.len() as i32;
                                          
                                          (2i32, i64::from(ptr0), i64::from(len0))
                                        },
                                        Target::ClientTargetedReliable(e) => {
                                          let vec1 = e;
                                          let ptr1 = vec1.as_ptr() as i32;
                                          let len1 = vec1.len() as i32;
                                          
                                          (3i32, i64::from(ptr1), i64::from(len1))
                                        },
                                        Target::LocalBroadcast(e) => (4i32, i64::from(match e { true => 1, false => 0 }), 0i64),
                                        Target::Local(e) => {
                                          let super::super::super::ambient::bindings::types::EntityId{ id0:id02, id1:id12, } = e;
                                          
                                          (5i32, wit_bindgen::rt::as_i64(id02), wit_bindgen::rt::as_i64(id12))
                                        },
                                      };
                                      let vec4 = name;
                                      let ptr4 = vec4.as_ptr() as i32;
                                      let len4 = vec4.len() as i32;
                                      let vec5 = data;
                                      let ptr5 = vec5.as_ptr() as i32;
                                      let len5 = vec5.len() as i32;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/server-message")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "send")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-message_send")]
                                        fn wit_import(
                                        _: i32, _: i64, _: i64, _: i32, _: i32, _: i32, _: i32, );
                                      }
                                      wit_import(result3_0, result3_1, result3_2, ptr4, len4, ptr5, len5);
                                    }
                                  }
                                  
                                }
                                
                                
                                #[allow(clippy::all)]
                                pub mod server_http {
                                  #[used]
                                  #[doc(hidden)]
                                  #[cfg(target_arch = "wasm32")]
                                  static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
                                  
                                  #[allow(clippy::all)]
                                  pub fn get(url: &str,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let vec0 = url;
                                      let ptr0 = vec0.as_ptr() as i32;
                                      let len0 = vec0.len() as i32;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/server-http")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "get")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-http_get")]
                                        fn wit_import(
                                        _: i32, _: i32, );
                                      }
                                      wit_import(ptr0, len0);
                                    }
                                  }
                                  
                                }
                                
                                
                                #[allow(clippy::all)]
                                pub mod server_ambient_package {
                                  #[used]
                                  #[doc(hidden)]
                                  #[cfg(target_arch = "wasm32")]
                                  static __FORCE_SECTION_REF: fn() = super::super::super::__link_section;
                                  
                                  #[allow(clippy::all)]
                                  pub fn load(package_url: &str,){
                                    
                                    #[allow(unused_imports)]
                                    use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                    unsafe {
                                      let vec0 = package_url;
                                      let ptr0 = vec0.as_ptr() as i32;
                                      let len0 = vec0.len() as i32;
                                      
                                      #[link(wasm_import_module = "ambient:bindings/server-ambient-package")]
                                      extern "C" {
                                        #[cfg_attr(target_arch = "wasm32", link_name = "load")]
                                        #[cfg_attr(not(target_arch = "wasm32"), link_name = "ambient:bindings/server-ambient-package_load")]
                                        fn wit_import(
                                        _: i32, _: i32, );
                                      }
                                      wit_import(ptr0, len0);
                                    }
                                  }
                                  
                                }
                                
                              }
                            }
                            pub mod exports {
                              pub mod ambient {
                                pub mod bindings {
                                  
                                  #[allow(clippy::all)]
                                  pub mod guest {
                                    #[used]
                                    #[doc(hidden)]
                                    #[cfg(target_arch = "wasm32")]
                                    static __FORCE_SECTION_REF: fn() = super::super::super::super::__link_section;
                                    
                                    pub type EntityId = super::super::super::super::ambient::bindings::types::EntityId;
                                    #[derive(Clone)]
                                    pub enum Source{
                                      Runtime,
                                      Local(EntityId),
                                      Server,
                                      Client(wit_bindgen::rt::string::String),
                                    }
                                    impl ::core::fmt::Debug for Source {
                                      fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
                                        match self {
                                          Source::Runtime => {
                                            f.debug_tuple("Source::Runtime").finish()
                                          }
                                          Source::Local(e) => {
                                            f.debug_tuple("Source::Local").field(e).finish()
                                          }
                                          Source::Server => {
                                            f.debug_tuple("Source::Server").finish()
                                          }
                                          Source::Client(e) => {
                                            f.debug_tuple("Source::Client").field(e).finish()
                                          }
                                        }
                                      }
                                    }
                                    pub trait Guest {
                                      fn init();
                                      fn exec(message_source: Source,message_name: wit_bindgen::rt::string::String,message_data: wit_bindgen::rt::vec::Vec::<u8>,);
                                    }
                                    
                                    #[doc(hidden)]
                                    pub unsafe fn call_init<T: Guest>() {
                                      
                                      #[allow(unused_imports)]
                                      use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                      
                                      // Before executing any other code, use this function to run all static
                                      // constructors, if they have not yet been run. This is a hack required
                                      // to work around wasi-libc ctors calling import functions to initialize
                                      // the environment.
                                      //
                                      // This functionality will be removed once rust 1.69.0 is stable, at which
                                      // point wasi-libc will no longer have this behavior.
                                      //
                                      // See
                                      // https://github.com/bytecodealliance/preview2-prototyping/issues/99
                                      // for more details.
                                      #[cfg(target_arch="wasm32")]
                                      wit_bindgen::rt::run_ctors_once();
                                      
                                      T::init();
                                    }
                                    
                                    #[doc(hidden)]
                                    pub unsafe fn call_exec<T: Guest>(arg0: i32,arg1: i64,arg2: i64,arg3: i32,arg4: i32,arg5: i32,arg6: i32,) {
                                      
                                      #[allow(unused_imports)]
                                      use wit_bindgen::rt::{alloc, vec::Vec, string::String};
                                      
                                      // Before executing any other code, use this function to run all static
                                      // constructors, if they have not yet been run. This is a hack required
                                      // to work around wasi-libc ctors calling import functions to initialize
                                      // the environment.
                                      //
                                      // This functionality will be removed once rust 1.69.0 is stable, at which
                                      // point wasi-libc will no longer have this behavior.
                                      //
                                      // See
                                      // https://github.com/bytecodealliance/preview2-prototyping/issues/99
                                      // for more details.
                                      #[cfg(target_arch="wasm32")]
                                      wit_bindgen::rt::run_ctors_once();
                                      
                                      let len1 = arg4 as usize;
                                      let len2 = arg6 as usize;
                                      T::exec({{match arg0 {
                                        0 => Source::Runtime,
                                        1 => Source::Local(super::super::super::super::ambient::bindings::types::EntityId{id0:arg1 as u64, id1:arg2 as u64, }),
                                        2 => Source::Server,
                                        #[cfg(debug_assertions)]3 => Source::Client({
                                          let len0 = arg2 as i32 as usize;
                                          
                                          {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(arg1 as i32 as *mut _, len0, len0))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(arg1 as i32 as *mut _, len0, len0)).unwrap()}}
                                        }),
                                        #[cfg(not(debug_assertions))]_ => Source::Client({
                                          let len0 = arg2 as i32 as usize;
                                          
                                          {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(arg1 as i32 as *mut _, len0, len0))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(arg1 as i32 as *mut _, len0, len0)).unwrap()}}
                                        }),
                                        #[cfg(debug_assertions)]_ => panic!("invalid enum discriminant"),
                                      }}}, {#[cfg(not(debug_assertions))]{String::from_utf8_unchecked(Vec::from_raw_parts(arg3 as *mut _, len1, len1))}#[cfg(debug_assertions)]{String::from_utf8(Vec::from_raw_parts(arg3 as *mut _, len1, len1)).unwrap()}}, Vec::from_raw_parts(arg5 as *mut _, len2, len2));
                                    }
                                    
                                  }
                                  
                                }
                              }
                            }
                            
                            #[cfg(target_arch = "wasm32")]
                            #[link_section = "component-type:bindings"]
                            #[doc(hidden)]
                            pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 19702] = [3, 0, 8, 98, 105, 110, 100, 105, 110, 103, 115, 0, 97, 115, 109, 13, 0, 1, 0, 7, 252, 152, 1, 1, 65, 69, 1, 66, 4, 1, 64, 0, 1, 0, 4, 0, 3, 103, 101, 116, 1, 0, 1, 64, 1, 4, 116, 101, 120, 116, 115, 1, 0, 4, 0, 3, 115, 101, 116, 1, 1, 4, 1, 33, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 99, 108, 105, 112, 98, 111, 97, 114, 100, 5, 0, 1, 66, 2, 1, 64, 1, 10, 102, 117, 108, 108, 115, 99, 114, 101, 101, 110, 127, 1, 0, 4, 0, 14, 115, 101, 116, 45, 102, 117, 108, 108, 115, 99, 114, 101, 101, 110, 1, 0, 4, 1, 30, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 119, 105, 110, 100, 111, 119, 5, 1, 1, 66, 2, 1, 64, 1, 11, 112, 97, 99, 107, 97, 103, 101, 45, 117, 114, 108, 115, 1, 0, 4, 0, 4, 108, 111, 97, 100, 1, 0, 4, 1, 39, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 115, 101, 114, 118, 101, 114, 45, 97, 109, 98, 105, 101, 110, 116, 45, 112, 97, 99, 107, 97, 103, 101, 5, 2, 1, 66, 0, 4, 1, 29, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 115, 101, 114, 118, 101, 114, 45, 97, 115, 115, 101, 116, 5, 3, 1, 66, 2, 1, 64, 1, 3, 117, 114, 108, 115, 1, 0, 4, 0, 3, 103, 101, 116, 1, 0, 4, 1, 28, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 115, 101, 114, 118, 101, 114, 45, 104, 116, 116, 112, 5, 4, 1, 66, 32, 1, 114, 2, 3, 105, 100, 48, 119, 3, 105, 100, 49, 119, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 1, 114, 2, 1, 120, 118, 1, 121, 118, 4, 0, 4, 118, 101, 99, 50, 3, 0, 2, 1, 114, 3, 1, 120, 118, 1, 121, 118, 1, 122, 118, 4, 0, 4, 118, 101, 99, 51, 3, 0, 4, 1, 114, 4, 1, 120, 118, 1, 121, 118, 1, 122, 118, 1, 119, 118, 4, 0, 4, 118, 101, 99, 52, 3, 0, 6, 1, 114, 2, 1, 120, 121, 1, 121, 121, 4, 0, 5, 117, 118, 101, 99, 50, 3, 0, 8, 1, 114, 3, 1, 120, 121, 1, 121, 121, 1, 122, 121, 4, 0, 5, 117, 118, 101, 99, 51, 3, 0, 10, 1, 114, 4, 1, 120, 121, 1, 121, 121, 1, 122, 121, 1, 119, 121, 4, 0, 5, 117, 118, 101, 99, 52, 3, 0, 12, 1, 114, 2, 1, 120, 122, 1, 121, 122, 4, 0, 5, 105, 118, 101, 99, 50, 3, 0, 14, 1, 114, 3, 1, 120, 122, 1, 121, 122, 1, 122, 122, 4, 0, 5, 105, 118, 101, 99, 51, 3, 0, 16, 1, 114, 4, 1, 120, 122, 1, 121, 122, 1, 122, 122, 1, 119, 122, 4, 0, 5, 105, 118, 101, 99, 52, 3, 0, 18, 1, 114, 4, 1, 120, 118, 1, 121, 118, 1, 122, 118, 1, 119, 118, 4, 0, 4, 113, 117, 97, 116, 3, 0, 20, 1, 114, 4, 1, 120, 7, 1, 121, 7, 1, 122, 7, 1, 119, 7, 4, 0, 4, 109, 97, 116, 52, 3, 0, 22, 1, 114, 2, 7, 115, 101, 99, 111, 110, 100, 115, 119, 11, 110, 97, 110, 111, 115, 101, 99, 111, 110, 100, 115, 121, 4, 0, 8, 100, 117, 114, 97, 116, 105, 111, 110, 3, 0, 24, 1, 114, 2, 6, 111, 114, 105, 103, 105, 110, 5, 3, 100, 105, 114, 5, 4, 0, 3, 114, 97, 121, 3, 0, 26, 1, 114, 1, 5, 100, 117, 109, 109, 121, 125, 4, 0, 5, 101, 109, 112, 116, 121, 3, 0, 28, 1, 111, 2, 119, 119, 4, 0, 4, 117, 108, 105, 100, 3, 0, 30, 4, 1, 22, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 116, 121, 112, 101, 115, 5, 5, 2, 3, 0, 5, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 1, 66, 5, 2, 3, 2, 1, 6, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 1, 107, 1, 1, 64, 1, 10, 112, 97, 99, 107, 97, 103, 101, 45, 105, 100, 115, 0, 2, 4, 0, 25, 103, 101, 116, 45, 101, 110, 116, 105, 116, 121, 45, 102, 111, 114, 45, 112, 97, 99, 107, 97, 103, 101, 45, 105, 100, 1, 3, 4, 1, 32, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 97, 109, 98, 105, 101, 110, 116, 45, 112, 97, 99, 107, 97, 103, 101, 5, 7, 1, 66, 7, 2, 3, 2, 1, 6, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 1, 113, 1, 11, 105, 110, 118, 97, 108, 105, 100, 45, 117, 114, 108, 1, 115, 0, 4, 0, 9, 117, 114, 108, 45, 101, 114, 114, 111, 114, 3, 0, 2, 1, 106, 1, 115, 1, 3, 1, 64, 2, 10, 112, 97, 99, 107, 97, 103, 101, 45, 105, 100, 1, 4, 112, 97, 116, 104, 115, 0, 4, 4, 0, 3, 117, 114, 108, 1, 5, 4, 1, 22, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 97, 115, 115, 101, 116, 5, 8, 2, 3, 0, 5, 4, 118, 101, 99, 51, 2, 3, 0, 5, 4, 118, 101, 99, 50, 2, 3, 0, 5, 3, 114, 97, 121, 1, 66, 16, 2, 3, 2, 1, 9, 4, 0, 4, 118, 101, 99, 51, 3, 0, 0, 2, 3, 2, 1, 10, 4, 0, 4, 118, 101, 99, 50, 3, 0, 2, 2, 3, 2, 1, 11, 4, 0, 3, 114, 97, 121, 3, 0, 4, 2, 3, 2, 1, 6, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 6, 1, 64, 2, 6, 99, 97, 109, 101, 114, 97, 7, 14, 99, 108, 105, 112, 45, 115, 112, 97, 99, 101, 45, 112, 111, 115, 3, 0, 5, 4, 0, 26, 99, 108, 105, 112, 45, 112, 111, 115, 105, 116, 105, 111, 110, 45, 116, 111, 45, 119, 111, 114, 108, 100, 45, 114, 97, 121, 1, 8, 1, 64, 1, 10, 115, 99, 114, 101, 101, 110, 45, 112, 111, 115, 3, 0, 3, 4, 0, 20, 115, 99, 114, 101, 101, 110, 45, 116, 111, 45, 99, 108, 105, 112, 45, 115, 112, 97, 99, 101, 1, 9, 1, 64, 2, 6, 99, 97, 109, 101, 114, 97, 7, 10, 115, 99, 114, 101, 101, 110, 45, 112, 111, 115, 3, 0, 5, 4, 0, 28, 115, 99, 114, 101, 101, 110, 45, 112, 111, 115, 105, 116, 105, 111, 110, 45, 116, 111, 45, 119, 111, 114, 108, 100, 45, 114, 97, 121, 1, 10, 1, 64, 2, 6, 99, 97, 109, 101, 114, 97, 7, 10, 115, 99, 114, 101, 101, 110, 45, 112, 111, 115, 1, 0, 3, 4, 0, 15, 119, 111, 114, 108, 100, 45, 116, 111, 45, 115, 99, 114, 101, 101, 110, 1, 11, 4, 1, 30, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 99, 97, 109, 101, 114, 97, 5, 12, 1, 66, 23, 2, 3, 2, 1, 10, 4, 0, 4, 118, 101, 99, 50, 3, 0, 0, 2, 3, 2, 1, 6, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 2, 1, 109, 163, 1, 4, 107, 101, 121, 49, 4, 107, 101, 121, 50, 4, 107, 101, 121, 51, 4, 107, 101, 121, 52, 4, 107, 101, 121, 53, 4, 107, 101, 121, 54, 4, 107, 101, 121, 55, 4, 107, 101, 121, 56, 4, 107, 101, 121, 57, 4, 107, 101, 121, 48, 1, 97, 1, 98, 1, 99, 1, 100, 1, 101, 1, 102, 1, 103, 1, 104, 1, 105, 1, 106, 1, 107, 1, 108, 1, 109, 1, 110, 1, 111, 1, 112, 1, 113, 1, 114, 1, 115, 1, 116, 1, 117, 1, 118, 1, 119, 1, 120, 1, 121, 1, 122, 6, 101, 115, 99, 97, 112, 101, 2, 102, 49, 2, 102, 50, 2, 102, 51, 2, 102, 52, 2, 102, 53, 2, 102, 54, 2, 102, 55, 2, 102, 56, 2, 102, 57, 3, 102, 49, 48, 3, 102, 49, 49, 3, 102, 49, 50, 3, 102, 49, 51, 3, 102, 49, 52, 3, 102, 49, 53, 3, 102, 49, 54, 3, 102, 49, 55, 3, 102, 49, 56, 3, 102, 49, 57, 3, 102, 50, 48, 3, 102, 50, 49, 3, 102, 50, 50, 3, 102, 50, 51, 3, 102, 50, 52, 8, 115, 110, 97, 112, 115, 104, 111, 116, 6, 115, 99, 114, 111, 108, 108, 5, 112, 97, 117, 115, 101, 6, 105, 110, 115, 101, 114, 116, 4, 104, 111, 109, 101, 6, 100, 101, 108, 101, 116, 101, 3, 101, 110, 100, 9, 112, 97, 103, 101, 45, 100, 111, 119, 110, 7, 112, 97, 103, 101, 45, 117, 112, 4, 108, 101, 102, 116, 2, 117, 112, 5, 114, 105, 103, 104, 116, 4, 100, 111, 119, 110, 4, 98, 97, 99, 107, 6, 114, 101, 116, 117, 114, 110, 5, 115, 112, 97, 99, 101, 7, 99, 111, 109, 112, 111, 115, 101, 5, 99, 97, 114, 101, 116, 7, 110, 117, 109, 108, 111, 99, 107, 7, 110, 117, 109, 112, 97, 100, 48, 7, 110, 117, 109, 112, 97, 100, 49, 7, 110, 117, 109, 112, 97, 100, 50, 7, 110, 117, 109, 112, 97, 100, 51, 7, 110, 117, 109, 112, 97, 100, 52, 7, 110, 117, 109, 112, 97, 100, 53, 7, 110, 117, 109, 112, 97, 100, 54, 7, 110, 117, 109, 112, 97, 100, 55, 7, 110, 117, 109, 112, 97, 100, 56, 7, 110, 117, 109, 112, 97, 100, 57, 10, 110, 117, 109, 112, 97, 100, 45, 97, 100, 100, 13, 110, 117, 109, 112, 97, 100, 45, 100, 105, 118, 105, 100, 101, 14, 110, 117, 109, 112, 97, 100, 45, 100, 101, 99, 105, 109, 97, 108, 12, 110, 117, 109, 112, 97, 100, 45, 99, 111, 109, 109, 97, 12, 110, 117, 109, 112, 97, 100, 45, 101, 110, 116, 101, 114, 13, 110, 117, 109, 112, 97, 100, 45, 101, 113, 117, 97, 108, 115, 15, 110, 117, 109, 112, 97, 100, 45, 109, 117, 108, 116, 105, 112, 108, 121, 15, 110, 117, 109, 112, 97, 100, 45, 115, 117, 98, 116, 114, 97, 99, 116, 7, 97, 98, 110, 116, 45, 99, 49, 7, 97, 98, 110, 116, 45, 99, 50, 10, 97, 112, 111, 115, 116, 114, 111, 112, 104, 101, 4, 97, 112, 112, 115, 8, 97, 115, 116, 101, 114, 105, 115, 107, 2, 97, 116, 2, 97, 120, 9, 98, 97, 99, 107, 115, 108, 97, 115, 104, 10, 99, 97, 108, 99, 117, 108, 97, 116, 111, 114, 7, 99, 97, 112, 105, 116, 97, 108, 5, 99, 111, 108, 111, 110, 5, 99, 111, 109, 109, 97, 7, 99, 111, 110, 118, 101, 114, 116, 6, 101, 113, 117, 97, 108, 115, 5, 103, 114, 97, 118, 101, 4, 107, 97, 110, 97, 5, 107, 97, 110, 106, 105, 5, 108, 45, 97, 108, 116, 9, 108, 45, 98, 114, 97, 99, 107, 101, 116, 9, 108, 45, 99, 111, 110, 116, 114, 111, 108, 7, 108, 45, 115, 104, 105, 102, 116, 5, 108, 45, 119, 105, 110, 4, 109, 97, 105, 108, 12, 109, 101, 100, 105, 97, 45, 115, 101, 108, 101, 99, 116, 10, 109, 101, 100, 105, 97, 45, 115, 116, 111, 112, 5, 109, 105, 110, 117, 115, 4, 109, 117, 116, 101, 11, 109, 121, 45, 99, 111, 109, 112, 117, 116, 101, 114, 16, 110, 97, 118, 105, 103, 97, 116, 101, 45, 102, 111, 114, 119, 97, 114, 100, 17, 110, 97, 118, 105, 103, 97, 116, 101, 45, 98, 97, 99, 107, 119, 97, 114, 100, 10, 110, 101, 120, 116, 45, 116, 114, 97, 99, 107, 10, 110, 111, 45, 99, 111, 110, 118, 101, 114, 116, 6, 111, 101, 109, 49, 48, 50, 6, 112, 101, 114, 105, 111, 100, 10, 112, 108, 97, 121, 45, 112, 97, 117, 115, 101, 4, 112, 108, 117, 115, 5, 112, 111, 119, 101, 114, 10, 112, 114, 101, 118, 45, 116, 114, 97, 99, 107, 5, 114, 45, 97, 108, 116, 9, 114, 45, 98, 114, 97, 99, 107, 101, 116, 9, 114, 45, 99, 111, 110, 116, 114, 111, 108, 7, 114, 45, 115, 104, 105, 102, 116, 5, 114, 45, 119, 105, 110, 9, 115, 101, 109, 105, 99, 111, 108, 111, 110, 5, 115, 108, 97, 115, 104, 5, 115, 108, 101, 101, 112, 4, 115, 116, 111, 112, 5, 115, 121, 115, 114, 113, 3, 116, 97, 98, 9, 117, 110, 100, 101, 114, 108, 105, 110, 101, 9, 117, 110, 108, 97, 98, 101, 108, 101, 100, 11, 118, 111, 108, 117, 109, 101, 45, 100, 111, 119, 110, 9, 118, 111, 108, 117, 109, 101, 45, 117, 112, 4, 119, 97, 107, 101, 8, 119, 101, 98, 45, 98, 97, 99, 107, 13, 119, 101, 98, 45, 102, 97, 118, 111, 114, 105, 116, 101, 115, 11, 119, 101, 98, 45, 102, 111, 114, 119, 97, 114, 100, 8, 119, 101, 98, 45, 104, 111, 109, 101, 11, 119, 101, 98, 45, 114, 101, 102, 114, 101, 115, 104, 10, 119, 101, 98, 45, 115, 101, 97, 114, 99, 104, 8, 119, 101, 98, 45, 115, 116, 111, 112, 3, 121, 101, 110, 4, 99, 111, 112, 121, 5, 112, 97, 115, 116, 101, 3, 99, 117, 116, 4, 0, 16, 118, 105, 114, 116, 117, 97, 108, 45, 107, 101, 121, 45, 99, 111, 100, 101, 3, 0, 4, 1, 113, 4, 4, 108, 101, 102, 116, 0, 0, 5, 114, 105, 103, 104, 116, 0, 0, 6, 109, 105, 100, 100, 108, 101, 0, 0, 5, 111, 116, 104, 101, 114, 1, 123, 0, 4, 0, 12, 109, 111, 117, 115, 101, 45, 98, 117, 116, 116, 111, 110, 3, 0, 6, 1, 112, 5, 1, 112, 7, 1, 114, 5, 4, 107, 101, 121, 115, 8, 14, 109, 111, 117, 115, 101, 45, 112, 111, 115, 105, 116, 105, 111, 110, 1, 11, 109, 111, 117, 115, 101, 45, 100, 101, 108, 116, 97, 1, 11, 109, 111, 117, 115, 101, 45, 119, 104, 101, 101, 108, 118, 13, 109, 111, 117, 115, 101, 45, 98, 117, 116, 116, 111, 110, 115, 9, 4, 0, 5, 105, 110, 112, 117, 116, 3, 0, 10, 1, 113, 35, 12, 100, 101, 102, 97, 117, 108, 116, 45, 105, 99, 111, 110, 0, 0, 9, 99, 114, 111, 115, 115, 104, 97, 105, 114, 0, 0, 4, 104, 97, 110, 100, 0, 0, 5, 97, 114, 114, 111, 119, 0, 0, 4, 109, 111, 118, 101, 0, 0, 4, 116, 101, 120, 116, 0, 0, 4, 119, 97, 105, 116, 0, 0, 4, 104, 101, 108, 112, 0, 0, 8, 112, 114, 111, 103, 114, 101, 115, 115, 0, 0, 11, 110, 111, 116, 45, 97, 108, 108, 111, 119, 101, 100, 0, 0, 12, 99, 111, 110, 116, 101, 120, 116, 45, 109, 101, 110, 117, 0, 0, 4, 99, 101, 108, 108, 0, 0, 13, 118, 101, 114, 116, 105, 99, 97, 108, 45, 116, 101, 120, 116, 0, 0, 5, 97, 108, 105, 97, 115, 0, 0, 4, 99, 111, 112, 121, 0, 0, 7, 110, 111, 45, 100, 114, 111, 112, 0, 0, 4, 103, 114, 97, 98, 0, 0, 8, 103, 114, 97, 98, 98, 105, 110, 103, 0, 0, 10, 97, 108, 108, 45, 115, 99, 114, 111, 108, 108, 0, 0, 7, 122, 111, 111, 109, 45, 105, 110, 0, 0, 8, 122, 111, 111, 109, 45, 111, 117, 116, 0, 0, 8, 101, 45, 114, 101, 115, 105, 122, 101, 0, 0, 8, 110, 45, 114, 101, 115, 105, 122, 101, 0, 0, 9, 110, 101, 45, 114, 101, 115, 105, 122, 101, 0, 0, 9, 110, 119, 45, 114, 101, 115, 105, 122, 101, 0, 0, 8, 115, 45, 114, 101, 115, 105, 122, 101, 0, 0, 9, 115, 101, 45, 114, 101, 115, 105, 122, 101, 0, 0, 9, 115, 119, 45, 114, 101, 115, 105, 122, 101, 0, 0, 8, 119, 45, 114, 101, 115, 105, 122, 101, 0, 0, 9, 101, 119, 45, 114, 101, 115, 105, 122, 101, 0, 0, 9, 110, 115, 45, 114, 101, 115, 105, 122, 101, 0, 0, 11, 110, 101, 115, 119, 45, 114, 101, 115, 105, 122, 101, 0, 0, 11, 110, 119, 115, 101, 45, 114, 101, 115, 105, 122, 101, 0, 0, 10, 99, 111, 108, 45, 114, 101, 115, 105, 122, 101, 0, 0, 10, 114, 111, 119, 45, 114, 101, 115, 105, 122, 101, 0, 0, 4, 0, 11, 99, 117, 114, 115, 111, 114, 45, 105, 99, 111, 110, 3, 0, 12, 1, 64, 0, 0, 11, 4, 0, 3, 103, 101, 116, 1, 14, 4, 0, 12, 103, 101, 116, 45, 112, 114, 101, 118, 105, 111, 117, 115, 1, 14, 1, 64, 1, 4, 105, 99, 111, 110, 13, 1, 0, 4, 0, 10, 115, 101, 116, 45, 99, 117, 114, 115, 111, 114, 1, 15, 1, 64, 1, 7, 118, 105, 115, 105, 98, 108, 101, 127, 1, 0, 4, 0, 18, 115, 101, 116, 45, 99, 117, 114, 115, 111, 114, 45, 118, 105, 115, 105, 98, 108, 101, 1, 16, 1, 64, 1, 6, 108, 111, 99, 107, 101, 100, 127, 1, 0, 4, 0, 15, 115, 101, 116, 45, 99, 117, 114, 115, 111, 114, 45, 108, 111, 99, 107, 1, 17, 4, 1, 29, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 105, 110, 112, 117, 116, 5, 13, 2, 3, 0, 5, 4, 117, 108, 105, 100, 1, 66, 18, 2, 3, 2, 1, 10, 4, 0, 4, 118, 101, 99, 50, 3, 0, 0, 2, 3, 2, 1, 9, 4, 0, 4, 118, 101, 99, 51, 3, 0, 2, 2, 3, 2, 1, 14, 4, 0, 4, 117, 108, 105, 100, 3, 0, 4, 1, 114, 4, 8, 112, 111, 115, 105, 116, 105, 111, 110, 3, 6, 110, 111, 114, 109, 97, 108, 3, 7, 116, 97, 110, 103, 101, 110, 116, 3, 9, 116, 101, 120, 99, 111, 111, 114, 100, 48, 1, 4, 0, 6, 118, 101, 114, 116, 101, 120, 3, 0, 6, 1, 112, 7, 1, 112, 121, 1, 114, 2, 8, 118, 101, 114, 116, 105, 99, 101, 115, 8, 7, 105, 110, 100, 105, 99, 101, 115, 9, 4, 0, 10, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 3, 0, 10, 1, 114, 1, 4, 117, 108, 105, 100, 5, 4, 0, 6, 104, 97, 110, 100, 108, 101, 3, 0, 12, 1, 64, 1, 4, 100, 101, 115, 99, 11, 0, 13, 4, 0, 6, 99, 114, 101, 97, 116, 101, 1, 14, 1, 64, 1, 6, 104, 97, 110, 100, 108, 101, 13, 1, 0, 4, 0, 7, 100, 101, 115, 116, 114, 111, 121, 1, 15, 4, 1, 28, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 109, 101, 115, 104, 5, 15, 1, 66, 7, 2, 3, 2, 1, 6, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 1, 113, 4, 17, 115, 101, 114, 118, 101, 114, 45, 117, 110, 114, 101, 108, 105, 97, 98, 108, 101, 0, 0, 15, 115, 101, 114, 118, 101, 114, 45, 114, 101, 108, 105, 97, 98, 108, 101, 0, 0, 15, 108, 111, 99, 97, 108, 45, 98, 114, 111, 97, 100, 99, 97, 115, 116, 1, 127, 0, 5, 108, 111, 99, 97, 108, 1, 1, 0, 4, 0, 6, 116, 97, 114, 103, 101, 116, 3, 0, 2, 1, 112, 125, 1, 64, 3, 9, 116, 97, 114, 103, 101, 116, 45, 105, 100, 3, 4, 110, 97, 109, 101, 115, 4, 100, 97, 116, 97, 4, 1, 0, 4, 0, 4, 115, 101, 110, 100, 1, 5, 4, 1, 31, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 109, 101, 115, 115, 97, 103, 101, 5, 16, 1, 66, 4, 2, 3, 2, 1, 6, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 1, 64, 0, 0, 1, 4, 0, 9, 103, 101, 116, 45, 108, 111, 99, 97, 108, 1, 2, 4, 1, 30, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 112, 108, 97, 121, 101, 114, 5, 17, 1, 66, 14, 2, 3, 2, 1, 14, 4, 0, 4, 117, 108, 105, 100, 3, 0, 0, 1, 113, 3, 13, 99, 108, 97, 109, 112, 45, 116, 111, 45, 101, 100, 103, 101, 0, 0, 6, 114, 101, 112, 101, 97, 116, 0, 0, 13, 109, 105, 114, 114, 111, 114, 45, 114, 101, 112, 101, 97, 116, 0, 0, 4, 0, 12, 97, 100, 100, 114, 101, 115, 115, 45, 109, 111, 100, 101, 3, 0, 2, 1, 113, 2, 7, 110, 101, 97, 114, 101, 115, 116, 0, 0, 6, 108, 105, 110, 101, 97, 114, 0, 0, 4, 0, 11, 102, 105, 108, 116, 101, 114, 45, 109, 111, 100, 101, 3, 0, 4, 1, 114, 6, 14, 97, 100, 100, 114, 101, 115, 115, 45, 109, 111, 100, 101, 45, 117, 3, 14, 97, 100, 100, 114, 101, 115, 115, 45, 109, 111, 100, 101, 45, 118, 3, 14, 97, 100, 100, 114, 101, 115, 115, 45, 109, 111, 100, 101, 45, 119, 3, 10, 109, 97, 103, 45, 102, 105, 108, 116, 101, 114, 5, 10, 109, 105, 110, 45, 102, 105, 108, 116, 101, 114, 5, 13, 109, 105, 112, 109, 97, 112, 45, 102, 105, 108, 116, 101, 114, 5, 4, 0, 10, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 3, 0, 6, 1, 114, 1, 4, 117, 108, 105, 100, 1, 4, 0, 6, 104, 97, 110, 100, 108, 101, 3, 0, 8, 1, 64, 1, 4, 100, 101, 115, 99, 7, 0, 9, 4, 0, 6, 99, 114, 101, 97, 116, 101, 1, 10, 1, 64, 1, 6, 104, 97, 110, 100, 108, 101, 9, 1, 0, 4, 0, 7, 100, 101, 115, 116, 114, 111, 121, 1, 11, 4, 1, 31, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 115, 97, 109, 112, 108, 101, 114, 5, 18, 1, 66, 13, 2, 3, 2, 1, 14, 4, 0, 4, 117, 108, 105, 100, 3, 0, 0, 1, 113, 42, 8, 114, 56, 45, 117, 110, 111, 114, 109, 0, 0, 8, 114, 56, 45, 115, 110, 111, 114, 109, 0, 0, 7, 114, 56, 45, 117, 105, 110, 116, 0, 0, 7, 114, 56, 45, 115, 105, 110, 116, 0, 0, 8, 114, 49, 54, 45, 117, 105, 110, 116, 0, 0, 8, 114, 49, 54, 45, 115, 105, 110, 116, 0, 0, 9, 114, 49, 54, 45, 117, 110, 111, 114, 109, 0, 0, 9, 114, 49, 54, 45, 115, 110, 111, 114, 109, 0, 0, 9, 114, 49, 54, 45, 102, 108, 111, 97, 116, 0, 0, 9, 114, 103, 56, 45, 117, 110, 111, 114, 109, 0, 0, 9, 114, 103, 56, 45, 115, 110, 111, 114, 109, 0, 0, 8, 114, 103, 56, 45, 117, 105, 110, 116, 0, 0, 8, 114, 103, 56, 45, 115, 105, 110, 116, 0, 0, 8, 114, 51, 50, 45, 117, 105, 110, 116, 0, 0, 8, 114, 51, 50, 45, 115, 105, 110, 116, 0, 0, 9, 114, 51, 50, 45, 102, 108, 111, 97, 116, 0, 0, 9, 114, 103, 49, 54, 45, 117, 105, 110, 116, 0, 0, 9, 114, 103, 49, 54, 45, 115, 105, 110, 116, 0, 0, 10, 114, 103, 49, 54, 45, 117, 110, 111, 114, 109, 0, 0, 10, 114, 103, 49, 54, 45, 115, 110, 111, 114, 109, 0, 0, 10, 114, 103, 49, 54, 45, 102, 108, 111, 97, 116, 0, 0, 11, 114, 103, 98, 97, 56, 45, 117, 110, 111, 114, 109, 0, 0, 16, 114, 103, 98, 97, 56, 45, 117, 110, 111, 114, 109, 45, 115, 114, 103, 98, 0, 0, 11, 114, 103, 98, 97, 56, 45, 115, 110, 111, 114, 109, 0, 0, 10, 114, 103, 98, 97, 56, 45, 117, 105, 110, 116, 0, 0, 10, 114, 103, 98, 97, 56, 45, 115, 105, 110, 116, 0, 0, 11, 98, 103, 114, 97, 56, 45, 117, 110, 111, 114, 109, 0, 0, 16, 98, 103, 114, 97, 56, 45, 117, 110, 111, 114, 109, 45, 115, 114, 103, 98, 0, 0, 13, 114, 103, 98, 57, 101, 53, 45, 117, 102, 108, 111, 97, 116, 0, 0, 13, 114, 103, 98, 49, 48, 97, 50, 45, 117, 110, 111, 114, 109, 0, 0, 13, 114, 103, 49, 49, 98, 49, 48, 45, 102, 108, 111, 97, 116, 0, 0, 9, 114, 103, 51, 50, 45, 117, 105, 110, 116, 0, 0, 9, 114, 103, 51, 50, 45, 115, 105, 110, 116, 0, 0, 10, 114, 103, 51, 50, 45, 102, 108, 111, 97, 116, 0, 0, 11, 114, 103, 98, 97, 49, 54, 45, 117, 105, 110, 116, 0, 0, 11, 114, 103, 98, 97, 49, 54, 45, 115, 105, 110, 116, 0, 0, 12, 114, 103, 98, 97, 49, 54, 45, 117, 110, 111, 114, 109, 0, 0, 12, 114, 103, 98, 97, 49, 54, 45, 115, 110, 111, 114, 109, 0, 0, 12, 114, 103, 98, 97, 49, 54, 45, 102, 108, 111, 97, 116, 0, 0, 11, 114, 103, 98, 97, 51, 50, 45, 117, 105, 110, 116, 0, 0, 11, 114, 103, 98, 97, 51, 50, 45, 115, 105, 110, 116, 0, 0, 12, 114, 103, 98, 97, 51, 50, 45, 102, 108, 111, 97, 116, 0, 0, 4, 0, 6, 102, 111, 114, 109, 97, 116, 3, 0, 2, 1, 112, 125, 1, 114, 4, 5, 119, 105, 100, 116, 104, 121, 6, 104, 101, 105, 103, 104, 116, 121, 6, 102, 111, 114, 109, 97, 116, 3, 4, 100, 97, 116, 97, 4, 4, 0, 12, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 50, 100, 3, 0, 5, 1, 114, 1, 4, 117, 108, 105, 100, 1, 4, 0, 6, 104, 97, 110, 100, 108, 101, 3, 0, 7, 1, 64, 1, 4, 100, 101, 115, 99, 6, 0, 8, 4, 0, 8, 99, 114, 101, 97, 116, 101, 50, 100, 1, 9, 1, 64, 1, 6, 104, 97, 110, 100, 108, 101, 8, 1, 0, 4, 0, 7, 100, 101, 115, 116, 114, 111, 121, 1, 10, 4, 1, 31, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 116, 101, 120, 116, 117, 114, 101, 5, 19, 2, 3, 0, 14, 6, 104, 97, 110, 100, 108, 101, 2, 3, 0, 13, 6, 104, 97, 110, 100, 108, 101, 1, 66, 14, 2, 3, 2, 1, 14, 4, 0, 4, 117, 108, 105, 100, 3, 0, 0, 2, 3, 2, 1, 20, 4, 0, 14, 116, 101, 120, 116, 117, 114, 101, 45, 104, 97, 110, 100, 108, 101, 3, 0, 2, 2, 3, 2, 1, 21, 4, 0, 14, 115, 97, 109, 112, 108, 101, 114, 45, 104, 97, 110, 100, 108, 101, 3, 0, 4, 1, 114, 5, 14, 98, 97, 115, 101, 45, 99, 111, 108, 111, 114, 45, 109, 97, 112, 3, 10, 110, 111, 114, 109, 97, 108, 45, 109, 97, 112, 3, 22, 109, 101, 116, 97, 108, 108, 105, 99, 45, 114, 111, 117, 103, 104, 110, 101, 115, 115, 45, 109, 97, 112, 3, 7, 115, 97, 109, 112, 108, 101, 114, 5, 11, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 127, 4, 0, 10, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 3, 0, 6, 1, 114, 1, 4, 117, 108, 105, 100, 1, 4, 0, 6, 104, 97, 110, 100, 108, 101, 3, 0, 8, 1, 64, 1, 4, 100, 101, 115, 99, 7, 0, 9, 4, 0, 6, 99, 114, 101, 97, 116, 101, 1, 10, 1, 64, 1, 6, 104, 97, 110, 100, 108, 101, 9, 1, 0, 4, 0, 7, 100, 101, 115, 116, 114, 111, 121, 1, 11, 4, 1, 32, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 109, 97, 116, 101, 114, 105, 97, 108, 5, 22, 2, 3, 0, 5, 4, 109, 97, 116, 52, 2, 3, 0, 5, 4, 113, 117, 97, 116, 2, 3, 0, 5, 4, 118, 101, 99, 52, 2, 3, 0, 5, 5, 117, 118, 101, 99, 50, 2, 3, 0, 5, 5, 117, 118, 101, 99, 51, 2, 3, 0, 5, 5, 117, 118, 101, 99, 52, 2, 3, 0, 5, 5, 105, 118, 101, 99, 50, 2, 3, 0, 5, 5, 105, 118, 101, 99, 51, 2, 3, 0, 5, 5, 105, 118, 101, 99, 52, 2, 3, 0, 5, 8, 100, 117, 114, 97, 116, 105, 111, 110, 2, 3, 0, 5, 5, 101, 109, 112, 116, 121, 2, 3, 0, 10, 6, 104, 97, 110, 100, 108, 101, 2, 3, 0, 15, 6, 104, 97, 110, 100, 108, 101, 1, 66, 143, 1, 2, 3, 2, 1, 6, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 2, 3, 2, 1, 23, 4, 0, 4, 109, 97, 116, 52, 3, 0, 2, 2, 3, 2, 1, 24, 4, 0, 4, 113, 117, 97, 116, 3, 0, 4, 2, 3, 2, 1, 10, 4, 0, 4, 118, 101, 99, 50, 3, 0, 6, 2, 3, 2, 1, 9, 4, 0, 4, 118, 101, 99, 51, 3, 0, 8, 2, 3, 2, 1, 25, 4, 0, 4, 118, 101, 99, 52, 3, 0, 10, 2, 3, 2, 1, 26, 4, 0, 5, 117, 118, 101, 99, 50, 3, 0, 12, 2, 3, 2, 1, 27, 4, 0, 5, 117, 118, 101, 99, 51, 3, 0, 14, 2, 3, 2, 1, 28, 4, 0, 5, 117, 118, 101, 99, 52, 3, 0, 16, 2, 3, 2, 1, 29, 4, 0, 5, 105, 118, 101, 99, 50, 3, 0, 18, 2, 3, 2, 1, 30, 4, 0, 5, 105, 118, 101, 99, 51, 3, 0, 20, 2, 3, 2, 1, 31, 4, 0, 5, 105, 118, 101, 99, 52, 3, 0, 22, 2, 3, 2, 1, 32, 4, 0, 8, 100, 117, 114, 97, 116, 105, 111, 110, 3, 0, 24, 2, 3, 2, 1, 33, 4, 0, 5, 101, 109, 112, 116, 121, 3, 0, 26, 2, 3, 2, 1, 34, 4, 0, 22, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 109, 101, 115, 104, 45, 104, 97, 110, 100, 108, 101, 3, 0, 28, 2, 3, 2, 1, 20, 4, 0, 25, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 116, 101, 120, 116, 117, 114, 101, 45, 104, 97, 110, 100, 108, 101, 3, 0, 30, 2, 3, 2, 1, 21, 4, 0, 25, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 115, 97, 109, 112, 108, 101, 114, 45, 104, 97, 110, 100, 108, 101, 3, 0, 32, 2, 3, 2, 1, 35, 4, 0, 26, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 109, 97, 116, 101, 114, 105, 97, 108, 45, 104, 97, 110, 100, 108, 101, 3, 0, 34, 1, 112, 27, 1, 112, 127, 1, 112, 1, 1, 112, 118, 1, 112, 117, 1, 112, 3, 1, 112, 5, 1, 112, 115, 1, 112, 125, 1, 112, 123, 1, 112, 121, 1, 112, 119, 1, 112, 126, 1, 112, 124, 1, 112, 122, 1, 112, 120, 1, 112, 7, 1, 112, 9, 1, 112, 11, 1, 112, 13, 1, 112, 15, 1, 112, 17, 1, 112, 19, 1, 112, 21, 1, 112, 23, 1, 112, 25, 1, 112, 29, 1, 112, 31, 1, 112, 33, 1, 112, 35, 1, 113, 30, 10, 116, 121, 112, 101, 45, 101, 109, 112, 116, 121, 1, 36, 0, 9, 116, 121, 112, 101, 45, 98, 111, 111, 108, 1, 37, 0, 14, 116, 121, 112, 101, 45, 101, 110, 116, 105, 116, 121, 45, 105, 100, 1, 38, 0, 8, 116, 121, 112, 101, 45, 102, 51, 50, 1, 39, 0, 8, 116, 121, 112, 101, 45, 102, 54, 52, 1, 40, 0, 9, 116, 121, 112, 101, 45, 109, 97, 116, 52, 1, 41, 0, 9, 116, 121, 112, 101, 45, 113, 117, 97, 116, 1, 42, 0, 11, 116, 121, 112, 101, 45, 115, 116, 114, 105, 110, 103, 1, 43, 0, 7, 116, 121, 112, 101, 45, 117, 56, 1, 44, 0, 8, 116, 121, 112, 101, 45, 117, 49, 54, 1, 45, 0, 8, 116, 121, 112, 101, 45, 117, 51, 50, 1, 46, 0, 8, 116, 121, 112, 101, 45, 117, 54, 52, 1, 47, 0, 7, 116, 121, 112, 101, 45, 105, 56, 1, 48, 0, 8, 116, 121, 112, 101, 45, 105, 49, 54, 1, 49, 0, 8, 116, 121, 112, 101, 45, 105, 51, 50, 1, 50, 0, 8, 116, 121, 112, 101, 45, 105, 54, 52, 1, 51, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 50, 1, 52, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 51, 1, 53, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 52, 1, 54, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 50, 1, 55, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 51, 1, 56, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 52, 1, 57, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 50, 1, 58, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 51, 1, 59, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 52, 1, 60, 0, 13, 116, 121, 112, 101, 45, 100, 117, 114, 97, 116, 105, 111, 110, 1, 61, 0, 27, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 109, 101, 115, 104, 45, 104, 97, 110, 100, 108, 101, 1, 62, 0, 30, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 116, 101, 120, 116, 117, 114, 101, 45, 104, 97, 110, 100, 108, 101, 1, 63, 0, 30, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 115, 97, 109, 112, 108, 101, 114, 45, 104, 97, 110, 100, 108, 101, 1, 192, 0, 0, 31, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 109, 97, 116, 101, 114, 105, 97, 108, 45, 104, 97, 110, 100, 108, 101, 1, 193, 0, 0, 4, 0, 9, 118, 101, 99, 45, 118, 97, 108, 117, 101, 3, 0, 66, 1, 107, 27, 1, 107, 127, 1, 107, 1, 1, 107, 118, 1, 107, 117, 1, 107, 3, 1, 107, 5, 1, 107, 115, 1, 107, 125, 1, 107, 123, 1, 107, 121, 1, 107, 119, 1, 107, 126, 1, 107, 124, 1, 107, 122, 1, 107, 120, 1, 107, 7, 1, 107, 9, 1, 107, 11, 1, 107, 13, 1, 107, 15, 1, 107, 17, 1, 107, 19, 1, 107, 21, 1, 107, 23, 1, 107, 25, 1, 107, 29, 1, 107, 31, 1, 107, 33, 1, 107, 35, 1, 113, 30, 10, 116, 121, 112, 101, 45, 101, 109, 112, 116, 121, 1, 196, 0, 0, 9, 116, 121, 112, 101, 45, 98, 111, 111, 108, 1, 197, 0, 0, 14, 116, 121, 112, 101, 45, 101, 110, 116, 105, 116, 121, 45, 105, 100, 1, 198, 0, 0, 8, 116, 121, 112, 101, 45, 102, 51, 50, 1, 199, 0, 0, 8, 116, 121, 112, 101, 45, 102, 54, 52, 1, 200, 0, 0, 9, 116, 121, 112, 101, 45, 109, 97, 116, 52, 1, 201, 0, 0, 9, 116, 121, 112, 101, 45, 113, 117, 97, 116, 1, 202, 0, 0, 11, 116, 121, 112, 101, 45, 115, 116, 114, 105, 110, 103, 1, 203, 0, 0, 7, 116, 121, 112, 101, 45, 117, 56, 1, 204, 0, 0, 8, 116, 121, 112, 101, 45, 117, 49, 54, 1, 205, 0, 0, 8, 116, 121, 112, 101, 45, 117, 51, 50, 1, 206, 0, 0, 8, 116, 121, 112, 101, 45, 117, 54, 52, 1, 207, 0, 0, 7, 116, 121, 112, 101, 45, 105, 56, 1, 208, 0, 0, 8, 116, 121, 112, 101, 45, 105, 49, 54, 1, 209, 0, 0, 8, 116, 121, 112, 101, 45, 105, 51, 50, 1, 210, 0, 0, 8, 116, 121, 112, 101, 45, 105, 54, 52, 1, 211, 0, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 50, 1, 212, 0, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 51, 1, 213, 0, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 52, 1, 214, 0, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 50, 1, 215, 0, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 51, 1, 216, 0, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 52, 1, 217, 0, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 50, 1, 218, 0, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 51, 1, 219, 0, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 52, 1, 220, 0, 0, 13, 116, 121, 112, 101, 45, 100, 117, 114, 97, 116, 105, 111, 110, 1, 221, 0, 0, 27, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 109, 101, 115, 104, 45, 104, 97, 110, 100, 108, 101, 1, 222, 0, 0, 30, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 116, 101, 120, 116, 117, 114, 101, 45, 104, 97, 110, 100, 108, 101, 1, 223, 0, 0, 30, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 115, 97, 109, 112, 108, 101, 114, 45, 104, 97, 110, 100, 108, 101, 1, 224, 0, 0, 31, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 109, 97, 116, 101, 114, 105, 97, 108, 45, 104, 97, 110, 100, 108, 101, 1, 225, 0, 0, 4, 0, 12, 111, 112, 116, 105, 111, 110, 45, 118, 97, 108, 117, 101, 3, 0, 98, 1, 113, 32, 10, 116, 121, 112, 101, 45, 101, 109, 112, 116, 121, 1, 27, 0, 9, 116, 121, 112, 101, 45, 98, 111, 111, 108, 1, 127, 0, 14, 116, 121, 112, 101, 45, 101, 110, 116, 105, 116, 121, 45, 105, 100, 1, 1, 0, 8, 116, 121, 112, 101, 45, 102, 51, 50, 1, 118, 0, 8, 116, 121, 112, 101, 45, 102, 54, 52, 1, 117, 0, 9, 116, 121, 112, 101, 45, 109, 97, 116, 52, 1, 3, 0, 9, 116, 121, 112, 101, 45, 113, 117, 97, 116, 1, 5, 0, 11, 116, 121, 112, 101, 45, 115, 116, 114, 105, 110, 103, 1, 115, 0, 7, 116, 121, 112, 101, 45, 117, 56, 1, 125, 0, 8, 116, 121, 112, 101, 45, 117, 49, 54, 1, 123, 0, 8, 116, 121, 112, 101, 45, 117, 51, 50, 1, 121, 0, 8, 116, 121, 112, 101, 45, 117, 54, 52, 1, 119, 0, 7, 116, 121, 112, 101, 45, 105, 56, 1, 126, 0, 8, 116, 121, 112, 101, 45, 105, 49, 54, 1, 124, 0, 8, 116, 121, 112, 101, 45, 105, 51, 50, 1, 122, 0, 8, 116, 121, 112, 101, 45, 105, 54, 52, 1, 120, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 50, 1, 7, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 51, 1, 9, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 52, 1, 11, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 50, 1, 13, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 51, 1, 15, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 52, 1, 17, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 50, 1, 19, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 51, 1, 21, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 52, 1, 23, 0, 13, 116, 121, 112, 101, 45, 100, 117, 114, 97, 116, 105, 111, 110, 1, 25, 0, 27, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 109, 101, 115, 104, 45, 104, 97, 110, 100, 108, 101, 1, 29, 0, 30, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 116, 101, 120, 116, 117, 114, 101, 45, 104, 97, 110, 100, 108, 101, 1, 31, 0, 30, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 115, 97, 109, 112, 108, 101, 114, 45, 104, 97, 110, 100, 108, 101, 1, 33, 0, 31, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 109, 97, 116, 101, 114, 105, 97, 108, 45, 104, 97, 110, 100, 108, 101, 1, 35, 0, 8, 116, 121, 112, 101, 45, 118, 101, 99, 1, 195, 0, 0, 11, 116, 121, 112, 101, 45, 111, 112, 116, 105, 111, 110, 1, 227, 0, 0, 4, 0, 5, 118, 97, 108, 117, 101, 3, 0, 100, 1, 121, 4, 0, 15, 99, 111, 109, 112, 111, 110, 101, 110, 116, 45, 105, 110, 100, 101, 120, 3, 0, 102, 1, 111, 2, 121, 229, 0, 1, 112, 232, 0, 4, 0, 6, 101, 110, 116, 105, 116, 121, 3, 0, 105, 1, 114, 4, 10, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 46, 8, 105, 110, 99, 108, 117, 100, 101, 115, 46, 8, 101, 120, 99, 108, 117, 100, 101, 115, 46, 7, 99, 104, 97, 110, 103, 101, 100, 46, 4, 0, 11, 113, 117, 101, 114, 121, 45, 98, 117, 105, 108, 100, 3, 0, 107, 1, 109, 3, 5, 102, 114, 97, 109, 101, 5, 115, 112, 97, 119, 110, 7, 100, 101, 115, 112, 97, 119, 110, 4, 0, 11, 113, 117, 101, 114, 121, 45, 101, 118, 101, 110, 116, 3, 0, 109, 1, 64, 1, 2, 105, 100, 115, 0, 206, 0, 4, 0, 9, 103, 101, 116, 45, 105, 110, 100, 101, 120, 1, 111, 1, 64, 1, 5, 105, 110, 100, 101, 120, 121, 0, 203, 0, 4, 0, 6, 103, 101, 116, 45, 105, 100, 1, 112, 1, 107, 229, 0, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 5, 105, 110, 100, 101, 120, 121, 0, 241, 0, 4, 0, 13, 103, 101, 116, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 1, 114, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 7, 105, 110, 100, 105, 99, 101, 115, 46, 0, 234, 0, 4, 0, 14, 103, 101, 116, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 1, 115, 1, 64, 1, 6, 101, 110, 116, 105, 116, 121, 1, 0, 234, 0, 4, 0, 18, 103, 101, 116, 45, 97, 108, 108, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 1, 116, 1, 64, 3, 6, 101, 110, 116, 105, 116, 121, 1, 5, 105, 110, 100, 101, 120, 121, 5, 118, 97, 108, 117, 101, 229, 0, 1, 0, 4, 0, 13, 97, 100, 100, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 1, 117, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 4, 100, 97, 116, 97, 234, 0, 1, 0, 4, 0, 14, 97, 100, 100, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 1, 118, 4, 0, 13, 115, 101, 116, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 1, 117, 4, 0, 14, 115, 101, 116, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 1, 118, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 5, 105, 110, 100, 101, 120, 121, 0, 127, 4, 0, 13, 104, 97, 115, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 1, 119, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 7, 105, 110, 100, 105, 99, 101, 115, 46, 0, 127, 4, 0, 14, 104, 97, 115, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 1, 120, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 5, 105, 110, 100, 101, 120, 121, 1, 0, 4, 0, 16, 114, 101, 109, 111, 118, 101, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 1, 121, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 7, 105, 110, 100, 105, 99, 101, 115, 46, 1, 0, 4, 0, 17, 114, 101, 109, 111, 118, 101, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 1, 122, 1, 64, 2, 1, 113, 236, 0, 1, 116, 238, 0, 0, 119, 4, 0, 5, 113, 117, 101, 114, 121, 1, 123, 1, 112, 229, 0, 1, 111, 2, 1, 252, 0, 1, 112, 253, 0, 1, 64, 1, 1, 113, 119, 0, 254, 0, 4, 0, 10, 113, 117, 101, 114, 121, 45, 101, 118, 97, 108, 1, 127, 4, 1, 26, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 111, 109, 112, 111, 110, 101, 110, 116, 5, 36, 2, 3, 0, 16, 6, 101, 110, 116, 105, 116, 121, 1, 66, 29, 2, 3, 2, 1, 6, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 2, 3, 2, 1, 9, 4, 0, 4, 118, 101, 99, 51, 3, 0, 2, 2, 3, 2, 1, 24, 4, 0, 4, 113, 117, 97, 116, 3, 0, 4, 2, 3, 2, 1, 23, 4, 0, 4, 109, 97, 116, 52, 3, 0, 6, 2, 3, 2, 1, 37, 4, 0, 11, 101, 110, 116, 105, 116, 121, 45, 100, 97, 116, 97, 3, 0, 8, 1, 112, 1, 1, 112, 7, 1, 64, 2, 8, 101, 110, 116, 105, 116, 105, 101, 115, 10, 6, 111, 114, 105, 103, 105, 110, 1, 0, 11, 4, 0, 26, 103, 101, 116, 45, 116, 114, 97, 110, 115, 102, 111, 114, 109, 115, 45, 114, 101, 108, 97, 116, 105, 118, 101, 45, 116, 111, 1, 12, 1, 64, 1, 4, 100, 97, 116, 97, 9, 0, 1, 4, 0, 5, 115, 112, 97, 119, 110, 1, 13, 1, 107, 9, 1, 64, 1, 6, 101, 110, 116, 105, 116, 121, 1, 0, 14, 4, 0, 7, 100, 101, 115, 112, 97, 119, 110, 1, 15, 1, 64, 2, 8, 112, 111, 115, 105, 116, 105, 111, 110, 3, 6, 114, 97, 100, 105, 117, 115, 118, 0, 10, 4, 0, 7, 105, 110, 45, 97, 114, 101, 97, 1, 16, 1, 64, 1, 6, 101, 110, 116, 105, 116, 121, 1, 0, 127, 4, 0, 6, 101, 120, 105, 115, 116, 115, 1, 17, 1, 64, 1, 5, 105, 110, 100, 101, 120, 121, 0, 10, 4, 0, 7, 103, 101, 116, 45, 97, 108, 108, 1, 18, 1, 64, 0, 0, 1, 4, 0, 9, 114, 101, 115, 111, 117, 114, 99, 101, 115, 1, 19, 4, 0, 22, 115, 121, 110, 99, 104, 114, 111, 110, 105, 122, 101, 100, 45, 114, 101, 115, 111, 117, 114, 99, 101, 115, 1, 19, 4, 0, 19, 112, 101, 114, 115, 105, 115, 116, 101, 100, 45, 114, 101, 115, 111, 117, 114, 99, 101, 115, 1, 19, 4, 1, 23, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 101, 110, 116, 105, 116, 121, 5, 38, 1, 66, 9, 2, 3, 2, 1, 6, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 1, 113, 4, 7, 114, 117, 110, 116, 105, 109, 101, 0, 0, 5, 108, 111, 99, 97, 108, 1, 1, 0, 6, 115, 101, 114, 118, 101, 114, 0, 0, 6, 99, 108, 105, 101, 110, 116, 1, 115, 0, 4, 0, 6, 115, 111, 117, 114, 99, 101, 3, 0, 2, 1, 64, 0, 1, 0, 4, 0, 4, 105, 110, 105, 116, 1, 4, 1, 112, 125, 1, 64, 3, 14, 109, 101, 115, 115, 97, 103, 101, 45, 115, 111, 117, 114, 99, 101, 3, 12, 109, 101, 115, 115, 97, 103, 101, 45, 110, 97, 109, 101, 115, 12, 109, 101, 115, 115, 97, 103, 101, 45, 100, 97, 116, 97, 5, 1, 0, 4, 0, 4, 101, 120, 101, 99, 1, 6, 4, 1, 22, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 103, 117, 101, 115, 116, 5, 39, 1, 66, 4, 2, 3, 2, 1, 37, 4, 0, 6, 101, 110, 116, 105, 116, 121, 3, 0, 0, 1, 64, 1, 4, 110, 97, 109, 101, 115, 1, 0, 4, 0, 9, 115, 117, 98, 115, 99, 114, 105, 98, 101, 1, 2, 4, 1, 24, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 109, 101, 115, 115, 97, 103, 101, 5, 40, 1, 66, 5, 2, 3, 2, 1, 6, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 1, 107, 1, 1, 64, 1, 7, 117, 115, 101, 114, 45, 105, 100, 115, 0, 2, 4, 0, 14, 103, 101, 116, 45, 98, 121, 45, 117, 115, 101, 114, 45, 105, 100, 1, 3, 4, 1, 23, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 112, 108, 97, 121, 101, 114, 5, 41, 1, 66, 7, 2, 3, 2, 1, 6, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 1, 113, 6, 27, 99, 108, 105, 101, 110, 116, 45, 98, 114, 111, 97, 100, 99, 97, 115, 116, 45, 117, 110, 114, 101, 108, 105, 97, 98, 108, 101, 0, 0, 25, 99, 108, 105, 101, 110, 116, 45, 98, 114, 111, 97, 100, 99, 97, 115, 116, 45, 114, 101, 108, 105, 97, 98, 108, 101, 0, 0, 26, 99, 108, 105, 101, 110, 116, 45, 116, 97, 114, 103, 101, 116, 101, 100, 45, 117, 110, 114, 101, 108, 105, 97, 98, 108, 101, 1, 115, 0, 24, 99, 108, 105, 101, 110, 116, 45, 116, 97, 114, 103, 101, 116, 101, 100, 45, 114, 101, 108, 105, 97, 98, 108, 101, 1, 115, 0, 15, 108, 111, 99, 97, 108, 45, 98, 114, 111, 97, 100, 99, 97, 115, 116, 1, 127, 0, 5, 108, 111, 99, 97, 108, 1, 1, 0, 4, 0, 6, 116, 97, 114, 103, 101, 116, 3, 0, 2, 1, 112, 125, 1, 64, 3, 9, 116, 97, 114, 103, 101, 116, 45, 105, 100, 3, 4, 110, 97, 109, 101, 115, 4, 100, 97, 116, 97, 4, 1, 0, 4, 0, 4, 115, 101, 110, 100, 1, 5, 4, 1, 31, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 115, 101, 114, 118, 101, 114, 45, 109, 101, 115, 115, 97, 103, 101, 5, 42, 1, 66, 43, 2, 3, 2, 1, 6, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 2, 3, 2, 1, 9, 4, 0, 4, 118, 101, 99, 51, 3, 0, 2, 2, 3, 2, 1, 23, 4, 0, 4, 109, 97, 116, 52, 3, 0, 4, 1, 114, 3, 4, 115, 105, 100, 101, 127, 2, 117, 112, 127, 4, 100, 111, 119, 110, 127, 4, 0, 19, 99, 104, 97, 114, 97, 99, 116, 101, 114, 45, 99, 111, 108, 108, 105, 115, 105, 111, 110, 3, 0, 6, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 5, 102, 111, 114, 99, 101, 3, 1, 0, 4, 0, 9, 97, 100, 100, 45, 102, 111, 114, 99, 101, 1, 8, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 7, 105, 109, 112, 117, 108, 115, 101, 3, 1, 0, 4, 0, 11, 97, 100, 100, 45, 105, 109, 112, 117, 108, 115, 101, 1, 9, 1, 107, 118, 1, 64, 4, 8, 112, 111, 115, 105, 116, 105, 111, 110, 3, 7, 105, 109, 112, 117, 108, 115, 101, 118, 6, 114, 97, 100, 105, 117, 115, 118, 14, 102, 97, 108, 108, 111, 102, 102, 45, 114, 97, 100, 105, 117, 115, 10, 1, 0, 4, 0, 18, 97, 100, 100, 45, 114, 97, 100, 105, 97, 108, 45, 105, 109, 112, 117, 108, 115, 101, 1, 11, 1, 64, 3, 6, 101, 110, 116, 105, 116, 121, 1, 5, 102, 111, 114, 99, 101, 3, 8, 112, 111, 115, 105, 116, 105, 111, 110, 3, 1, 0, 4, 0, 21, 97, 100, 100, 45, 102, 111, 114, 99, 101, 45, 97, 116, 45, 112, 111, 115, 105, 116, 105, 111, 110, 1, 12, 1, 64, 3, 6, 101, 110, 116, 105, 116, 121, 1, 7, 105, 109, 112, 117, 108, 115, 101, 3, 8, 112, 111, 115, 105, 116, 105, 111, 110, 3, 1, 0, 4, 0, 23, 97, 100, 100, 45, 105, 109, 112, 117, 108, 115, 101, 45, 97, 116, 45, 112, 111, 115, 105, 116, 105, 111, 110, 1, 13, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 8, 112, 111, 115, 105, 116, 105, 111, 110, 3, 0, 3, 4, 0, 24, 103, 101, 116, 45, 118, 101, 108, 111, 99, 105, 116, 121, 45, 97, 116, 45, 112, 111, 115, 105, 116, 105, 111, 110, 1, 14, 1, 64, 1, 7, 103, 114, 97, 118, 105, 116, 121, 3, 1, 0, 4, 0, 11, 115, 101, 116, 45, 103, 114, 97, 118, 105, 116, 121, 1, 15, 1, 64, 1, 6, 101, 110, 116, 105, 116, 121, 1, 1, 0, 4, 0, 8, 117, 110, 102, 114, 101, 101, 122, 101, 1, 16, 4, 0, 6, 102, 114, 101, 101, 122, 101, 1, 16, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 8, 118, 101, 108, 111, 99, 105, 116, 121, 118, 1, 0, 4, 0, 11, 115, 116, 97, 114, 116, 45, 109, 111, 116, 111, 114, 1, 17, 4, 0, 10, 115, 116, 111, 112, 45, 109, 111, 116, 111, 114, 1, 16, 1, 64, 4, 6, 97, 99, 116, 111, 114, 48, 1, 10, 116, 114, 97, 110, 115, 102, 111, 114, 109, 48, 5, 6, 97, 99, 116, 111, 114, 49, 1, 10, 116, 114, 97, 110, 115, 102, 111, 114, 109, 49, 5, 1, 0, 4, 0, 21, 99, 114, 101, 97, 116, 101, 45, 114, 101, 118, 111, 108, 117, 116, 101, 45, 106, 111, 105, 110, 116, 1, 18, 1, 111, 2, 1, 118, 1, 107, 19, 1, 64, 2, 6, 111, 114, 105, 103, 105, 110, 3, 9, 100, 105, 114, 101, 99, 116, 105, 111, 110, 3, 0, 20, 4, 0, 13, 114, 97, 121, 99, 97, 115, 116, 45, 102, 105, 114, 115, 116, 1, 21, 1, 112, 19, 1, 64, 2, 6, 111, 114, 105, 103, 105, 110, 3, 9, 100, 105, 114, 101, 99, 116, 105, 111, 110, 3, 0, 22, 4, 0, 7, 114, 97, 121, 99, 97, 115, 116, 1, 23, 1, 64, 4, 6, 101, 110, 116, 105, 116, 121, 1, 12, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 3, 8, 109, 105, 110, 45, 100, 105, 115, 116, 118, 12, 101, 108, 97, 112, 115, 101, 100, 45, 116, 105, 109, 101, 118, 0, 7, 4, 0, 14, 109, 111, 118, 101, 45, 99, 104, 97, 114, 97, 99, 116, 101, 114, 1, 24, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 8, 112, 111, 115, 105, 116, 105, 111, 110, 3, 1, 0, 4, 0, 22, 115, 101, 116, 45, 99, 104, 97, 114, 97, 99, 116, 101, 114, 45, 112, 111, 115, 105, 116, 105, 111, 110, 1, 25, 4, 0, 27, 115, 101, 116, 45, 99, 104, 97, 114, 97, 99, 116, 101, 114, 45, 102, 111, 111, 116, 45, 112, 111, 115, 105, 116, 105, 111, 110, 1, 25, 4, 1, 31, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 115, 101, 114, 118, 101, 114, 45, 112, 104, 121, 115, 105, 99, 115, 5, 43, 1, 65, 67, 1, 66, 32, 1, 114, 2, 3, 105, 100, 48, 119, 3, 105, 100, 49, 119, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 1, 114, 2, 1, 120, 118, 1, 121, 118, 4, 0, 4, 118, 101, 99, 50, 3, 0, 2, 1, 114, 3, 1, 120, 118, 1, 121, 118, 1, 122, 118, 4, 0, 4, 118, 101, 99, 51, 3, 0, 4, 1, 114, 4, 1, 120, 118, 1, 121, 118, 1, 122, 118, 1, 119, 118, 4, 0, 4, 118, 101, 99, 52, 3, 0, 6, 1, 114, 2, 1, 120, 121, 1, 121, 121, 4, 0, 5, 117, 118, 101, 99, 50, 3, 0, 8, 1, 114, 3, 1, 120, 121, 1, 121, 121, 1, 122, 121, 4, 0, 5, 117, 118, 101, 99, 51, 3, 0, 10, 1, 114, 4, 1, 120, 121, 1, 121, 121, 1, 122, 121, 1, 119, 121, 4, 0, 5, 117, 118, 101, 99, 52, 3, 0, 12, 1, 114, 2, 1, 120, 122, 1, 121, 122, 4, 0, 5, 105, 118, 101, 99, 50, 3, 0, 14, 1, 114, 3, 1, 120, 122, 1, 121, 122, 1, 122, 122, 4, 0, 5, 105, 118, 101, 99, 51, 3, 0, 16, 1, 114, 4, 1, 120, 122, 1, 121, 122, 1, 122, 122, 1, 119, 122, 4, 0, 5, 105, 118, 101, 99, 52, 3, 0, 18, 1, 114, 4, 1, 120, 118, 1, 121, 118, 1, 122, 118, 1, 119, 118, 4, 0, 4, 113, 117, 97, 116, 3, 0, 20, 1, 114, 4, 1, 120, 7, 1, 121, 7, 1, 122, 7, 1, 119, 7, 4, 0, 4, 109, 97, 116, 52, 3, 0, 22, 1, 114, 2, 7, 115, 101, 99, 111, 110, 100, 115, 119, 11, 110, 97, 110, 111, 115, 101, 99, 111, 110, 100, 115, 121, 4, 0, 8, 100, 117, 114, 97, 116, 105, 111, 110, 3, 0, 24, 1, 114, 2, 6, 111, 114, 105, 103, 105, 110, 5, 3, 100, 105, 114, 5, 4, 0, 3, 114, 97, 121, 3, 0, 26, 1, 114, 1, 5, 100, 117, 109, 109, 121, 125, 4, 0, 5, 101, 109, 112, 116, 121, 3, 0, 28, 1, 111, 2, 119, 119, 4, 0, 4, 117, 108, 105, 100, 3, 0, 30, 3, 1, 22, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 116, 121, 112, 101, 115, 5, 0, 2, 3, 0, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 1, 66, 7, 2, 3, 2, 1, 1, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 1, 113, 1, 11, 105, 110, 118, 97, 108, 105, 100, 45, 117, 114, 108, 1, 115, 0, 4, 0, 9, 117, 114, 108, 45, 101, 114, 114, 111, 114, 3, 0, 2, 1, 106, 1, 115, 1, 3, 1, 64, 2, 10, 112, 97, 99, 107, 97, 103, 101, 45, 105, 100, 1, 4, 112, 97, 116, 104, 115, 0, 4, 4, 0, 3, 117, 114, 108, 1, 5, 3, 1, 22, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 97, 115, 115, 101, 116, 5, 2, 2, 3, 0, 0, 4, 118, 101, 99, 50, 2, 3, 0, 0, 4, 118, 101, 99, 51, 2, 3, 0, 0, 4, 117, 108, 105, 100, 1, 66, 18, 2, 3, 2, 1, 3, 4, 0, 4, 118, 101, 99, 50, 3, 0, 0, 2, 3, 2, 1, 4, 4, 0, 4, 118, 101, 99, 51, 3, 0, 2, 2, 3, 2, 1, 5, 4, 0, 4, 117, 108, 105, 100, 3, 0, 4, 1, 114, 4, 8, 112, 111, 115, 105, 116, 105, 111, 110, 3, 6, 110, 111, 114, 109, 97, 108, 3, 7, 116, 97, 110, 103, 101, 110, 116, 3, 9, 116, 101, 120, 99, 111, 111, 114, 100, 48, 1, 4, 0, 6, 118, 101, 114, 116, 101, 120, 3, 0, 6, 1, 112, 7, 1, 112, 121, 1, 114, 2, 8, 118, 101, 114, 116, 105, 99, 101, 115, 8, 7, 105, 110, 100, 105, 99, 101, 115, 9, 4, 0, 10, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 3, 0, 10, 1, 114, 1, 4, 117, 108, 105, 100, 5, 4, 0, 6, 104, 97, 110, 100, 108, 101, 3, 0, 12, 1, 64, 1, 4, 100, 101, 115, 99, 11, 0, 13, 4, 0, 6, 99, 114, 101, 97, 116, 101, 1, 14, 1, 64, 1, 6, 104, 97, 110, 100, 108, 101, 13, 1, 0, 4, 0, 7, 100, 101, 115, 116, 114, 111, 121, 1, 15, 3, 1, 28, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 109, 101, 115, 104, 5, 6, 1, 66, 13, 2, 3, 2, 1, 5, 4, 0, 4, 117, 108, 105, 100, 3, 0, 0, 1, 113, 42, 8, 114, 56, 45, 117, 110, 111, 114, 109, 0, 0, 8, 114, 56, 45, 115, 110, 111, 114, 109, 0, 0, 7, 114, 56, 45, 117, 105, 110, 116, 0, 0, 7, 114, 56, 45, 115, 105, 110, 116, 0, 0, 8, 114, 49, 54, 45, 117, 105, 110, 116, 0, 0, 8, 114, 49, 54, 45, 115, 105, 110, 116, 0, 0, 9, 114, 49, 54, 45, 117, 110, 111, 114, 109, 0, 0, 9, 114, 49, 54, 45, 115, 110, 111, 114, 109, 0, 0, 9, 114, 49, 54, 45, 102, 108, 111, 97, 116, 0, 0, 9, 114, 103, 56, 45, 117, 110, 111, 114, 109, 0, 0, 9, 114, 103, 56, 45, 115, 110, 111, 114, 109, 0, 0, 8, 114, 103, 56, 45, 117, 105, 110, 116, 0, 0, 8, 114, 103, 56, 45, 115, 105, 110, 116, 0, 0, 8, 114, 51, 50, 45, 117, 105, 110, 116, 0, 0, 8, 114, 51, 50, 45, 115, 105, 110, 116, 0, 0, 9, 114, 51, 50, 45, 102, 108, 111, 97, 116, 0, 0, 9, 114, 103, 49, 54, 45, 117, 105, 110, 116, 0, 0, 9, 114, 103, 49, 54, 45, 115, 105, 110, 116, 0, 0, 10, 114, 103, 49, 54, 45, 117, 110, 111, 114, 109, 0, 0, 10, 114, 103, 49, 54, 45, 115, 110, 111, 114, 109, 0, 0, 10, 114, 103, 49, 54, 45, 102, 108, 111, 97, 116, 0, 0, 11, 114, 103, 98, 97, 56, 45, 117, 110, 111, 114, 109, 0, 0, 16, 114, 103, 98, 97, 56, 45, 117, 110, 111, 114, 109, 45, 115, 114, 103, 98, 0, 0, 11, 114, 103, 98, 97, 56, 45, 115, 110, 111, 114, 109, 0, 0, 10, 114, 103, 98, 97, 56, 45, 117, 105, 110, 116, 0, 0, 10, 114, 103, 98, 97, 56, 45, 115, 105, 110, 116, 0, 0, 11, 98, 103, 114, 97, 56, 45, 117, 110, 111, 114, 109, 0, 0, 16, 98, 103, 114, 97, 56, 45, 117, 110, 111, 114, 109, 45, 115, 114, 103, 98, 0, 0, 13, 114, 103, 98, 57, 101, 53, 45, 117, 102, 108, 111, 97, 116, 0, 0, 13, 114, 103, 98, 49, 48, 97, 50, 45, 117, 110, 111, 114, 109, 0, 0, 13, 114, 103, 49, 49, 98, 49, 48, 45, 102, 108, 111, 97, 116, 0, 0, 9, 114, 103, 51, 50, 45, 117, 105, 110, 116, 0, 0, 9, 114, 103, 51, 50, 45, 115, 105, 110, 116, 0, 0, 10, 114, 103, 51, 50, 45, 102, 108, 111, 97, 116, 0, 0, 11, 114, 103, 98, 97, 49, 54, 45, 117, 105, 110, 116, 0, 0, 11, 114, 103, 98, 97, 49, 54, 45, 115, 105, 110, 116, 0, 0, 12, 114, 103, 98, 97, 49, 54, 45, 117, 110, 111, 114, 109, 0, 0, 12, 114, 103, 98, 97, 49, 54, 45, 115, 110, 111, 114, 109, 0, 0, 12, 114, 103, 98, 97, 49, 54, 45, 102, 108, 111, 97, 116, 0, 0, 11, 114, 103, 98, 97, 51, 50, 45, 117, 105, 110, 116, 0, 0, 11, 114, 103, 98, 97, 51, 50, 45, 115, 105, 110, 116, 0, 0, 12, 114, 103, 98, 97, 51, 50, 45, 102, 108, 111, 97, 116, 0, 0, 4, 0, 6, 102, 111, 114, 109, 97, 116, 3, 0, 2, 1, 112, 125, 1, 114, 4, 5, 119, 105, 100, 116, 104, 121, 6, 104, 101, 105, 103, 104, 116, 121, 6, 102, 111, 114, 109, 97, 116, 3, 4, 100, 97, 116, 97, 4, 4, 0, 12, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 50, 100, 3, 0, 5, 1, 114, 1, 4, 117, 108, 105, 100, 1, 4, 0, 6, 104, 97, 110, 100, 108, 101, 3, 0, 7, 1, 64, 1, 4, 100, 101, 115, 99, 6, 0, 8, 4, 0, 8, 99, 114, 101, 97, 116, 101, 50, 100, 1, 9, 1, 64, 1, 6, 104, 97, 110, 100, 108, 101, 8, 1, 0, 4, 0, 7, 100, 101, 115, 116, 114, 111, 121, 1, 10, 3, 1, 31, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 116, 101, 120, 116, 117, 114, 101, 5, 7, 1, 66, 14, 2, 3, 2, 1, 5, 4, 0, 4, 117, 108, 105, 100, 3, 0, 0, 1, 113, 3, 13, 99, 108, 97, 109, 112, 45, 116, 111, 45, 101, 100, 103, 101, 0, 0, 6, 114, 101, 112, 101, 97, 116, 0, 0, 13, 109, 105, 114, 114, 111, 114, 45, 114, 101, 112, 101, 97, 116, 0, 0, 4, 0, 12, 97, 100, 100, 114, 101, 115, 115, 45, 109, 111, 100, 101, 3, 0, 2, 1, 113, 2, 7, 110, 101, 97, 114, 101, 115, 116, 0, 0, 6, 108, 105, 110, 101, 97, 114, 0, 0, 4, 0, 11, 102, 105, 108, 116, 101, 114, 45, 109, 111, 100, 101, 3, 0, 4, 1, 114, 6, 14, 97, 100, 100, 114, 101, 115, 115, 45, 109, 111, 100, 101, 45, 117, 3, 14, 97, 100, 100, 114, 101, 115, 115, 45, 109, 111, 100, 101, 45, 118, 3, 14, 97, 100, 100, 114, 101, 115, 115, 45, 109, 111, 100, 101, 45, 119, 3, 10, 109, 97, 103, 45, 102, 105, 108, 116, 101, 114, 5, 10, 109, 105, 110, 45, 102, 105, 108, 116, 101, 114, 5, 13, 109, 105, 112, 109, 97, 112, 45, 102, 105, 108, 116, 101, 114, 5, 4, 0, 10, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 3, 0, 6, 1, 114, 1, 4, 117, 108, 105, 100, 1, 4, 0, 6, 104, 97, 110, 100, 108, 101, 3, 0, 8, 1, 64, 1, 4, 100, 101, 115, 99, 7, 0, 9, 4, 0, 6, 99, 114, 101, 97, 116, 101, 1, 10, 1, 64, 1, 6, 104, 97, 110, 100, 108, 101, 9, 1, 0, 4, 0, 7, 100, 101, 115, 116, 114, 111, 121, 1, 11, 3, 1, 31, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 115, 97, 109, 112, 108, 101, 114, 5, 8, 2, 3, 0, 3, 6, 104, 97, 110, 100, 108, 101, 2, 3, 0, 4, 6, 104, 97, 110, 100, 108, 101, 1, 66, 14, 2, 3, 2, 1, 5, 4, 0, 4, 117, 108, 105, 100, 3, 0, 0, 2, 3, 2, 1, 9, 4, 0, 14, 116, 101, 120, 116, 117, 114, 101, 45, 104, 97, 110, 100, 108, 101, 3, 0, 2, 2, 3, 2, 1, 10, 4, 0, 14, 115, 97, 109, 112, 108, 101, 114, 45, 104, 97, 110, 100, 108, 101, 3, 0, 4, 1, 114, 5, 14, 98, 97, 115, 101, 45, 99, 111, 108, 111, 114, 45, 109, 97, 112, 3, 10, 110, 111, 114, 109, 97, 108, 45, 109, 97, 112, 3, 22, 109, 101, 116, 97, 108, 108, 105, 99, 45, 114, 111, 117, 103, 104, 110, 101, 115, 115, 45, 109, 97, 112, 3, 7, 115, 97, 109, 112, 108, 101, 114, 5, 11, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 127, 4, 0, 10, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 3, 0, 6, 1, 114, 1, 4, 117, 108, 105, 100, 1, 4, 0, 6, 104, 97, 110, 100, 108, 101, 3, 0, 8, 1, 64, 1, 4, 100, 101, 115, 99, 7, 0, 9, 4, 0, 6, 99, 114, 101, 97, 116, 101, 1, 10, 1, 64, 1, 6, 104, 97, 110, 100, 108, 101, 9, 1, 0, 4, 0, 7, 100, 101, 115, 116, 114, 111, 121, 1, 11, 3, 1, 32, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 109, 97, 116, 101, 114, 105, 97, 108, 5, 11, 2, 3, 0, 0, 4, 109, 97, 116, 52, 2, 3, 0, 0, 4, 113, 117, 97, 116, 2, 3, 0, 0, 4, 118, 101, 99, 52, 2, 3, 0, 0, 5, 117, 118, 101, 99, 50, 2, 3, 0, 0, 5, 117, 118, 101, 99, 51, 2, 3, 0, 0, 5, 117, 118, 101, 99, 52, 2, 3, 0, 0, 5, 105, 118, 101, 99, 50, 2, 3, 0, 0, 5, 105, 118, 101, 99, 51, 2, 3, 0, 0, 5, 105, 118, 101, 99, 52, 2, 3, 0, 0, 8, 100, 117, 114, 97, 116, 105, 111, 110, 2, 3, 0, 0, 5, 101, 109, 112, 116, 121, 2, 3, 0, 2, 6, 104, 97, 110, 100, 108, 101, 2, 3, 0, 5, 6, 104, 97, 110, 100, 108, 101, 1, 66, 143, 1, 2, 3, 2, 1, 1, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 2, 3, 2, 1, 12, 4, 0, 4, 109, 97, 116, 52, 3, 0, 2, 2, 3, 2, 1, 13, 4, 0, 4, 113, 117, 97, 116, 3, 0, 4, 2, 3, 2, 1, 3, 4, 0, 4, 118, 101, 99, 50, 3, 0, 6, 2, 3, 2, 1, 4, 4, 0, 4, 118, 101, 99, 51, 3, 0, 8, 2, 3, 2, 1, 14, 4, 0, 4, 118, 101, 99, 52, 3, 0, 10, 2, 3, 2, 1, 15, 4, 0, 5, 117, 118, 101, 99, 50, 3, 0, 12, 2, 3, 2, 1, 16, 4, 0, 5, 117, 118, 101, 99, 51, 3, 0, 14, 2, 3, 2, 1, 17, 4, 0, 5, 117, 118, 101, 99, 52, 3, 0, 16, 2, 3, 2, 1, 18, 4, 0, 5, 105, 118, 101, 99, 50, 3, 0, 18, 2, 3, 2, 1, 19, 4, 0, 5, 105, 118, 101, 99, 51, 3, 0, 20, 2, 3, 2, 1, 20, 4, 0, 5, 105, 118, 101, 99, 52, 3, 0, 22, 2, 3, 2, 1, 21, 4, 0, 8, 100, 117, 114, 97, 116, 105, 111, 110, 3, 0, 24, 2, 3, 2, 1, 22, 4, 0, 5, 101, 109, 112, 116, 121, 3, 0, 26, 2, 3, 2, 1, 23, 4, 0, 22, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 109, 101, 115, 104, 45, 104, 97, 110, 100, 108, 101, 3, 0, 28, 2, 3, 2, 1, 9, 4, 0, 25, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 116, 101, 120, 116, 117, 114, 101, 45, 104, 97, 110, 100, 108, 101, 3, 0, 30, 2, 3, 2, 1, 10, 4, 0, 25, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 115, 97, 109, 112, 108, 101, 114, 45, 104, 97, 110, 100, 108, 101, 3, 0, 32, 2, 3, 2, 1, 24, 4, 0, 26, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 109, 97, 116, 101, 114, 105, 97, 108, 45, 104, 97, 110, 100, 108, 101, 3, 0, 34, 1, 112, 27, 1, 112, 127, 1, 112, 1, 1, 112, 118, 1, 112, 117, 1, 112, 3, 1, 112, 5, 1, 112, 115, 1, 112, 125, 1, 112, 123, 1, 112, 121, 1, 112, 119, 1, 112, 126, 1, 112, 124, 1, 112, 122, 1, 112, 120, 1, 112, 7, 1, 112, 9, 1, 112, 11, 1, 112, 13, 1, 112, 15, 1, 112, 17, 1, 112, 19, 1, 112, 21, 1, 112, 23, 1, 112, 25, 1, 112, 29, 1, 112, 31, 1, 112, 33, 1, 112, 35, 1, 113, 30, 10, 116, 121, 112, 101, 45, 101, 109, 112, 116, 121, 1, 36, 0, 9, 116, 121, 112, 101, 45, 98, 111, 111, 108, 1, 37, 0, 14, 116, 121, 112, 101, 45, 101, 110, 116, 105, 116, 121, 45, 105, 100, 1, 38, 0, 8, 116, 121, 112, 101, 45, 102, 51, 50, 1, 39, 0, 8, 116, 121, 112, 101, 45, 102, 54, 52, 1, 40, 0, 9, 116, 121, 112, 101, 45, 109, 97, 116, 52, 1, 41, 0, 9, 116, 121, 112, 101, 45, 113, 117, 97, 116, 1, 42, 0, 11, 116, 121, 112, 101, 45, 115, 116, 114, 105, 110, 103, 1, 43, 0, 7, 116, 121, 112, 101, 45, 117, 56, 1, 44, 0, 8, 116, 121, 112, 101, 45, 117, 49, 54, 1, 45, 0, 8, 116, 121, 112, 101, 45, 117, 51, 50, 1, 46, 0, 8, 116, 121, 112, 101, 45, 117, 54, 52, 1, 47, 0, 7, 116, 121, 112, 101, 45, 105, 56, 1, 48, 0, 8, 116, 121, 112, 101, 45, 105, 49, 54, 1, 49, 0, 8, 116, 121, 112, 101, 45, 105, 51, 50, 1, 50, 0, 8, 116, 121, 112, 101, 45, 105, 54, 52, 1, 51, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 50, 1, 52, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 51, 1, 53, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 52, 1, 54, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 50, 1, 55, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 51, 1, 56, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 52, 1, 57, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 50, 1, 58, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 51, 1, 59, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 52, 1, 60, 0, 13, 116, 121, 112, 101, 45, 100, 117, 114, 97, 116, 105, 111, 110, 1, 61, 0, 27, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 109, 101, 115, 104, 45, 104, 97, 110, 100, 108, 101, 1, 62, 0, 30, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 116, 101, 120, 116, 117, 114, 101, 45, 104, 97, 110, 100, 108, 101, 1, 63, 0, 30, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 115, 97, 109, 112, 108, 101, 114, 45, 104, 97, 110, 100, 108, 101, 1, 192, 0, 0, 31, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 109, 97, 116, 101, 114, 105, 97, 108, 45, 104, 97, 110, 100, 108, 101, 1, 193, 0, 0, 4, 0, 9, 118, 101, 99, 45, 118, 97, 108, 117, 101, 3, 0, 66, 1, 107, 27, 1, 107, 127, 1, 107, 1, 1, 107, 118, 1, 107, 117, 1, 107, 3, 1, 107, 5, 1, 107, 115, 1, 107, 125, 1, 107, 123, 1, 107, 121, 1, 107, 119, 1, 107, 126, 1, 107, 124, 1, 107, 122, 1, 107, 120, 1, 107, 7, 1, 107, 9, 1, 107, 11, 1, 107, 13, 1, 107, 15, 1, 107, 17, 1, 107, 19, 1, 107, 21, 1, 107, 23, 1, 107, 25, 1, 107, 29, 1, 107, 31, 1, 107, 33, 1, 107, 35, 1, 113, 30, 10, 116, 121, 112, 101, 45, 101, 109, 112, 116, 121, 1, 196, 0, 0, 9, 116, 121, 112, 101, 45, 98, 111, 111, 108, 1, 197, 0, 0, 14, 116, 121, 112, 101, 45, 101, 110, 116, 105, 116, 121, 45, 105, 100, 1, 198, 0, 0, 8, 116, 121, 112, 101, 45, 102, 51, 50, 1, 199, 0, 0, 8, 116, 121, 112, 101, 45, 102, 54, 52, 1, 200, 0, 0, 9, 116, 121, 112, 101, 45, 109, 97, 116, 52, 1, 201, 0, 0, 9, 116, 121, 112, 101, 45, 113, 117, 97, 116, 1, 202, 0, 0, 11, 116, 121, 112, 101, 45, 115, 116, 114, 105, 110, 103, 1, 203, 0, 0, 7, 116, 121, 112, 101, 45, 117, 56, 1, 204, 0, 0, 8, 116, 121, 112, 101, 45, 117, 49, 54, 1, 205, 0, 0, 8, 116, 121, 112, 101, 45, 117, 51, 50, 1, 206, 0, 0, 8, 116, 121, 112, 101, 45, 117, 54, 52, 1, 207, 0, 0, 7, 116, 121, 112, 101, 45, 105, 56, 1, 208, 0, 0, 8, 116, 121, 112, 101, 45, 105, 49, 54, 1, 209, 0, 0, 8, 116, 121, 112, 101, 45, 105, 51, 50, 1, 210, 0, 0, 8, 116, 121, 112, 101, 45, 105, 54, 52, 1, 211, 0, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 50, 1, 212, 0, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 51, 1, 213, 0, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 52, 1, 214, 0, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 50, 1, 215, 0, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 51, 1, 216, 0, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 52, 1, 217, 0, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 50, 1, 218, 0, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 51, 1, 219, 0, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 52, 1, 220, 0, 0, 13, 116, 121, 112, 101, 45, 100, 117, 114, 97, 116, 105, 111, 110, 1, 221, 0, 0, 27, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 109, 101, 115, 104, 45, 104, 97, 110, 100, 108, 101, 1, 222, 0, 0, 30, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 116, 101, 120, 116, 117, 114, 101, 45, 104, 97, 110, 100, 108, 101, 1, 223, 0, 0, 30, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 115, 97, 109, 112, 108, 101, 114, 45, 104, 97, 110, 100, 108, 101, 1, 224, 0, 0, 31, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 109, 97, 116, 101, 114, 105, 97, 108, 45, 104, 97, 110, 100, 108, 101, 1, 225, 0, 0, 4, 0, 12, 111, 112, 116, 105, 111, 110, 45, 118, 97, 108, 117, 101, 3, 0, 98, 1, 113, 32, 10, 116, 121, 112, 101, 45, 101, 109, 112, 116, 121, 1, 27, 0, 9, 116, 121, 112, 101, 45, 98, 111, 111, 108, 1, 127, 0, 14, 116, 121, 112, 101, 45, 101, 110, 116, 105, 116, 121, 45, 105, 100, 1, 1, 0, 8, 116, 121, 112, 101, 45, 102, 51, 50, 1, 118, 0, 8, 116, 121, 112, 101, 45, 102, 54, 52, 1, 117, 0, 9, 116, 121, 112, 101, 45, 109, 97, 116, 52, 1, 3, 0, 9, 116, 121, 112, 101, 45, 113, 117, 97, 116, 1, 5, 0, 11, 116, 121, 112, 101, 45, 115, 116, 114, 105, 110, 103, 1, 115, 0, 7, 116, 121, 112, 101, 45, 117, 56, 1, 125, 0, 8, 116, 121, 112, 101, 45, 117, 49, 54, 1, 123, 0, 8, 116, 121, 112, 101, 45, 117, 51, 50, 1, 121, 0, 8, 116, 121, 112, 101, 45, 117, 54, 52, 1, 119, 0, 7, 116, 121, 112, 101, 45, 105, 56, 1, 126, 0, 8, 116, 121, 112, 101, 45, 105, 49, 54, 1, 124, 0, 8, 116, 121, 112, 101, 45, 105, 51, 50, 1, 122, 0, 8, 116, 121, 112, 101, 45, 105, 54, 52, 1, 120, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 50, 1, 7, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 51, 1, 9, 0, 9, 116, 121, 112, 101, 45, 118, 101, 99, 52, 1, 11, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 50, 1, 13, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 51, 1, 15, 0, 10, 116, 121, 112, 101, 45, 117, 118, 101, 99, 52, 1, 17, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 50, 1, 19, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 51, 1, 21, 0, 10, 116, 121, 112, 101, 45, 105, 118, 101, 99, 52, 1, 23, 0, 13, 116, 121, 112, 101, 45, 100, 117, 114, 97, 116, 105, 111, 110, 1, 25, 0, 27, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 109, 101, 115, 104, 45, 104, 97, 110, 100, 108, 101, 1, 29, 0, 30, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 116, 101, 120, 116, 117, 114, 101, 45, 104, 97, 110, 100, 108, 101, 1, 31, 0, 30, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 115, 97, 109, 112, 108, 101, 114, 45, 104, 97, 110, 100, 108, 101, 1, 33, 0, 31, 116, 121, 112, 101, 45, 112, 114, 111, 99, 101, 100, 117, 114, 97, 108, 45, 109, 97, 116, 101, 114, 105, 97, 108, 45, 104, 97, 110, 100, 108, 101, 1, 35, 0, 8, 116, 121, 112, 101, 45, 118, 101, 99, 1, 195, 0, 0, 11, 116, 121, 112, 101, 45, 111, 112, 116, 105, 111, 110, 1, 227, 0, 0, 4, 0, 5, 118, 97, 108, 117, 101, 3, 0, 100, 1, 121, 4, 0, 15, 99, 111, 109, 112, 111, 110, 101, 110, 116, 45, 105, 110, 100, 101, 120, 3, 0, 102, 1, 111, 2, 121, 229, 0, 1, 112, 232, 0, 4, 0, 6, 101, 110, 116, 105, 116, 121, 3, 0, 105, 1, 114, 4, 10, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 46, 8, 105, 110, 99, 108, 117, 100, 101, 115, 46, 8, 101, 120, 99, 108, 117, 100, 101, 115, 46, 7, 99, 104, 97, 110, 103, 101, 100, 46, 4, 0, 11, 113, 117, 101, 114, 121, 45, 98, 117, 105, 108, 100, 3, 0, 107, 1, 109, 3, 5, 102, 114, 97, 109, 101, 5, 115, 112, 97, 119, 110, 7, 100, 101, 115, 112, 97, 119, 110, 4, 0, 11, 113, 117, 101, 114, 121, 45, 101, 118, 101, 110, 116, 3, 0, 109, 1, 64, 1, 2, 105, 100, 115, 0, 206, 0, 4, 0, 9, 103, 101, 116, 45, 105, 110, 100, 101, 120, 1, 111, 1, 64, 1, 5, 105, 110, 100, 101, 120, 121, 0, 203, 0, 4, 0, 6, 103, 101, 116, 45, 105, 100, 1, 112, 1, 107, 229, 0, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 5, 105, 110, 100, 101, 120, 121, 0, 241, 0, 4, 0, 13, 103, 101, 116, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 1, 114, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 7, 105, 110, 100, 105, 99, 101, 115, 46, 0, 234, 0, 4, 0, 14, 103, 101, 116, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 1, 115, 1, 64, 1, 6, 101, 110, 116, 105, 116, 121, 1, 0, 234, 0, 4, 0, 18, 103, 101, 116, 45, 97, 108, 108, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 1, 116, 1, 64, 3, 6, 101, 110, 116, 105, 116, 121, 1, 5, 105, 110, 100, 101, 120, 121, 5, 118, 97, 108, 117, 101, 229, 0, 1, 0, 4, 0, 13, 97, 100, 100, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 1, 117, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 4, 100, 97, 116, 97, 234, 0, 1, 0, 4, 0, 14, 97, 100, 100, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 1, 118, 4, 0, 13, 115, 101, 116, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 1, 117, 4, 0, 14, 115, 101, 116, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 1, 118, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 5, 105, 110, 100, 101, 120, 121, 0, 127, 4, 0, 13, 104, 97, 115, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 1, 119, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 7, 105, 110, 100, 105, 99, 101, 115, 46, 0, 127, 4, 0, 14, 104, 97, 115, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 1, 120, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 5, 105, 110, 100, 101, 120, 121, 1, 0, 4, 0, 16, 114, 101, 109, 111, 118, 101, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 1, 121, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 7, 105, 110, 100, 105, 99, 101, 115, 46, 1, 0, 4, 0, 17, 114, 101, 109, 111, 118, 101, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 1, 122, 1, 64, 2, 1, 113, 236, 0, 1, 116, 238, 0, 0, 119, 4, 0, 5, 113, 117, 101, 114, 121, 1, 123, 1, 112, 229, 0, 1, 111, 2, 1, 252, 0, 1, 112, 253, 0, 1, 64, 1, 1, 113, 119, 0, 254, 0, 4, 0, 10, 113, 117, 101, 114, 121, 45, 101, 118, 97, 108, 1, 127, 3, 1, 26, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 111, 109, 112, 111, 110, 101, 110, 116, 5, 25, 2, 3, 0, 6, 6, 101, 110, 116, 105, 116, 121, 1, 66, 29, 2, 3, 2, 1, 1, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 2, 3, 2, 1, 4, 4, 0, 4, 118, 101, 99, 51, 3, 0, 2, 2, 3, 2, 1, 13, 4, 0, 4, 113, 117, 97, 116, 3, 0, 4, 2, 3, 2, 1, 12, 4, 0, 4, 109, 97, 116, 52, 3, 0, 6, 2, 3, 2, 1, 26, 4, 0, 11, 101, 110, 116, 105, 116, 121, 45, 100, 97, 116, 97, 3, 0, 8, 1, 112, 1, 1, 112, 7, 1, 64, 2, 8, 101, 110, 116, 105, 116, 105, 101, 115, 10, 6, 111, 114, 105, 103, 105, 110, 1, 0, 11, 4, 0, 26, 103, 101, 116, 45, 116, 114, 97, 110, 115, 102, 111, 114, 109, 115, 45, 114, 101, 108, 97, 116, 105, 118, 101, 45, 116, 111, 1, 12, 1, 64, 1, 4, 100, 97, 116, 97, 9, 0, 1, 4, 0, 5, 115, 112, 97, 119, 110, 1, 13, 1, 107, 9, 1, 64, 1, 6, 101, 110, 116, 105, 116, 121, 1, 0, 14, 4, 0, 7, 100, 101, 115, 112, 97, 119, 110, 1, 15, 1, 64, 2, 8, 112, 111, 115, 105, 116, 105, 111, 110, 3, 6, 114, 97, 100, 105, 117, 115, 118, 0, 10, 4, 0, 7, 105, 110, 45, 97, 114, 101, 97, 1, 16, 1, 64, 1, 6, 101, 110, 116, 105, 116, 121, 1, 0, 127, 4, 0, 6, 101, 120, 105, 115, 116, 115, 1, 17, 1, 64, 1, 5, 105, 110, 100, 101, 120, 121, 0, 10, 4, 0, 7, 103, 101, 116, 45, 97, 108, 108, 1, 18, 1, 64, 0, 0, 1, 4, 0, 9, 114, 101, 115, 111, 117, 114, 99, 101, 115, 1, 19, 4, 0, 22, 115, 121, 110, 99, 104, 114, 111, 110, 105, 122, 101, 100, 45, 114, 101, 115, 111, 117, 114, 99, 101, 115, 1, 19, 4, 0, 19, 112, 101, 114, 115, 105, 115, 116, 101, 100, 45, 114, 101, 115, 111, 117, 114, 99, 101, 115, 1, 19, 3, 1, 23, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 101, 110, 116, 105, 116, 121, 5, 27, 1, 66, 4, 2, 3, 2, 1, 26, 4, 0, 6, 101, 110, 116, 105, 116, 121, 3, 0, 0, 1, 64, 1, 4, 110, 97, 109, 101, 115, 1, 0, 4, 0, 9, 115, 117, 98, 115, 99, 114, 105, 98, 101, 1, 2, 3, 1, 24, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 109, 101, 115, 115, 97, 103, 101, 5, 28, 1, 66, 5, 2, 3, 2, 1, 1, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 1, 107, 1, 1, 64, 1, 7, 117, 115, 101, 114, 45, 105, 100, 115, 0, 2, 4, 0, 14, 103, 101, 116, 45, 98, 121, 45, 117, 115, 101, 114, 45, 105, 100, 1, 3, 3, 1, 23, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 112, 108, 97, 121, 101, 114, 5, 29, 1, 66, 5, 2, 3, 2, 1, 1, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 1, 107, 1, 1, 64, 1, 10, 112, 97, 99, 107, 97, 103, 101, 45, 105, 100, 115, 0, 2, 4, 0, 25, 103, 101, 116, 45, 101, 110, 116, 105, 116, 121, 45, 102, 111, 114, 45, 112, 97, 99, 107, 97, 103, 101, 45, 105, 100, 1, 3, 3, 1, 32, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 97, 109, 98, 105, 101, 110, 116, 45, 112, 97, 99, 107, 97, 103, 101, 5, 30, 1, 66, 7, 2, 3, 2, 1, 1, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 1, 113, 4, 17, 115, 101, 114, 118, 101, 114, 45, 117, 110, 114, 101, 108, 105, 97, 98, 108, 101, 0, 0, 15, 115, 101, 114, 118, 101, 114, 45, 114, 101, 108, 105, 97, 98, 108, 101, 0, 0, 15, 108, 111, 99, 97, 108, 45, 98, 114, 111, 97, 100, 99, 97, 115, 116, 1, 127, 0, 5, 108, 111, 99, 97, 108, 1, 1, 0, 4, 0, 6, 116, 97, 114, 103, 101, 116, 3, 0, 2, 1, 112, 125, 1, 64, 3, 9, 116, 97, 114, 103, 101, 116, 45, 105, 100, 3, 4, 110, 97, 109, 101, 115, 4, 100, 97, 116, 97, 4, 1, 0, 4, 0, 4, 115, 101, 110, 100, 1, 5, 3, 1, 31, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 109, 101, 115, 115, 97, 103, 101, 5, 31, 1, 66, 4, 2, 3, 2, 1, 1, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 1, 64, 0, 0, 1, 4, 0, 9, 103, 101, 116, 45, 108, 111, 99, 97, 108, 1, 2, 3, 1, 30, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 112, 108, 97, 121, 101, 114, 5, 32, 1, 66, 23, 2, 3, 2, 1, 3, 4, 0, 4, 118, 101, 99, 50, 3, 0, 0, 2, 3, 2, 1, 1, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 2, 1, 109, 163, 1, 4, 107, 101, 121, 49, 4, 107, 101, 121, 50, 4, 107, 101, 121, 51, 4, 107, 101, 121, 52, 4, 107, 101, 121, 53, 4, 107, 101, 121, 54, 4, 107, 101, 121, 55, 4, 107, 101, 121, 56, 4, 107, 101, 121, 57, 4, 107, 101, 121, 48, 1, 97, 1, 98, 1, 99, 1, 100, 1, 101, 1, 102, 1, 103, 1, 104, 1, 105, 1, 106, 1, 107, 1, 108, 1, 109, 1, 110, 1, 111, 1, 112, 1, 113, 1, 114, 1, 115, 1, 116, 1, 117, 1, 118, 1, 119, 1, 120, 1, 121, 1, 122, 6, 101, 115, 99, 97, 112, 101, 2, 102, 49, 2, 102, 50, 2, 102, 51, 2, 102, 52, 2, 102, 53, 2, 102, 54, 2, 102, 55, 2, 102, 56, 2, 102, 57, 3, 102, 49, 48, 3, 102, 49, 49, 3, 102, 49, 50, 3, 102, 49, 51, 3, 102, 49, 52, 3, 102, 49, 53, 3, 102, 49, 54, 3, 102, 49, 55, 3, 102, 49, 56, 3, 102, 49, 57, 3, 102, 50, 48, 3, 102, 50, 49, 3, 102, 50, 50, 3, 102, 50, 51, 3, 102, 50, 52, 8, 115, 110, 97, 112, 115, 104, 111, 116, 6, 115, 99, 114, 111, 108, 108, 5, 112, 97, 117, 115, 101, 6, 105, 110, 115, 101, 114, 116, 4, 104, 111, 109, 101, 6, 100, 101, 108, 101, 116, 101, 3, 101, 110, 100, 9, 112, 97, 103, 101, 45, 100, 111, 119, 110, 7, 112, 97, 103, 101, 45, 117, 112, 4, 108, 101, 102, 116, 2, 117, 112, 5, 114, 105, 103, 104, 116, 4, 100, 111, 119, 110, 4, 98, 97, 99, 107, 6, 114, 101, 116, 117, 114, 110, 5, 115, 112, 97, 99, 101, 7, 99, 111, 109, 112, 111, 115, 101, 5, 99, 97, 114, 101, 116, 7, 110, 117, 109, 108, 111, 99, 107, 7, 110, 117, 109, 112, 97, 100, 48, 7, 110, 117, 109, 112, 97, 100, 49, 7, 110, 117, 109, 112, 97, 100, 50, 7, 110, 117, 109, 112, 97, 100, 51, 7, 110, 117, 109, 112, 97, 100, 52, 7, 110, 117, 109, 112, 97, 100, 53, 7, 110, 117, 109, 112, 97, 100, 54, 7, 110, 117, 109, 112, 97, 100, 55, 7, 110, 117, 109, 112, 97, 100, 56, 7, 110, 117, 109, 112, 97, 100, 57, 10, 110, 117, 109, 112, 97, 100, 45, 97, 100, 100, 13, 110, 117, 109, 112, 97, 100, 45, 100, 105, 118, 105, 100, 101, 14, 110, 117, 109, 112, 97, 100, 45, 100, 101, 99, 105, 109, 97, 108, 12, 110, 117, 109, 112, 97, 100, 45, 99, 111, 109, 109, 97, 12, 110, 117, 109, 112, 97, 100, 45, 101, 110, 116, 101, 114, 13, 110, 117, 109, 112, 97, 100, 45, 101, 113, 117, 97, 108, 115, 15, 110, 117, 109, 112, 97, 100, 45, 109, 117, 108, 116, 105, 112, 108, 121, 15, 110, 117, 109, 112, 97, 100, 45, 115, 117, 98, 116, 114, 97, 99, 116, 7, 97, 98, 110, 116, 45, 99, 49, 7, 97, 98, 110, 116, 45, 99, 50, 10, 97, 112, 111, 115, 116, 114, 111, 112, 104, 101, 4, 97, 112, 112, 115, 8, 97, 115, 116, 101, 114, 105, 115, 107, 2, 97, 116, 2, 97, 120, 9, 98, 97, 99, 107, 115, 108, 97, 115, 104, 10, 99, 97, 108, 99, 117, 108, 97, 116, 111, 114, 7, 99, 97, 112, 105, 116, 97, 108, 5, 99, 111, 108, 111, 110, 5, 99, 111, 109, 109, 97, 7, 99, 111, 110, 118, 101, 114, 116, 6, 101, 113, 117, 97, 108, 115, 5, 103, 114, 97, 118, 101, 4, 107, 97, 110, 97, 5, 107, 97, 110, 106, 105, 5, 108, 45, 97, 108, 116, 9, 108, 45, 98, 114, 97, 99, 107, 101, 116, 9, 108, 45, 99, 111, 110, 116, 114, 111, 108, 7, 108, 45, 115, 104, 105, 102, 116, 5, 108, 45, 119, 105, 110, 4, 109, 97, 105, 108, 12, 109, 101, 100, 105, 97, 45, 115, 101, 108, 101, 99, 116, 10, 109, 101, 100, 105, 97, 45, 115, 116, 111, 112, 5, 109, 105, 110, 117, 115, 4, 109, 117, 116, 101, 11, 109, 121, 45, 99, 111, 109, 112, 117, 116, 101, 114, 16, 110, 97, 118, 105, 103, 97, 116, 101, 45, 102, 111, 114, 119, 97, 114, 100, 17, 110, 97, 118, 105, 103, 97, 116, 101, 45, 98, 97, 99, 107, 119, 97, 114, 100, 10, 110, 101, 120, 116, 45, 116, 114, 97, 99, 107, 10, 110, 111, 45, 99, 111, 110, 118, 101, 114, 116, 6, 111, 101, 109, 49, 48, 50, 6, 112, 101, 114, 105, 111, 100, 10, 112, 108, 97, 121, 45, 112, 97, 117, 115, 101, 4, 112, 108, 117, 115, 5, 112, 111, 119, 101, 114, 10, 112, 114, 101, 118, 45, 116, 114, 97, 99, 107, 5, 114, 45, 97, 108, 116, 9, 114, 45, 98, 114, 97, 99, 107, 101, 116, 9, 114, 45, 99, 111, 110, 116, 114, 111, 108, 7, 114, 45, 115, 104, 105, 102, 116, 5, 114, 45, 119, 105, 110, 9, 115, 101, 109, 105, 99, 111, 108, 111, 110, 5, 115, 108, 97, 115, 104, 5, 115, 108, 101, 101, 112, 4, 115, 116, 111, 112, 5, 115, 121, 115, 114, 113, 3, 116, 97, 98, 9, 117, 110, 100, 101, 114, 108, 105, 110, 101, 9, 117, 110, 108, 97, 98, 101, 108, 101, 100, 11, 118, 111, 108, 117, 109, 101, 45, 100, 111, 119, 110, 9, 118, 111, 108, 117, 109, 101, 45, 117, 112, 4, 119, 97, 107, 101, 8, 119, 101, 98, 45, 98, 97, 99, 107, 13, 119, 101, 98, 45, 102, 97, 118, 111, 114, 105, 116, 101, 115, 11, 119, 101, 98, 45, 102, 111, 114, 119, 97, 114, 100, 8, 119, 101, 98, 45, 104, 111, 109, 101, 11, 119, 101, 98, 45, 114, 101, 102, 114, 101, 115, 104, 10, 119, 101, 98, 45, 115, 101, 97, 114, 99, 104, 8, 119, 101, 98, 45, 115, 116, 111, 112, 3, 121, 101, 110, 4, 99, 111, 112, 121, 5, 112, 97, 115, 116, 101, 3, 99, 117, 116, 4, 0, 16, 118, 105, 114, 116, 117, 97, 108, 45, 107, 101, 121, 45, 99, 111, 100, 101, 3, 0, 4, 1, 113, 4, 4, 108, 101, 102, 116, 0, 0, 5, 114, 105, 103, 104, 116, 0, 0, 6, 109, 105, 100, 100, 108, 101, 0, 0, 5, 111, 116, 104, 101, 114, 1, 123, 0, 4, 0, 12, 109, 111, 117, 115, 101, 45, 98, 117, 116, 116, 111, 110, 3, 0, 6, 1, 112, 5, 1, 112, 7, 1, 114, 5, 4, 107, 101, 121, 115, 8, 14, 109, 111, 117, 115, 101, 45, 112, 111, 115, 105, 116, 105, 111, 110, 1, 11, 109, 111, 117, 115, 101, 45, 100, 101, 108, 116, 97, 1, 11, 109, 111, 117, 115, 101, 45, 119, 104, 101, 101, 108, 118, 13, 109, 111, 117, 115, 101, 45, 98, 117, 116, 116, 111, 110, 115, 9, 4, 0, 5, 105, 110, 112, 117, 116, 3, 0, 10, 1, 113, 35, 12, 100, 101, 102, 97, 117, 108, 116, 45, 105, 99, 111, 110, 0, 0, 9, 99, 114, 111, 115, 115, 104, 97, 105, 114, 0, 0, 4, 104, 97, 110, 100, 0, 0, 5, 97, 114, 114, 111, 119, 0, 0, 4, 109, 111, 118, 101, 0, 0, 4, 116, 101, 120, 116, 0, 0, 4, 119, 97, 105, 116, 0, 0, 4, 104, 101, 108, 112, 0, 0, 8, 112, 114, 111, 103, 114, 101, 115, 115, 0, 0, 11, 110, 111, 116, 45, 97, 108, 108, 111, 119, 101, 100, 0, 0, 12, 99, 111, 110, 116, 101, 120, 116, 45, 109, 101, 110, 117, 0, 0, 4, 99, 101, 108, 108, 0, 0, 13, 118, 101, 114, 116, 105, 99, 97, 108, 45, 116, 101, 120, 116, 0, 0, 5, 97, 108, 105, 97, 115, 0, 0, 4, 99, 111, 112, 121, 0, 0, 7, 110, 111, 45, 100, 114, 111, 112, 0, 0, 4, 103, 114, 97, 98, 0, 0, 8, 103, 114, 97, 98, 98, 105, 110, 103, 0, 0, 10, 97, 108, 108, 45, 115, 99, 114, 111, 108, 108, 0, 0, 7, 122, 111, 111, 109, 45, 105, 110, 0, 0, 8, 122, 111, 111, 109, 45, 111, 117, 116, 0, 0, 8, 101, 45, 114, 101, 115, 105, 122, 101, 0, 0, 8, 110, 45, 114, 101, 115, 105, 122, 101, 0, 0, 9, 110, 101, 45, 114, 101, 115, 105, 122, 101, 0, 0, 9, 110, 119, 45, 114, 101, 115, 105, 122, 101, 0, 0, 8, 115, 45, 114, 101, 115, 105, 122, 101, 0, 0, 9, 115, 101, 45, 114, 101, 115, 105, 122, 101, 0, 0, 9, 115, 119, 45, 114, 101, 115, 105, 122, 101, 0, 0, 8, 119, 45, 114, 101, 115, 105, 122, 101, 0, 0, 9, 101, 119, 45, 114, 101, 115, 105, 122, 101, 0, 0, 9, 110, 115, 45, 114, 101, 115, 105, 122, 101, 0, 0, 11, 110, 101, 115, 119, 45, 114, 101, 115, 105, 122, 101, 0, 0, 11, 110, 119, 115, 101, 45, 114, 101, 115, 105, 122, 101, 0, 0, 10, 99, 111, 108, 45, 114, 101, 115, 105, 122, 101, 0, 0, 10, 114, 111, 119, 45, 114, 101, 115, 105, 122, 101, 0, 0, 4, 0, 11, 99, 117, 114, 115, 111, 114, 45, 105, 99, 111, 110, 3, 0, 12, 1, 64, 0, 0, 11, 4, 0, 3, 103, 101, 116, 1, 14, 4, 0, 12, 103, 101, 116, 45, 112, 114, 101, 118, 105, 111, 117, 115, 1, 14, 1, 64, 1, 4, 105, 99, 111, 110, 13, 1, 0, 4, 0, 10, 115, 101, 116, 45, 99, 117, 114, 115, 111, 114, 1, 15, 1, 64, 1, 7, 118, 105, 115, 105, 98, 108, 101, 127, 1, 0, 4, 0, 18, 115, 101, 116, 45, 99, 117, 114, 115, 111, 114, 45, 118, 105, 115, 105, 98, 108, 101, 1, 16, 1, 64, 1, 6, 108, 111, 99, 107, 101, 100, 127, 1, 0, 4, 0, 15, 115, 101, 116, 45, 99, 117, 114, 115, 111, 114, 45, 108, 111, 99, 107, 1, 17, 3, 1, 29, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 105, 110, 112, 117, 116, 5, 33, 2, 3, 0, 0, 3, 114, 97, 121, 1, 66, 16, 2, 3, 2, 1, 4, 4, 0, 4, 118, 101, 99, 51, 3, 0, 0, 2, 3, 2, 1, 3, 4, 0, 4, 118, 101, 99, 50, 3, 0, 2, 2, 3, 2, 1, 34, 4, 0, 3, 114, 97, 121, 3, 0, 4, 2, 3, 2, 1, 1, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 6, 1, 64, 2, 6, 99, 97, 109, 101, 114, 97, 7, 14, 99, 108, 105, 112, 45, 115, 112, 97, 99, 101, 45, 112, 111, 115, 3, 0, 5, 4, 0, 26, 99, 108, 105, 112, 45, 112, 111, 115, 105, 116, 105, 111, 110, 45, 116, 111, 45, 119, 111, 114, 108, 100, 45, 114, 97, 121, 1, 8, 1, 64, 1, 10, 115, 99, 114, 101, 101, 110, 45, 112, 111, 115, 3, 0, 3, 4, 0, 20, 115, 99, 114, 101, 101, 110, 45, 116, 111, 45, 99, 108, 105, 112, 45, 115, 112, 97, 99, 101, 1, 9, 1, 64, 2, 6, 99, 97, 109, 101, 114, 97, 7, 10, 115, 99, 114, 101, 101, 110, 45, 112, 111, 115, 3, 0, 5, 4, 0, 28, 115, 99, 114, 101, 101, 110, 45, 112, 111, 115, 105, 116, 105, 111, 110, 45, 116, 111, 45, 119, 111, 114, 108, 100, 45, 114, 97, 121, 1, 10, 1, 64, 2, 6, 99, 97, 109, 101, 114, 97, 7, 10, 115, 99, 114, 101, 101, 110, 45, 112, 111, 115, 1, 0, 3, 4, 0, 15, 119, 111, 114, 108, 100, 45, 116, 111, 45, 115, 99, 114, 101, 101, 110, 1, 11, 3, 1, 30, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 99, 97, 109, 101, 114, 97, 5, 35, 1, 66, 4, 1, 64, 0, 1, 0, 4, 0, 3, 103, 101, 116, 1, 0, 1, 64, 1, 4, 116, 101, 120, 116, 115, 1, 0, 4, 0, 3, 115, 101, 116, 1, 1, 3, 1, 33, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 99, 108, 105, 112, 98, 111, 97, 114, 100, 5, 36, 1, 66, 2, 1, 64, 1, 10, 102, 117, 108, 108, 115, 99, 114, 101, 101, 110, 127, 1, 0, 4, 0, 14, 115, 101, 116, 45, 102, 117, 108, 108, 115, 99, 114, 101, 101, 110, 1, 0, 3, 1, 30, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 99, 108, 105, 101, 110, 116, 45, 119, 105, 110, 100, 111, 119, 5, 37, 1, 66, 0, 3, 1, 29, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 115, 101, 114, 118, 101, 114, 45, 97, 115, 115, 101, 116, 5, 38, 1, 66, 43, 2, 3, 2, 1, 1, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 2, 3, 2, 1, 4, 4, 0, 4, 118, 101, 99, 51, 3, 0, 2, 2, 3, 2, 1, 12, 4, 0, 4, 109, 97, 116, 52, 3, 0, 4, 1, 114, 3, 4, 115, 105, 100, 101, 127, 2, 117, 112, 127, 4, 100, 111, 119, 110, 127, 4, 0, 19, 99, 104, 97, 114, 97, 99, 116, 101, 114, 45, 99, 111, 108, 108, 105, 115, 105, 111, 110, 3, 0, 6, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 5, 102, 111, 114, 99, 101, 3, 1, 0, 4, 0, 9, 97, 100, 100, 45, 102, 111, 114, 99, 101, 1, 8, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 7, 105, 109, 112, 117, 108, 115, 101, 3, 1, 0, 4, 0, 11, 97, 100, 100, 45, 105, 109, 112, 117, 108, 115, 101, 1, 9, 1, 107, 118, 1, 64, 4, 8, 112, 111, 115, 105, 116, 105, 111, 110, 3, 7, 105, 109, 112, 117, 108, 115, 101, 118, 6, 114, 97, 100, 105, 117, 115, 118, 14, 102, 97, 108, 108, 111, 102, 102, 45, 114, 97, 100, 105, 117, 115, 10, 1, 0, 4, 0, 18, 97, 100, 100, 45, 114, 97, 100, 105, 97, 108, 45, 105, 109, 112, 117, 108, 115, 101, 1, 11, 1, 64, 3, 6, 101, 110, 116, 105, 116, 121, 1, 5, 102, 111, 114, 99, 101, 3, 8, 112, 111, 115, 105, 116, 105, 111, 110, 3, 1, 0, 4, 0, 21, 97, 100, 100, 45, 102, 111, 114, 99, 101, 45, 97, 116, 45, 112, 111, 115, 105, 116, 105, 111, 110, 1, 12, 1, 64, 3, 6, 101, 110, 116, 105, 116, 121, 1, 7, 105, 109, 112, 117, 108, 115, 101, 3, 8, 112, 111, 115, 105, 116, 105, 111, 110, 3, 1, 0, 4, 0, 23, 97, 100, 100, 45, 105, 109, 112, 117, 108, 115, 101, 45, 97, 116, 45, 112, 111, 115, 105, 116, 105, 111, 110, 1, 13, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 8, 112, 111, 115, 105, 116, 105, 111, 110, 3, 0, 3, 4, 0, 24, 103, 101, 116, 45, 118, 101, 108, 111, 99, 105, 116, 121, 45, 97, 116, 45, 112, 111, 115, 105, 116, 105, 111, 110, 1, 14, 1, 64, 1, 7, 103, 114, 97, 118, 105, 116, 121, 3, 1, 0, 4, 0, 11, 115, 101, 116, 45, 103, 114, 97, 118, 105, 116, 121, 1, 15, 1, 64, 1, 6, 101, 110, 116, 105, 116, 121, 1, 1, 0, 4, 0, 8, 117, 110, 102, 114, 101, 101, 122, 101, 1, 16, 4, 0, 6, 102, 114, 101, 101, 122, 101, 1, 16, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 8, 118, 101, 108, 111, 99, 105, 116, 121, 118, 1, 0, 4, 0, 11, 115, 116, 97, 114, 116, 45, 109, 111, 116, 111, 114, 1, 17, 4, 0, 10, 115, 116, 111, 112, 45, 109, 111, 116, 111, 114, 1, 16, 1, 64, 4, 6, 97, 99, 116, 111, 114, 48, 1, 10, 116, 114, 97, 110, 115, 102, 111, 114, 109, 48, 5, 6, 97, 99, 116, 111, 114, 49, 1, 10, 116, 114, 97, 110, 115, 102, 111, 114, 109, 49, 5, 1, 0, 4, 0, 21, 99, 114, 101, 97, 116, 101, 45, 114, 101, 118, 111, 108, 117, 116, 101, 45, 106, 111, 105, 110, 116, 1, 18, 1, 111, 2, 1, 118, 1, 107, 19, 1, 64, 2, 6, 111, 114, 105, 103, 105, 110, 3, 9, 100, 105, 114, 101, 99, 116, 105, 111, 110, 3, 0, 20, 4, 0, 13, 114, 97, 121, 99, 97, 115, 116, 45, 102, 105, 114, 115, 116, 1, 21, 1, 112, 19, 1, 64, 2, 6, 111, 114, 105, 103, 105, 110, 3, 9, 100, 105, 114, 101, 99, 116, 105, 111, 110, 3, 0, 22, 4, 0, 7, 114, 97, 121, 99, 97, 115, 116, 1, 23, 1, 64, 4, 6, 101, 110, 116, 105, 116, 121, 1, 12, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 3, 8, 109, 105, 110, 45, 100, 105, 115, 116, 118, 12, 101, 108, 97, 112, 115, 101, 100, 45, 116, 105, 109, 101, 118, 0, 7, 4, 0, 14, 109, 111, 118, 101, 45, 99, 104, 97, 114, 97, 99, 116, 101, 114, 1, 24, 1, 64, 2, 6, 101, 110, 116, 105, 116, 121, 1, 8, 112, 111, 115, 105, 116, 105, 111, 110, 3, 1, 0, 4, 0, 22, 115, 101, 116, 45, 99, 104, 97, 114, 97, 99, 116, 101, 114, 45, 112, 111, 115, 105, 116, 105, 111, 110, 1, 25, 4, 0, 27, 115, 101, 116, 45, 99, 104, 97, 114, 97, 99, 116, 101, 114, 45, 102, 111, 111, 116, 45, 112, 111, 115, 105, 116, 105, 111, 110, 1, 25, 3, 1, 31, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 115, 101, 114, 118, 101, 114, 45, 112, 104, 121, 115, 105, 99, 115, 5, 39, 1, 66, 7, 2, 3, 2, 1, 1, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 1, 113, 6, 27, 99, 108, 105, 101, 110, 116, 45, 98, 114, 111, 97, 100, 99, 97, 115, 116, 45, 117, 110, 114, 101, 108, 105, 97, 98, 108, 101, 0, 0, 25, 99, 108, 105, 101, 110, 116, 45, 98, 114, 111, 97, 100, 99, 97, 115, 116, 45, 114, 101, 108, 105, 97, 98, 108, 101, 0, 0, 26, 99, 108, 105, 101, 110, 116, 45, 116, 97, 114, 103, 101, 116, 101, 100, 45, 117, 110, 114, 101, 108, 105, 97, 98, 108, 101, 1, 115, 0, 24, 99, 108, 105, 101, 110, 116, 45, 116, 97, 114, 103, 101, 116, 101, 100, 45, 114, 101, 108, 105, 97, 98, 108, 101, 1, 115, 0, 15, 108, 111, 99, 97, 108, 45, 98, 114, 111, 97, 100, 99, 97, 115, 116, 1, 127, 0, 5, 108, 111, 99, 97, 108, 1, 1, 0, 4, 0, 6, 116, 97, 114, 103, 101, 116, 3, 0, 2, 1, 112, 125, 1, 64, 3, 9, 116, 97, 114, 103, 101, 116, 45, 105, 100, 3, 4, 110, 97, 109, 101, 115, 4, 100, 97, 116, 97, 4, 1, 0, 4, 0, 4, 115, 101, 110, 100, 1, 5, 3, 1, 31, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 115, 101, 114, 118, 101, 114, 45, 109, 101, 115, 115, 97, 103, 101, 5, 40, 1, 66, 2, 1, 64, 1, 3, 117, 114, 108, 115, 1, 0, 4, 0, 3, 103, 101, 116, 1, 0, 3, 1, 28, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 115, 101, 114, 118, 101, 114, 45, 104, 116, 116, 112, 5, 41, 1, 66, 2, 1, 64, 1, 11, 112, 97, 99, 107, 97, 103, 101, 45, 117, 114, 108, 115, 1, 0, 4, 0, 4, 108, 111, 97, 100, 1, 0, 3, 1, 39, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 115, 101, 114, 118, 101, 114, 45, 97, 109, 98, 105, 101, 110, 116, 45, 112, 97, 99, 107, 97, 103, 101, 5, 42, 1, 66, 9, 2, 3, 2, 1, 1, 4, 0, 9, 101, 110, 116, 105, 116, 121, 45, 105, 100, 3, 0, 0, 1, 113, 4, 7, 114, 117, 110, 116, 105, 109, 101, 0, 0, 5, 108, 111, 99, 97, 108, 1, 1, 0, 6, 115, 101, 114, 118, 101, 114, 0, 0, 6, 99, 108, 105, 101, 110, 116, 1, 115, 0, 4, 0, 6, 115, 111, 117, 114, 99, 101, 3, 0, 2, 1, 64, 0, 1, 0, 4, 0, 4, 105, 110, 105, 116, 1, 4, 1, 112, 125, 1, 64, 3, 14, 109, 101, 115, 115, 97, 103, 101, 45, 115, 111, 117, 114, 99, 101, 3, 12, 109, 101, 115, 115, 97, 103, 101, 45, 110, 97, 109, 101, 115, 12, 109, 101, 115, 115, 97, 103, 101, 45, 100, 97, 116, 97, 5, 1, 0, 4, 0, 4, 101, 120, 101, 99, 1, 6, 4, 1, 22, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 103, 117, 101, 115, 116, 5, 43, 4, 1, 25, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 98, 105, 110, 100, 105, 110, 103, 115, 4, 44, 0, 69, 9, 112, 114, 111, 100, 117, 99, 101, 114, 115, 1, 12, 112, 114, 111, 99, 101, 115, 115, 101, 100, 45, 98, 121, 2, 13, 119, 105, 116, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 6, 48, 46, 49, 50, 46, 48, 16, 119, 105, 116, 45, 98, 105, 110, 100, 103, 101, 110, 45, 114, 117, 115, 116, 5, 48, 46, 57, 46, 48, 11, 26, 1, 1, 20, 97, 109, 98, 105, 101, 110, 116, 58, 98, 105, 110, 100, 105, 110, 103, 115, 47, 119, 105, 116, 3, 0, 0];
                            
                            #[inline(never)]
                            #[doc(hidden)]
                            #[cfg(target_arch = "wasm32")]
                            pub fn __link_section() {}
                            