Does `.code` return code for precompiles?

https://ethereum.stackexchange.com/questions/145091/does-address-code-return-code-for-precompiles

As shown here, is is possible to read the code of a contract using plain Solidity by using the .code member of the address type:

contract GetCode {
    function at(address _addr) public view returns (bytes memory o_code) {
        return _addr.code;
    }
}

Does this return any code for precompiles?

What is calldata offset for dynamic calldata arrays?

https://ethereum.stackexchange.com/questions/145043/what-is-calldata-offset-for-dynamic-calldata-arrays

The Solidity docs say this about dynamic calldata arrays:

For dynamic calldata arrays, you can access their calldata offset (in bytes) and length (number of elements) using x.offset and x.length

But they don’t offer any example.

What does an "offset" mean in this context?

Is there any way to bubble up custom errors without using low-level assembly?

https://ethereum.stackexchange.com/questions/145042/is-there-any-way-to-bubble-up-custom-errors-without-using-low-level-assembly

Is there any way to bubble up custom errors without using low-level assembly?

Say you have a custom error defined like this:

contract For {
    error Unauthorized();
    
    function reverWithError() {
        revert Unauthorized();
    }
}

And in another contract Bar, you make a call to Foo, like this:

contract Bar {
    function func(Foo foo) {
        try foo.revertWithError {}
        catch (bytes memory err) {
            // ...
        }
    }
}

Is there any way to bubble up the Unauthorized error in the catch arm above, without using low-level assembly?

I checked the Solidity docs but I couldn’t find any guidance on this.

Side note: I have previously asked a similar question, and the answer I received there was great, but it used low-level assembly.