/external/rust/crates/glam/src/swizzles/ |
D | ivec4_impl.rs | 3 use crate::{IVec2, IVec3, IVec4, Vec4Swizzles}; 5 impl Vec4Swizzles for IVec4 { implementation 715 fn xxxx(self) -> IVec4 { in xxxx() argument 716 IVec4::new(self.x, self.x, self.x, self.x) in xxxx() 720 fn xxxy(self) -> IVec4 { in xxxy() argument 721 IVec4::new(self.x, self.x, self.x, self.y) in xxxy() 725 fn xxxz(self) -> IVec4 { in xxxz() argument 726 IVec4::new(self.x, self.x, self.x, self.z) in xxxz() 730 fn xxxw(self) -> IVec4 { in xxxw() argument 731 IVec4::new(self.x, self.x, self.x, self.w) in xxxw() [all …]
|
D | ivec3_impl.rs | 3 use crate::{IVec2, IVec3, IVec4, Vec3Swizzles}; 8 type Vec4 = IVec4; 326 fn xxxx(self) -> IVec4 { in xxxx() argument 327 IVec4::new(self.x, self.x, self.x, self.x) in xxxx() 331 fn xxxy(self) -> IVec4 { in xxxy() argument 332 IVec4::new(self.x, self.x, self.x, self.y) in xxxy() 336 fn xxxz(self) -> IVec4 { in xxxz() argument 337 IVec4::new(self.x, self.x, self.x, self.z) in xxxz() 341 fn xxyx(self) -> IVec4 { in xxyx() argument 342 IVec4::new(self.x, self.x, self.y, self.x) in xxyx() [all …]
|
D | ivec2_impl.rs | 3 use crate::{IVec2, IVec3, IVec4, Vec2Swizzles}; 8 type Vec4 = IVec4; 115 fn xxxx(self) -> IVec4 { in xxxx() argument 116 IVec4::new(self.x, self.x, self.x, self.x) in xxxx() 120 fn xxxy(self) -> IVec4 { in xxxy() argument 121 IVec4::new(self.x, self.x, self.x, self.y) in xxxy() 125 fn xxyx(self) -> IVec4 { in xxyx() argument 126 IVec4::new(self.x, self.x, self.y, self.x) in xxyx() 130 fn xxyy(self) -> IVec4 { in xxyy() argument 131 IVec4::new(self.x, self.x, self.y, self.y) in xxyy() [all …]
|
/external/deqp/external/vulkancts/modules/vulkan/protected_memory/ |
D | vktProtectedMemFillUpdateCopyBufferTests.cpp | 318 { tcu::IVec4(1), tcu::IVec4(2), tcu::IVec4(3), tcu::IVec4(4) }, in createFillUpdateCopyBufferFloatTests() 324 { tcu::IVec4(5), tcu::IVec4(6), tcu::IVec4(7), tcu::IVec4(8) }, in createFillUpdateCopyBufferFloatTests() 330 { tcu::IVec4(9), tcu::IVec4(10), tcu::IVec4(11), tcu::IVec4(12) }, in createFillUpdateCopyBufferFloatTests() 336 { tcu::IVec4(13), tcu::IVec4(14), tcu::IVec4(15), tcu::IVec4(0) }, in createFillUpdateCopyBufferFloatTests() 342 { tcu::IVec4(1), tcu::IVec4(5), tcu::IVec4(10), tcu::IVec4(15) }, in createFillUpdateCopyBufferFloatTests() 348 { tcu::IVec4(15), tcu::IVec4(1), tcu::IVec4(9), tcu::IVec4(13) }, in createFillUpdateCopyBufferFloatTests() 382 const tcu::IVec4 vec0 = tcu::IVec4(rnd.getInt(0, MAX_POSITION - 1)); in createFillUpdateCopyBufferFloatTests() 383 const tcu::IVec4 vec1 = tcu::IVec4(rnd.getInt(0, MAX_POSITION - 1)); in createFillUpdateCopyBufferFloatTests() 384 const tcu::IVec4 vec2 = tcu::IVec4(rnd.getInt(0, MAX_POSITION - 1)); in createFillUpdateCopyBufferFloatTests() 385 const tcu::IVec4 vec3 = tcu::IVec4(rnd.getInt(0, MAX_POSITION - 1)); in createFillUpdateCopyBufferFloatTests() [all …]
|
D | vktProtectedMemCopyImageToBufferTests.cpp | 336 { tcu::IVec4(0), tcu::IVec4(1), tcu::IVec4(3), tcu::IVec4(7) }, in createCopyImageToFloatBufferTests() 342 { tcu::IVec4(2), tcu::IVec4(4), tcu::IVec4(16), tcu::IVec4(15) }, in createCopyImageToFloatBufferTests() 348 { tcu::IVec4(3), tcu::IVec4(7), tcu::IVec4(17), tcu::IVec4(37) }, in createCopyImageToFloatBufferTests() 354 { tcu::IVec4(7), tcu::IVec4(11), tcu::IVec4(21), tcu::IVec4(40) }, in createCopyImageToFloatBufferTests() 360 { tcu::IVec4(5), tcu::IVec4(21), tcu::IVec4(40), tcu::IVec4(57) }, in createCopyImageToFloatBufferTests() 366 { tcu::IVec4(23), tcu::IVec4(37), tcu::IVec4(51), tcu::IVec4(63) }, in createCopyImageToFloatBufferTests() 404 const tcu::IVec4 vec0 = tcu::IVec4(rnd.getInt(0, MAX_POSITION - 1)); in createCopyImageToFloatBufferTests() 405 const tcu::IVec4 vec1 = tcu::IVec4(rnd.getInt(0, MAX_POSITION - 1)); in createCopyImageToFloatBufferTests() 406 const tcu::IVec4 vec2 = tcu::IVec4(rnd.getInt(0, MAX_POSITION - 1)); in createCopyImageToFloatBufferTests() 407 const tcu::IVec4 vec3 = tcu::IVec4(rnd.getInt(0, MAX_POSITION - 1)); in createCopyImageToFloatBufferTests()
|
/external/rust/crates/glam/src/i32/ |
D | ivec4.rs | 12 pub const fn ivec4(x: i32, y: i32, z: i32, w: i32) -> IVec4 { in ivec4() argument 13 IVec4::new(x, y, z, w) in ivec4() 22 pub struct IVec4 { struct 29 impl IVec4 { argument 365 impl Default for IVec4 { implementation 372 impl Div<IVec4> for IVec4 { implementation 385 impl DivAssign<IVec4> for IVec4 { implementation 395 impl Div<i32> for IVec4 { implementation 408 impl DivAssign<i32> for IVec4 { implementation 418 impl Div<IVec4> for i32 { [all …]
|
/external/deqp/external/vulkancts/modules/vulkan/synchronization/ |
D | vktSynchronizationOperationResources.hpp | 38 …{ RESOURCE_TYPE_BUFFER, tcu::IVec4( 0x4000, 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFI… 39 …{ RESOURCE_TYPE_BUFFER, tcu::IVec4(0x40000, 0, 0, 0), vk::VK_IMAGE_TYPE_LAST, vk::VK_FORMAT_UNDEFI… 41 …{ RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 0, 0, 0), vk::VK_IMAGE_TYPE_1D, vk::VK_FORMAT_R32_UINT, … 43 …{ RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R8_UNORM, … 44 …{ RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R16_UINT, … 45 …{ RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R8G8B8A8_U… 46 …{ RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R16G16B16A… 47 …{ RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_R32G32B32A… 49 …{ RESOURCE_TYPE_IMAGE, tcu::IVec4(64, 64, 8, 0), vk::VK_IMAGE_TYPE_3D, vk::VK_FORMAT_R32_SFLOAT, … 52 …{ RESOURCE_TYPE_IMAGE, tcu::IVec4(128, 128, 0, 0), vk::VK_IMAGE_TYPE_2D, vk::VK_FORMAT_D16_UNORM,… [all …]
|
/external/deqp/modules/gles3/functional/ |
D | es3fFramebufferBlitTests.cpp | 52 using tcu::IVec4; 59 … desc, deUint32 filter, const IVec2& srcSize, const IVec4& srcRect, const IVec2& dstSize, const IV… in BlitRectCase() 159 const IVec4 m_srcRect; 161 const IVec4 m_dstRect; 170 …name, const char* desc, const IVec2& srcSize, const IVec4& srcRect, const IVec2& dstSize, const IV… 175 …name, const char* desc, const IVec2& srcSize, const IVec4& srcRect, const IVec2& dstSize, const IV… in BlitNearestFilterConsistencyCase() 193 …const tcu::IVec4 destinationArea = tcu::IVec4(de::clamp(de::min(m_dstRect.x(), m_dstRect.z()), 0, … in compare() 462 … srcBuffers, const IVec2& srcSize, const IVec4& srcRect, deUint32 dstBuffers, const IVec2& dstSize… in BlitDepthStencilCase() 625 IVec4 m_srcRect; 628 IVec4 m_dstRect; [all …]
|
D | es3fFragmentOutputTests.cpp | 58 using tcu::IVec4; 388 static inline IVec4 readIVec4 (const int* ptr, int numComponents) in readIVec4() 391 return IVec4(ptr[0], in readIVec4() 439 IVec4 c = readIVec4(vertices + (cellY*gridWidth + cellX+1)*numComponents, numComponents); in renderIntReference() 446 static const IVec4 s_swizzles[] = 448 IVec4(0,1,2,3), 449 IVec4(1,2,3,0), 450 IVec4(2,3,0,1), 451 IVec4(3,0,1,2), 452 IVec4(3,2,1,0), [all …]
|
/external/deqp/framework/common/ |
D | tcuTextureUtil.cpp | 475 IVec4 getFormatMinIntValue (const TextureFormat& format) in getFormatMinIntValue() 481 case TextureFormat::SIGNED_INT8: return IVec4(std::numeric_limits<deInt8>::min()); in getFormatMinIntValue() 482 case TextureFormat::SIGNED_INT16: return IVec4(std::numeric_limits<deInt16>::min()); in getFormatMinIntValue() 483 case TextureFormat::SIGNED_INT32: return IVec4(std::numeric_limits<deInt32>::min()); in getFormatMinIntValue() 487 return IVec4(0); in getFormatMinIntValue() 491 IVec4 getFormatMaxIntValue (const TextureFormat& format) in getFormatMaxIntValue() 499 return IVec4(511, 511, 511, 1); in getFormatMaxIntValue() 503 case TextureFormat::SIGNED_INT8: return IVec4(std::numeric_limits<deInt8>::max()); in getFormatMaxIntValue() 504 case TextureFormat::SIGNED_INT16: return IVec4(std::numeric_limits<deInt16>::max()); in getFormatMaxIntValue() 505 case TextureFormat::SIGNED_INT32: return IVec4(std::numeric_limits<deInt32>::max()); in getFormatMaxIntValue() [all …]
|
D | tcuTexLookupVerifier.hpp | 103 Vec4 computeFixedPointThreshold (const IVec4& bits); 104 Vec4 computeFloatingPointThreshold (const IVec4& bits, const Vec4& value); 105 Vec4 computeColorBitsThreshold (const IVec4& bits, const IVec4& numAccurateBits); 120 …View& texture, const Sampler& sampler, const LookupPrecision& prec, const IVec4& coordBits, const … 123 …leMode, const IntLookupPrecision& prec, const float coordX, const int coordY, const IVec4& result); 127 …aleMode, const IntLookupPrecision& prec, const Vec2& coord, const int coordZ, const IVec4& result); 131 …LookupScaleMode scaleMode, const IntLookupPrecision& prec, const Vec3& coord, const IVec4& result); 137 …cision& prec, const Vec2& coord, int componentNdx, const IVec2 (&offsets)[4], const IVec4& result); 141 …cision& prec, const Vec3& coord, int componentNdx, const IVec2 (&offsets)[4], const IVec4& result); 146 …sampler, const IntLookupPrecision& prec, const Vec3& coord, int componentNdx, const IVec4& result);
|
/external/deqp/external/openglcts/modules/gl/ |
D | gl4cTextureGatherTests.cpp | 47 using tcu::IVec4; 552 std::vector<IVec4> pixels(csize * csize, IVec4(999)); in CreateTexture2DInt() 555 …IVec4 data[4] = { IVec4(12, 13, 14, 15), IVec4(8, 9, 10, 11), IVec4(0, 1, 2, 3), IVec4(4, 5, 6, 7)… in CreateTexture2DInt() 582 std::vector<IVec4> pixels(csize * csize, IVec4(999)); in CreateTexture2DArrayInt() 588 …IVec4 data[4] = { IVec4(12, 13, 14, 15), IVec4(8, 9, 10, 11), IVec4(0, 1, 2, 3), IVec4(4, 5, 6, 7)… in CreateTexture2DArrayInt() 665 std::vector<IVec4> pixels(csize * csize, IVec4(999)); in CreateTextureCubeArrayInt() 671 …IVec4 data[4] = { IVec4(12, 13, 14, 15), IVec4(8, 9, 10, 11), IVec4(0, 1, 2, 3), IVec4(4, 5, 6, 7)… in CreateTextureCubeArrayInt() 750 std::vector<IVec4> pixels(csize * csize, IVec4(999)); in CreateTextureCubeInt() 756 …IVec4 data[4] = { IVec4(12, 13, 14, 15), IVec4(8, 9, 10, 11), IVec4(0, 1, 2, 3), IVec4(4, 5, 6, 7)… in CreateTextureCubeInt() 1199 IVec4 data; in Verify() [all …]
|
/external/deqp/modules/gles2/performance/ |
D | es2pTextureCases.cpp | 48 using tcu::IVec4; 163 static const IVec4 swizzles[] = { IVec4(0,1,2,3), IVec4(1,2,3,0), IVec4(2,3,0,1), IVec4(3,0,1,2), in init() 164 IVec4(3,2,1,0), IVec4(2,1,0,3), IVec4(1,0,3,2), IVec4(0,3,2,1) }; in init() 165 const IVec4& sw = swizzles[texNdx % DE_LENGTH_OF_ARRAY(swizzles)]; in init()
|
/external/deqp/modules/internal/ |
D | ditSeedBuilderTests.cpp | 32 using tcu::IVec4; 162 …addChild(new SeedBuilderTest<IVec4>(m_testCtx, IVec4(0), 73989201u, "ivec4_zero", "Seed from zero … in init() 166 …addChild(new SeedBuilderTest<IVec4>(m_testCtx, IVec4(1), 90609878u, "ivec4_one", "Seed from one v… in init() 168 …addChild(new SeedBuilderTest<IVec4>(m_testCtx, IVec4(1, 2, 3, 4), 6202236u, "ivec4_1_2_3_4", "See… in init() 169 …addChild(new SeedBuilderTest<IVec4>(m_testCtx, IVec4(4, 3, 2, 1), 26964618u, "ivec4_4_3_2_1", "See… in init()
|
/external/deqp/external/vulkancts/modules/vulkan/texture/ |
D | vktSampleVerifierUtil.cpp | 680 IVec4& bitSizes, in getPackInfo() 681 IVec4& bitOffsets, in getPackInfo() 689 bitSizes = IVec4(4, 4, 0, 0); in getPackInfo() 690 bitOffsets = IVec4(0, 4, 0, 0); in getPackInfo() 695 bitSizes = IVec4(5, 6, 5, 0); in getPackInfo() 696 bitOffsets = IVec4(0, 5, 11, 0); in getPackInfo() 701 bitSizes = IVec4(5, 5, 5, 0); in getPackInfo() 702 bitOffsets = IVec4(0, 5, 10, 0); in getPackInfo() 707 bitSizes = IVec4(4, 4, 4, 4); in getPackInfo() 708 bitOffsets = IVec4(0, 4, 8, 12); in getPackInfo() [all …]
|
D | vktTextureConversionTests.cpp | 66 tcu::IVec4 computeColorDistance () const; 83 const tcu::IVec4 m_cd; 84 const tcu::IVec4 m_a; 85 const tcu::IVec4 m_b; 86 const tcu::IVec4 m_c; 87 const tcu::IVec4 m_d; 108 tcu::IVec4 data[textureWidth * textureHeight] = in SnormLinearClampInstance() 142 tcu::IVec4 SnormLinearClampInstance::computeColorDistance () const in computeColorDistance() 144 return tcu::IVec4 in computeColorDistance() 162 const tcu::IVec4 colorDistance (computeColorDistance()); in verifyPixels()
|
/external/deqp/modules/gles3/performance/ |
D | es3pTextureCases.cpp | 49 using tcu::IVec4; 189 static const IVec4 swizzles[] = { IVec4(0,1,2,3), IVec4(1,2,3,0), IVec4(2,3,0,1), IVec4(3,0,1,2), in init() 190 IVec4(3,2,1,0), IVec4(2,1,0,3), IVec4(1,0,3,2), IVec4(0,3,2,1) }; in init() 191 const IVec4& sw = swizzles[texNdx % DE_LENGTH_OF_ARRAY(swizzles)]; in init()
|
/external/deqp/external/vulkancts/modules/vulkan/pipeline/ |
D | vktPipelineRenderToImageTests.cpp | 69 using tcu::IVec4; 114 IVec4 imageSizeHint; //!< (w, h, d, layers), a component may have a symbolic value MAX_SIZE 137 inline VkDeviceSize product (const IVec4& v) in product() 169 inline int maxLayersOrDepth (const IVec4& size) in maxLayersOrDepth() 582 tcu::clear(outputImage, IVec4(clearValue.color.int32)); in generateExpectedImage() 589 const IVec4 setColorInt = (static_cast<float>(REFERENCE_COLOR_VALUE) * setColor).cast<deInt32>(); in generateExpectedImage() 602 IVec4 getMaxImageSize (const VkImageViewType viewType, const IVec4& sizeHint) in getMaxImageSize() 605 IVec4 size = IVec4( in getMaxImageSize() 639 return IVec4(); in getMaxImageSize() 657 const IVec4 imageSize = getMaxImageSize(caseDef.viewType, caseDef.imageSizeHint); in getMemoryTypeNdx() [all …]
|
/external/rust/crates/glam/src/ |
D | i32.rs | 7 pub use ivec4::{ivec4, IVec4}; 36 core::mem::align_of::<super::IVec4>() 39 const_assert_eq!(16, core::mem::align_of::<super::IVec4>()); 40 const_assert_eq!(16, core::mem::size_of::<super::IVec4>());
|
/external/deqp/external/vulkancts/modules/vulkan/mesh_shader/ |
D | vktMeshShaderInOutTestsEXT.cpp | 438 tcu::IVec4 vert_i64d4_flat_0[IfaceVar::kNumVertices]; 439 tcu::IVec4 vert_i64d4_flat_1[IfaceVar::kNumVertices]; 450 tcu::IVec4 vert_i32d4_flat_0[IfaceVar::kNumVertices]; 451 tcu::IVec4 vert_i32d4_flat_1[IfaceVar::kNumVertices]; 462 tcu::IVec4 vert_i16d4_flat_0[IfaceVar::kNumVertices]; 463 tcu::IVec4 vert_i16d4_flat_1[IfaceVar::kNumVertices]; 518 tcu::IVec4 prim_i64d4_flat_0[IfaceVar::kNumPrimitives]; 519 tcu::IVec4 prim_i64d4_flat_1[IfaceVar::kNumPrimitives]; 530 tcu::IVec4 prim_i32d4_flat_0[IfaceVar::kNumPrimitives]; 531 tcu::IVec4 prim_i32d4_flat_1[IfaceVar::kNumPrimitives]; [all …]
|
/external/rust/crates/glam/src/features/ |
D | impl_bytemuck.rs | 2 DMat2, DMat3, DMat4, DQuat, DVec2, DVec3, DVec4, IVec2, IVec3, IVec4, Mat2, Mat3, Mat4, Quat, 45 unsafe impl Pod for IVec4 {} implementation 46 unsafe impl Zeroable for IVec4 {} implementation 58 DMat2, DMat3, DMat4, DQuat, DVec2, DVec3, DVec4, IVec2, IVec3, IVec4, Mat2, Mat3, Mat4, 93 test_t!(ivec4, IVec4);
|
/external/deqp/external/openglcts/modules/common/ |
D | glcShaderGroupVoteTests.cpp | 61 const tcu::IVec4& desiredColor) in ComputeShader() 200 …eTestCaseBase::ComputeShader::validateScreenPixels(deqp::Context& context, tcu::IVec4 desiredColor) in validateScreenPixels() 355 …new ComputeShader("allInvocationsARB", specializeShader(1, &shaderBase), tcu::IVec4(255, 255, 255,… in ShaderGroupVoteAllInvocationsTestCase() 371 …new ComputeShader("anyInvocationARB", specializeShader(1, &shaderBase), tcu::IVec4(0, 0, 0, 255))); in ShaderGroupVoteAnyInvocationTestCase() 386 …new ComputeShader("allInvocationsEqualARB", specializeShader(1, &shaderBase), tcu::IVec4(255, 255,… in ShaderGroupVoteAllInvocationsEqualTestCase() 391 …new ComputeShader("allInvocationsEqualARB", specializeShader(1, &shaderBase), tcu::IVec4(255, 255,… in ShaderGroupVoteAllInvocationsEqualTestCase() 419 new ComputeShader("allInvocations", specializeShader(1, &shaderBase), tcu::IVec4(0, 0, 0, 255))); in ShaderGroupVoteWithVariablesTestCase() 424 …new ComputeShader("anyInvocation", specializeShader(1, &shaderBase), tcu::IVec4(255, 255, 255, 255… in ShaderGroupVoteWithVariablesTestCase() 429 …new ComputeShader("anyInvocation", specializeShader(1, &shaderBase), tcu::IVec4(255, 255, 255, 255… in ShaderGroupVoteWithVariablesTestCase()
|
/external/deqp/external/vulkancts/modules/vulkan/ray_tracing/ |
D | vktRayTracingPipelineFlagsTests.cpp | 141 const tcu::IVec4 m_rgenPayload; 175 const tcu::IVec4& rgenPayload_, 185 ALIGN_STD430(tcu::IVec4) retValue; 188 ShaderRecordEXT (GeometryTypes type, deUint32 index, const tcu::IVec4& ret); 193 const tcu::IVec4 rgenPayload; 215 void printImage (const tcu::IVec4* image) const; 224 struct ShaderBase : Shader<tcu::IVec4, ShaderRecordEXT> 226 typedef tcu::IVec4 rayPayloadEXT; 248 return (rec.retValue + tcu::IVec4(0, 2, 3, 4)); in invoke() 265 deUint32 computeSamePixelCount (const std::vector<tcu::IVec4>& image, [all …]
|
/external/deqp/framework/referencerenderer/ |
D | rrRasterizer.hpp | 129 …TriangleRasterizer (const tcu::IVec4& viewport, const int numSamples, const RasterizationState& s… 144 const tcu::IVec4 m_viewport; 181 SingleSampleLineRasterizer (const tcu::IVec4& viewport, const int subpixelBits); 196 const tcu::IVec4 m_viewport; 228 …MultiSampleLineRasterizer (const int numSamples, const tcu::IVec4& viewport, const int subpixelBit…
|
/external/deqp/external/vulkancts/modules/vulkan/fragment_ops/ |
D | vktFragmentOperationsScissorMultiViewportTests.cpp | 56 using tcu::IVec4; 104 const std::vector<IVec4> scissors) in makeGraphicsPipeline() 114 for (std::vector<IVec4>::const_iterator it = scissors.begin(); it != scissors.end(); ++it) in makeGraphicsPipeline() 138 std::vector<IVec4> generateScissors (const int numScissors, const IVec2& renderSize) in generateScissors() 147 std::vector<IVec4> scissors; in generateScissors() 162 scissors.push_back(IVec4(x, y, rectWidth, rectHeight)); in generateScissors() 201 const std::vector<IVec4>& scissors, in generateReferenceImage() 305 const std::vector<IVec4>& scissors, in ScissorRenderer() 408 const std::vector<IVec4> scissors = generateScissors(numViewports, renderSize); in test()
|