// Generated file, to regenerate run
//     ./gen-array-impls.sh > src/array/generated_impl.rs
// from the repo root

use super::Array;

impl<T: Default> Array for [T; 0] {
  type Item = T;
  const CAPACITY: usize = 0;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    []
  }
}

impl<T: Default> Array for [T; 1] {
  type Item = T;
  const CAPACITY: usize = 1;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [T::default()]
  }
}

impl<T: Default> Array for [T; 2] {
  type Item = T;
  const CAPACITY: usize = 2;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [T::default(), T::default()]
  }
}

impl<T: Default> Array for [T; 3] {
  type Item = T;
  const CAPACITY: usize = 3;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [T::default(), T::default(), T::default()]
  }
}

impl<T: Default> Array for [T; 4] {
  type Item = T;
  const CAPACITY: usize = 4;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [T::default(), T::default(), T::default(), T::default()]
  }
}

impl<T: Default> Array for [T; 5] {
  type Item = T;
  const CAPACITY: usize = 5;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [T::default(), T::default(), T::default(), T::default(), T::default()]
  }
}

impl<T: Default> Array for [T; 6] {
  type Item = T;
  const CAPACITY: usize = 6;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 7] {
  type Item = T;
  const CAPACITY: usize = 7;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 8] {
  type Item = T;
  const CAPACITY: usize = 8;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 9] {
  type Item = T;
  const CAPACITY: usize = 9;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 10] {
  type Item = T;
  const CAPACITY: usize = 10;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 11] {
  type Item = T;
  const CAPACITY: usize = 11;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 12] {
  type Item = T;
  const CAPACITY: usize = 12;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 13] {
  type Item = T;
  const CAPACITY: usize = 13;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 14] {
  type Item = T;
  const CAPACITY: usize = 14;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 15] {
  type Item = T;
  const CAPACITY: usize = 15;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 16] {
  type Item = T;
  const CAPACITY: usize = 16;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 17] {
  type Item = T;
  const CAPACITY: usize = 17;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 18] {
  type Item = T;
  const CAPACITY: usize = 18;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 19] {
  type Item = T;
  const CAPACITY: usize = 19;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 20] {
  type Item = T;
  const CAPACITY: usize = 20;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 21] {
  type Item = T;
  const CAPACITY: usize = 21;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 22] {
  type Item = T;
  const CAPACITY: usize = 22;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 23] {
  type Item = T;
  const CAPACITY: usize = 23;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 24] {
  type Item = T;
  const CAPACITY: usize = 24;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 25] {
  type Item = T;
  const CAPACITY: usize = 25;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 26] {
  type Item = T;
  const CAPACITY: usize = 26;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 27] {
  type Item = T;
  const CAPACITY: usize = 27;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 28] {
  type Item = T;
  const CAPACITY: usize = 28;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 29] {
  type Item = T;
  const CAPACITY: usize = 29;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 30] {
  type Item = T;
  const CAPACITY: usize = 30;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 31] {
  type Item = T;
  const CAPACITY: usize = 31;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 32] {
  type Item = T;
  const CAPACITY: usize = 32;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 33] {
  type Item = T;
  const CAPACITY: usize = 33;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 64] {
  type Item = T;
  const CAPACITY: usize = 64;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 128] {
  type Item = T;
  const CAPACITY: usize = 128;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 256] {
  type Item = T;
  const CAPACITY: usize = 256;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 512] {
  type Item = T;
  const CAPACITY: usize = 512;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 1024] {
  type Item = T;
  const CAPACITY: usize = 1024;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 2048] {
  type Item = T;
  const CAPACITY: usize = 2048;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}

impl<T: Default> Array for [T; 4096] {
  type Item = T;
  const CAPACITY: usize = 4096;

  #[inline(always)]
  #[must_use]
  fn as_slice(&self) -> &[T] {
    &*self
  }

  #[inline(always)]
  #[must_use]
  fn as_slice_mut(&mut self) -> &mut [T] {
    &mut *self
  }

  #[inline(always)]
  fn default() -> Self {
    [
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
      T::default(),
    ]
  }
}
