// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /* Task: Implement Efficient Data Packing using Bitwise Operations Objective: Implement a function that packs three different-sized unsigned integers into a single uint256 using bitwise operations in Yul. Requirements: 1. Implement a function `pack(uint32 a, uint64 b, uint160 c)` that packs these values into a single uint256. 2. Use Yul in an assembly block for the implementation. Expected Results: - pack(0x12345678, 0x1234567890ABCDEF, 0x1234567890ABCDEF1234567890ABCDEF12345678) should return 0x1234567890ABCDEF1234567890ABCDEF123456781234567890ABCDEF12345678 Fill in the Yul code in the assembly block below to implement the pack function. */ contract Packing { function pack(uint32 a, uint64 b, uint160 c) public pure returns (uint256 result) { assembly { // Implement your Yul code here } } }
0.4.18