ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x20024, 0x102fe0}], 0x0, &(0x7f000007a5e0)=ANY=[@ANYBLOB='\x00'], 0x1) fsconfig$FSCONFIG_SET_STRING(r0, 0x1, &(0x7f0000000000)='source', &(0x7f00000000c0)='%(,:', 0x0) [ 533.196841][T13813] loop1: detected capacity change from 0 to 2328 [ 533.257792][T13813] ntfs: (device loop1): ntfs_attr_find(): Inode is corrupt. Run chkdsk. [ 533.302288][T13813] ntfs: (device loop1): ntfs_read_locked_inode(): Failed to lookup $DATA attribute. [ 533.338436][ T27] audit: type=1804 audit(1667193113.105:298): pid=13810 uid=0 auid=4294967295 ses=4294967295 subj=unconfined op=invalid_pcr cause=open_writers comm="syz-executor.3" name="/root/syzkaller-testdir3257531954/syzkaller.dUvMWc/590/bus" dev="sda1" ino=1185 res=1 errno=0 [ 533.338709][T13813] ntfs: (device loop1): ntfs_read_locked_inode(): Failed with error code -5. Marking corrupt inode 0x1 as bad. Run chkdsk. [ 533.397252][T13798] FAT-fs (loop3): Unrecognized mount option "" or missing value [ 533.414075][ T27] audit: type=1800 audit(1667193113.115:299): pid=13810 uid=0 auid=4294967295 ses=4294967295 subj=unconfined op=collect_data cause=failed(directio) comm="syz-executor.3" name="bus" dev="sda1" ino=1185 res=0 errno=0 [ 533.445396][ T27] audit: type=1804 audit(1667193113.185:300): pid=13814 uid=0 auid=4294967295 ses=4294967295 subj=unconfined op=invalid_pcr cause=open_writers comm="syz-executor.5" name="/root/syzkaller-testdir2277031950/syzkaller.1Vj7GU/573/bus" dev="sda1" ino=1198 res=1 errno=0 [ 533.487187][ T27] audit: type=1800 audit(1667193113.185:301): pid=13814 uid=0 auid=4294967295 ses=4294967295 subj=unconfined op=collect_data cause=failed(directio) comm="syz-executor.5" name="bus" dev="sda1" ino=1198 res=0 errno=0 [ 533.510496][T13813] ntfs: (device loop1): load_system_files(): Failed to load $MFTMirr. Mounting read-only. Run ntfsfix and/or chkdsk. [ 533.539329][T13813] ntfs: volume version 3.1. [ 533.551308][T13813] syz-executor.1: attempt to access beyond end of device [ 533.551308][T13813] loop1: rw=0, sector=2328, nr_sectors = 8 limit=2328 05:11:53 executing program 5: r0 = syz_mount_image$vfat(&(0x7f0000000000), &(0x7f00000000c0)='./file0\x00', 0x8100000, 0x1, &(0x7f0000000200)=[{&(0x7f00000002c0)="eb3c906d6b66732e66617400020101000240008000f801", 0x17}], 0x10, &(0x7f0000000180)=ANY=[], 0x10) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000180)={0xffffffffffffffff, 0xffffffffffffffff}) connect$unix(r1, &(0x7f000057eff8)=@abs, 0x6e) r3 = creat(&(0x7f0000000040)='./bus\x00', 0x0) write$P9_RREADLINK(0xffffffffffffffff, &(0x7f0000000100)={0x10, 0x17, 0x2, {0x7, './file0'}}, 0x10) ftruncate(r3, 0x800) r4 = syz_init_net_socket$bt_l2cap(0x1f, 0x3, 0x3) bind$bt_l2cap(r4, 0x0, 0x0) lseek(r3, 0x200, 0x0) r5 = syz_clone(0x0, &(0x7f0000000300), 0x0, 0x0, 0x0, 0x0) r6 = open(&(0x7f0000000440)='./bus\x00', 0x24080, 0x0) lstat(&(0x7f0000009ec0)='./file1\x00', &(0x7f0000009f00)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) fstat(r3, &(0x7f0000009f80)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) r10 = socket$inet6(0xa, 0x6, 0x2) sendmmsg$unix(r2, &(0x7f000000a140)=[{{&(0x7f0000000240)=@abs={0x1, 0x0, 0x4e24}, 0x6e, &(0x7f0000000400)=[{&(0x7f0000000140)="1a95", 0x2}, {&(0x7f0000000300)="66eee71f470eecd69e6df40fb4db0335a90575ac2198d508ffc3908e8b6641a7745c32632774cf3ce76aef95a40a23e0c034050a0f3019ef36af641c3f1a10f1afbda519fc0592b380fb1b0537b87eecb165a2898ebc4213563570f71fcc934d44ec4ee31514d3fe11ca4dafce3b81fac40d79ae1a35634677206f8b85b235de66c2efce02178100c66e61b4e12daa0cd59ad0d2c260f29ae459c22802887259a37b75e2a07b31f75b60f1e7ef125cd1f986fc9ca3f34530348c968bfebe9572f4707e5a4049d0c04b354ad1c4e13d54d93ddebefb19df2b17abe6", 0xdb}], 0x2, &(0x7f0000005880)=ANY=[@ANYBLOB="20ef80db856848202efc11b40000000055936910214bb2c771735a0b7b3a926d090c85e9c87dd043987a42eef61ddc28ef60521ba15dd3a6c97339f787f13c2e9d6fbfebc9466ff7bba60adbfd67304f3fd3453914c1fdd6e3df0434b9476337bcb0484cb0f177d9eab299b65348b0da1bb2ab25309fbd8eef15082ed9d03355f982a1034133449222d68503d554b294db3317e97445eeecb176125f2be7fd5fa040f70ad613bf0b02062354f943d99ee13539c6b94d41966b90ed27b2f78a70debc36672816e45d092df0213c50d8cb818756ef32a64e3c3cfb344755a958", @ANYRES32, @ANYRES32=r0, @ANYRES32, @ANYRES32, @ANYBLOB="18000000000000000100000001000000", @ANYRES32=r4, @ANYRES32], 0x38, 0x1}}, {{&(0x7f0000005800)=@abs={0x0, 0x0, 0x4e22}, 0x6e, &(0x7f0000005500)=[{&(0x7f0000001080)="027753448e063d513e19c598f6e980c537dd8f30b5290e1efd36835590ce417ef3c633082fde2399b1ef3d60d67afdb3f6e5c5a47a90f032a730cf9e1ee56cd2af89a8c3c841dbe88b21fc00dcc946c0f60810c00fa8604a520a997325951e25744c71cd3afcbc25da3f2105ab7416647975a0c4e189195bd2064b349b76da28351116954a9c97b73f7fbaf73de94dd1b26d8046f4adb34bfc84c884bfc1419404641d8bcd76c2c7eaee9c6a083ddd3174402eb0b18f03e0066145cc33bd81dcab6a13005cfffe0e92401b6a3451db39b976579262d35a927cfdd3fe66c1ce933b89812881514241a8dc17e2845e2c9adfe8ddb10421baa23655e0b3c94bb4842fb0f5ca296bbe8a58c08abeddafce4d546a2a5f471ce67fe06e44fafc6c159a4f268e885f78d59df02990559cbf26ca20dfd36fc91506ce7f03f8b9872339f6a344c07e45cf3c4803eb283a9fc65d2166feae3391f0d95f0c0601ab215cf3c9fe19fb1999ddab709d74a0c77eb973ad72119b5a21ef9a8ea66c756ced477abbefc871d4a1c77807638cc2f09463c51a2f8a35f789db22cc5da1907f05f596269c0f5030a6a39c1936422560cc3c6c2cc54da1eb1bfa419b8aa554bc84cc999f9b49dac78a4cd49ca24767bc659b94643ea5b442fba2e30a416d4b1fb40792026e27bc1b8afe09bd6e8626df35d68862183c6dced0bbc3538a8bfbe234805bf7304762dfd20b720949ea653a02ce3fb417482728fa90826d070f06ba35f7068b8602ecbfd95ec85ead8712fc49cf96b614b8bd29fec92004ca2ed41f06717400e05cbc5a7c55506e861086ad954d3cd4ad59267b5191676d2339d40420e5095f99ba423d39cf411879d19ff795a2222aa78e4ab043a7fca9a620c93196bf386674a61aca3845894c7ee4cd4ce7eafb71a1b56cec6591fa2037322ae0d5013674a4d74efe3964c4aded59a26d494bb58c2eaccf5fd806eeee24d0b64bf6ea62e079361bdce8d71f1bdaabaa00319b3012143b0ebc50a4a7a6a2ed7b033240c4c975553afede9259228afc65890802d8456fef6eb1c83d490642370be6a0766a8cc736c83b449382ad4226f6032011b2cf375ef7146ed6eb796a8eb698f884aaeb1f2a488327f89f15ae227a3b0b1130bf01dd954f9234f0445b808578bd1763d23f95e13f7a410bc8e0e211587e320c53e9bd0ec07b36f886c466c34ff949d26c85a2234fe6101bc02eadf7b1b4ef325dcac3198a59204e2187bdcc9b64ab3d71503516aa281845ecd2367666f0bc8a58454715e4e03e14094f769d557020e19fb66133b2bca2dafe0b606dcaa632229c73520ae0ee13c3d0b3ef04c4ca3d15b3a62ac6683c83778b62c59734056998d4f114903dcc8366c68850189748ac5720db8610b084c9ac0a3264de1066f85af454ab4cc3da015fb6c41a7b6a7e9f287554bf1f1454645780486898d7220ca32fda6822e335862f0d5397e37acfb9b14d191225826043728dc0d24a1c348ce8e990d36c44250a03e083fa422f429e139fe7bef81f4d9cf25ecb8160bb4f467a7b0ead64b1fb3e959554dcc546d9d9293c9b4b9de1cced3f417029a0c61d38fee9b4accb1ddf697e22d034682da8ba7ab860b682f2e8227ffca899ba156bfb61512a0e5f1574491c101aa6567cd765bd6bb502a1913930ad9a19d62433a3adf58ef8dddd8544240ffd37e0658eafaf92bc56b69044af2f2c3da253e79a66ec67bd41f1da0a10382c1dac2cf62ef43dd00c7b0cdfc98255cfe5aa569dff82431df8d5487375417eeae43d5d45b3119c6cffcba2aa86289eae4d0f6688c5b6342c5722231ef81b42527c50ffb38ec285ed1d66f6450bbb55a109b8fd97141600ccc68928ce752707e9147b3cd57d5df9565e3ecbd24bd67f2d8ddce8834b311be4828e556fc05c97a23596d6670132b9d341b2d6e8a8457eebd7bc4ae0e5588ba9619b935f0cb7b767aad027c2984ac8241e13fd30f2167e7e2c454a70743ed97a7c96f5061527d966da7c2e12772dcecda1e70b4ed9567f12fdf22cffd5aee4b9a629c4c31dc832b67100dc251d7c75197a311c2cc4955fe53dab2e91197de20d5c7f6f40e965fe51b3fa6eef4c45a45db8f2589b03235524ff542392e7ea7e96165490f0c008965e1f5c48ab0d2063e3d45a09fa30171b7cf644aa27ece63439df51d583989aec6f623d142a5202cbe8d381e98c5b7c92ceb541e833b9f85a5adf32f733128e221b2a5ad095dfc06d20a74d99d8523fd3121b79594c3c76b8edab0a8b8fac4c3635f1a8585201ea59903842ae69c324b418eb9d2eae8a0ed6e9aeaad4ba1d2e748b3e6e9fc5af9f09d8c373c015bf4f2945277c1b44f72533b2b5f1804155fd195f0126877ab2135178613a8e1454b11938315cdde961bea74adc4f4bbd4917ec1467dab772d8aed82054f2c6a58f0b0874279ba1a343567a5ecd26fc3a0c2d1382b572135b3ad4f89b6e120262290ce4fafa4cb5845a47a7f587c6516e0f4d40653fa5aba06a4ca8ea4c19f5222af1b53177f5807b4eba15f2dcb1388f3e552719b3d6a938d79c78f09096e11a32c7c62911b524ae903e69882ac45cf39c94a9af7ae2381628f6c967d5eb12c0b6675e07c580f8d01723de66f6efc00f1ad029b74f79bf0d5dd9e3b7b84eb412b84bfb834457301e083517b1b35c61a78506773169ea51bd7010fbf34fa4f0df7573d07e433c06b3dcb06bcf61eb41363cc6383ec1635299a1f07b91f081c4cc17d52ba73ce9a9d3abcdf7d407b6aa4f71eb544ece08c4de1c1b92e9fcb237f402c703c3d1b1ba9dca635839bce752d35d4772b3444f5e39ed0c7a9972ca56ef508bab40c800e2889a134f74316319188a0272be77285f2db2291549dc93152bc58e5f3d576ca4804e4e064e1310dc12eb5ca82731541b9df8c4d39024f8defc259e3a64c4e268c3b6baaad47000d6cb7f3019792480a571f4349b227b82605f16f1b9a8049e742001a68de0bb66dbd2c84dc67e640e2c05f07b06b2c1ffeaf127354d20fcf9a1abf39212c2098ed14caca4ba5dc059828220d41eea339ce8bd2317d52d73511e0ab6ca6ada2546d8026e988efbd814d1e5744ad0121cfbc4947610d954b81bb08e0f5ade269c7c1071184e0a1c50953cabbd055e3017b6206e7426043fecfcb64fecf2044093d16c5523765242327077693cd43c1bad7cfd1122868c992f6094555f20be308bf20baced6aebad66507a949cec8cb0afc0786dcaa43aa41a5412c0eb5973f29828505e42b1a3c6180fdf7d2f276f5a41dab66c1ef4d1d0c2d2f75ff47322a1b62133eb293921f0d6d83ea297ae5518e77362ffd7642b13c6d904ffb99b2a23e8ccf16fac5656f94eaf3ede6ca991d9f9b18905c47e7e3d74e4897bc0056ee364f98f29464e4e01f6a53278476b82a258eba9031473cdcc13e50713c18a5d48af8f908451cdc7500fab6846017f323fc538078e69cc9f547cd0e4e90852b0c702dd0ade659fc828ce77280e67f2119675508ec8bc14d24f7480b345e1d4b6118c785da575ec576d2a3db9265fe7e553e583b1e2c8f3f5967e3824541aa7a49d07efb33ad85bc54dfd82f93646dab2afb14fbe2381181128970f23266293c19367590fea591ff208acde322edb7e4370a4cf1c532645757478d2acaae087612b4293ad13b390a7161f200ce56b6e0c956b0d108377d579eaf1b860d8b6e623867c008ced014a22a23b2506b729cee407b7fef8b7fe0c94ae65f32f8d2d73f8a4ead6c374626ca5b0928f82813f949592dc43f6b4c881b313e35e69e832f13ff3a22fb728342decf24cb856fc485cacd8cb0fefa6760a75cbee84cb69ed8e60eda6a00acfdb2f4b0362a8d6d5640f0572c6eccf3214b2bfc4226f221ba07ab51b25469d3b6d767193a8f603d419ffbfe9ad753581bc4a19cabf48486ff1c9c20b9abd851f7a57efcdab4f1d989eebb9c198cb83294ab1b07d68ae10099024014e2bc1c0d7718c3562bdd3bbe12bc0c3d84988c783105d5fdf04632d1f20e0bed642112440c97987a7e5f03ce87e1da30ea83fa5d09a402ad776b4766b062a9e978877bafeee6383df3a6c4dfcc44297d246f46d56913bef3df74ee6f2109cc07d30075c3a68a2d3acbe44705eb49cce397ea043e268333c67828aef76f462354cb30f2f1fede97189eb21010196870a2667052f8f8d6040b3cb51b80f97728095a5bc7f9cfdcd03c47a2c6238127e67599e2fa6cf4d5a6dbfe8ec2496dbd2f26a6b5515168063b3b66a54e86a87231d0e06ce49b2ae3b428578b00ac45e77476e793efa874e839a2976288f4aef23098843a14cefec1aac6b9e903826eb4eb2bb9ea3a9e8c912da7ef491bc78fba2bb769fba8a7ceb44dbaae371189cb5e2d25051a62d3c7068cb891dbe8a8d070633a45af3f3ed34be0f06e00a44568f22baaafd5b797d2c5f8d285970eabc46b9d950e6469b3c17008b1aef5e92af9085d5fe2c55dec67684449b1c297cc270540d654c4d5a8280dd174b7f6aee51e616c710cd2bb4f67210495c888f705ae501f7a15ac492a6f566d363424cfab7e7b90e8626f3f230d9af027cd9d208e1de7c7a37939d737ea8927b69b7aaba8fab0a22523062a4083bf20aff4f6b6e642b7165cead610add9734769615d33c1a5cc716bf3dbef77edf9b2d8f3dcfac52210b4f127e68e57092c44f89ad41917cd84f11af284e71271e381e0e1475659d35f0c079a86ed6bd9a88d6fcee17ac5cf2b1bde1bd3df5f7f35dd784a1e745329b74cc80c58728ea8789338bd2652e7b56c912ce61df136e44238cbb55fea3e24149e353768184c42fdcddf6d66a797ae148080511a71e0dc84c6249edaa3fbe70545e1f86f4d9ef24d56349ff4a489da22f2a4f77718d24fb0885fd3cbb536d6e89246f5072fb4f369ce7c010fefa778484987f1915c3800978460ecf9049bffa7f8c547a944a846cc9edf9cabfc4197e9ff9aa3ff0d8dc207b3f3aad27086e2b7944a0f373440d3c785a8d8a3ee162c660bd19dddd81f7c709bd61b816d4d3a266ee7ec56c4d84de204ef9e0f6df43c4a2a0f4cefd04e23d9588c9b50f7aa4fa40a9b0dfcf1dbe828cf706fb380c406f285b2ccfbd8457204e3f4050d681347f0fbfc3af07efa43336e24f34ababa4a9e3e345bebf0e766e22b3a9b361af1e9f6051566fadcf0088f08f2b4b8e258e31f40582f7206a4dd6095bd18792e2751c9cbfa8bf9c240a51a4f745bb0646f5a042a5afc6b4314958f05e800789d750a4d6d384436b5fc1e30b0e66078011e38f293422cbcaef28afc4c44030fbbb40305ed47fc6b451da819593356c623fda45d07eb9aa595ac008b06409234781356d8c0546f79a7358ba38c7bfa49c79ef84f38a11cca86ab71d85d4e21cfa99c764be0218dd7084775e9b6c00aeb3cebc8db0ec1472b89d2734e19d27cbe9d8bec03fda3492427cad75b9ff3f74709f25ae1d92da1283d759b18c8c4771699d37b1d5f7088ed99b1b8b97e554148df1defb95cffd81a785cf4060c5201fe0fdcdaff9f561aea330a03abdab60ea45de886db10f7aa5e0d5ee38a6ffa3a0b12b5b7ff26daef1cdde05d6ad054ae934eed526da7d7ce5b59417672828982c0039e2696dc26a37ee9fb8d38b7b31e636052e19b6a4356456d9a4e470c66465aa63532d737daba44f8e1f048cbb9aaaaa769c893963e626e5c11a27e3df80dfac20af2ea3ef05ad84497f966cf963546ce5246498db7cb884bf6e614035037af809e778a963da83", 0x1000}, {&(0x7f0000002080)="540445e5e016711e4cfc3e1b2da0f18df0a4a93c90f772c83b1a0567a9bc3c0af022db68e79002565dbae91a246a1e9c29b5f3ac677ddecb9ff3bd864e579113d10b19168553cc63986feed5e60fd1622549f99e6ae9619344e914956acf2c64ef8e59a616fe24c2704fedc45fb3866d36c287617065e9d9c91761ef49c39f577a30adfbdcadf29b83da1f3c6b7524ff5316ee56206b696de4e59e2d83d459c74e", 0xa1}, {&(0x7f0000002140)="44d8a4e3c54db2802a45640dda86342f939654a48e6b0d13e333566194749c12f28a38954733f674cb0e9d6528605e422d8d1f923948e122834aef13be1e299a8726a1c1f2d353b6b9decda16ff4ec01ed2bbc89fa371d1ee71746a3", 0x5c}, {&(0x7f00000021c0)="3c848cdb9911accc2ea473f0a666184476e19c57a17c207b04d07e7b722383da169fd0d1b899b9d3afc1037d45ba552bfeb069c570e26300e0b597c3d8d5f0749849e06c63bf29048a2eb80eae99a6ee35101f1b30229a88cc466a872ffd914aa75139a5ef4431fe864e07f661458db6258fefbde4014b838006db60fb273502fbd1108b98f65cf17473211c51e406771f6579e4a4707ae3ad160791b096386a03e411496403b4e320d509a39a28136a983d41a653dcbaae60235be69fcb85e71f74711fc1569ee5b2f4b8218f0894173dc41de5b787b5e1e742aa1374122eaa47771b62456cb7c4c6d81762563be7b7559ac1090b2eb43e8aa45996a12ceb26d337f259d6409f6d8175c0bb2b1441d30be7e8e0090d8e57717e3292f53321b3ef205738e0dbdf07a2e99299a2560204bac3c080005c89bf80340b8313b1b4b9806b958d2908bedfb865740624190af4ef9053c8e40d22048852255a62b3df8ccf4c813d672d60b6b56d37f877d4a7cedb9fc401e1094999a7438b11e78320f59eb592461a9eeb65a8ea257889b11ae26978b0db2a8bb4e23fcb0435ee5dfd1cfd7231dd7d135e50c9bde769b6f98fd7d5ec46a48e4e174a4def026d932982ba8197610417a3ca7f0e14a9c81d6253e657845d4ae8d8b78d2f7694109cbfb590f4eab6b86891a6f24c5d67a9678a0184cbb2e088472b0ae4489a32dfb0a0b443fb2e3fa4ce58e13469d009677128611ab96a8c96e8414db250b5cc22509fb054c595207d273c040323801c97ba569163e07c3fe97129bc028aecd8a557c07f9c8ce1648172d4af3f785f02acf2089eb5a6ac271e886125ddc7cfab188094bf47797b6cecda91da51a8fb42ccc07bf7556d6ba323ba88a8658734e8aa1bfaafbe6dab717d9b9bddf95aabc1d0cc3caf1fa5077a03297e9fcc1b3fadfe4d7a25b22c4ae4139a54903e10f8dab3cf944b332d1c8e62ff189b2b9633441767484337290e9235e9c04d9d9855e663b320dfa7497054460662274a86e974a5ef53654eb8670ff64044ca2c015192e5f4a236d4f56ece5a28e375540854ee1740a0f50468dcfb458cfb0e2aba513ecc07c30a4c813cd4938189074257c4b7a932f70f808f2a894eed862700a708d75b2ae5b6ed18e27bd804dd1deb45cd9390aae800d9dbfcde855628ee82daa24f2fe13f77d4374dea6fb026133ae4d2f6a3d9dd2e71ed9805fd5e27cea752888bd62cc267cb2e615b75fa68e94bcfdb8e37ffe12fe775c4a484fe9a8f4a4e19cd8a011eff69812e2c71d9245a5d2d662ed48180f52f8a3b95a40ce75d57318f45d217586f14437f13c921bd59199035523d66ae201b7fae5af58f60ce5198ce2bbcec0f161ed6ee10733e3359f5e02366cde6d4167e5ddcb66fe5f1c8cf35ab61fe560a36cec768433a81f42609f805868142f2bf3347274b4c6e87333e12f0bda410d077caf0ae818a93a3465b1abcbfd1f5897d8be3e341eb374b081556018dd50b85dd6605ed757227a51457763b19731ae075abd7ce9be36aabcf6a49ac77fb1bac6dcb8bbb8525b0610d361c0c82ffcf9583720377f2b8c7925b7c0bee3967cb3af7e8dc792fee3facda1e5c1faadb75dc162d614fde83b2fe6b0dcceb73488d91451063b5ae16adba9c1a3727bf254b80ba8b4ae6b09f468963d3bc301221dd1f369cdbb2591d0531c52527dda8c666d79fe890af6ced5bfc0e0214d30213b95e038d8623d2157d38c55685817847b79bce84ca476bab0e1c2db4a0a1f3330995f3bc85d7dfdfed84bee30fe3aaaf797cbc6219ac7cdd8f12333602d2b955168e26ec50d5894b6409b3ca72560825ed5407a0d882e46a4ae041deb1001f72f2d531c7fc3729474d5f968effcba67d2970d496ce15e3b5b7f1d115a809210e1651b56a19a629c3c7dfffd7be37c4b89b10b0d6a887001121bf8cc8885ad98ac3dae104afd70b7342cfd5b341c3976b5edbbb871266c81c7466ac8127347ad5c02cca2e10dc27e260cfeab0da5f7c1e318e6b200c423a053f9c3d77bc8657a064c355f2d8345560c659c448a5b2d3ecfe0c912434e1afb845d4d918adb3b4d489cda2ce49eb2566554448dddda30b02f5e84579522ba8d1af0c821470530c7a65b60450b2f6b944cf69795b1acf7675b4ffc57ef71b7cebc74adcf07255b5c207e891ffe22c769d9be92bc46c550f1f0436aaa59baacb18ac335b4b989d13f4350472de8ee8f6239ea3d6220218cd064608538ea4b3a60f39152fcc3a61c9fd875f3f9cfe114f65aadefbc91b2f8a6401d585fc9164f2974bfb1d11c87cdcd48813dba185291194b5671aa784472cce144166c5e7f1c342bf4ae42bb4ce98a3f13c41c07487d8efc188be22bd41a795b536d7a1fdabc0918e2f39335d525b98ca9e5af6dc9168eb664dd25a843f862736e7365869caed1df321d5cf36de1a9f27f6f46d9d64cfef641ff23637588e29b19ffb031d276fd765c15214c950eb99933bf9a92f0041568c4c27ba3b307958fa20414f366296ffce333c368b2df05495ea9ba0305138811d8d7004cd1b1c1b99a6d022af4e1ad199a9eb40976e68c87e08c430c96dbf48507189e0cd11e5ca9003883d26fa94053fcb5877c4f64bd79b3ac5d96683939394f7f83eafe510427a43c259487aefdf77de15fd9cd485a0f327c2d5d21bb056a1fec58f68d0a1c92990b4b32469935c75f646cca7a3ba1ea3450863fc113811a155d9e4f65b4bc114c5d20fd5573d8fe0939e662bdf4fbee76ba0f048266f87708e07f86b210af6a97a74027edda389aaf3155ab55dc9490118ece630743d2fecc8d41793ce4a787ae27d07d46680445610a11a6ab22d4f567bce0bdf440acfa74f722d74456f1d28ff5c05eb6a0580f2c9c4e44193d1de1b501319838bc35c59927be2e95e19ef60260ed082e0097e56f7a51db781efa5e93c751a0dd5b57016e187c8e3a3705db1c382165c713e6f55d385f934d98b4b8094533b33e03f646eb92672463a6bffd660b8bcf4e26f5bde70e76b9464a7182b0b43a486be178ac8a3a28152abf489d79dcc5d809d335c89fc4a5e2d7cc4d6ce9c6f439c1a8c31ff4b1848e475aa0027f7d4ad16a3207127d0221445c058d2215461d12125bce86edb5cb995b64350946c6832553bbeba838ea0cf7447f6930a841cfa2b907158f1c59a99a2e12bdd8a68ddd3d7f3b7fc7ad1f489e52b723bb5bca3f18eac5542cd14335f5b1247e3852d1dccb79fd699ffe183cf7fcfdd39bc82f5389753556ccdc4234823c7ba07c552a87de370a9b77d2f62b2c003fe40e55494ac3451cf6d9e482ddc7546aba145e43f92427dad1b3168f55019cf3c0498aa6db1179dc7cabb7c8ec12aad31856cc1e48a9ecae00d97abefb19f378f00e97201e80e2d648de84e75b487b08041bffc2ef2f3a090b134b3e43af0ba7472929cce96cb40e684ce13dd176f134654da57d9953d3120ccfd57c2dd3e2f4c453becd03a30a937b469200fd1f95603d316e3aeaa4b100534c683d8f88e1b57367856423a4d06915fb9491d099f15111f24be384063bfece64e3891423d5cffcf2393cbdae40f04585253b5ebe530ed860188cc7948cc3c35d66b7a5f3eabd02f4e261e65f32627462706d9eef18ac686b3318574153addff5fe31fd8a6ed10bc20b238d9f121a0957f5246f5800a7c7823635c6912b595257d3f63988ea295021c14f01fd74d4c546ba3956a9688ed6403f4b0591b1c1eb9947f60cf54fb8b4cd57fdb67166226399f138dd910b926ef27f84283c917abba848d6c2d367655697d34163cc8a810a693bb7cc8dd6118263614b32a070aaf3b58530d11f0fa5ec7e92e920d757c958f8523ca0917aa2f23a6f3a9c41ca0041525508ca336a16e2edf59883469639bced868042ba483a52ed345b4c2d881621b5b03a74b8564ecdfbb9301d45bf0f1ec31678175b7e75d27c6f740e27d04812c297568fbab3e030edb6259ed9f05b5aa113325101581fc659bb65874a0b1e1abd4c8d64d36e71dd00bd02bb1048693cfc4fa7cc2bad2cb9b24fd850fcca91e1a6773dc2b20f2453234c754ea1667f8623ab19fbeaad6861a3039e0a8bfade64c36ee73153974c1a9e7f92d48ad7188ec7eb7c884960e02519f7efcbfd8bf19a46801c64edd0efa0c44bca477d598844903b169e173e2179b4ebdc658b975c4420e890c96981a66b1d1a3c6cac8ced46ab8e61537bf2180cb88ceb831d755892d3a74d56a40a6ab1896a8dcb7f1812dec649b051353b6e22d2a0d4c7bd4f914cf81bca2f5e519f537cba2db7f02be06312e391b165eccb9c63795293f067bbcee43f444c0a4042d98139732718bb4b9ea4c38466251af1119f2890da4fda4397b2eea2cb32c6db874bcddf1a67a32109bf4f2d176634807418e43108f71f16de108553cba1ebaa1ee2ff0d76a1fd101716e1d5fc15c0d7946ba00409db7529dceceb510dd6a7b05d4404e9ed3cee6f30d530fdd649ffffb75da6d6e42838b70e8cf9e906e71a7cb2204d757eee0795599f7aef646585a871d6fa025b72c6bbe02896649f88408e434af3fdc9da506ca2fe5a4f3a31e857f6aa682fce2e7e68869ea19b66a324b6e554b6435cf94fd8f2941c84ee6236696d311d92ca5ce9c3bb17ad1c83c8aa920606240491424e59fa88bfe848056fe402c4b7ecce28ab1f95e843c4b0b11bd93a3f5c9a29ebb9b0a42120efd5c6ad428d48cbd5b4e1190cade3bd8db7c03bfddf0737abd7607987311e43315d136d19b8cb970a0c928dd4d6c9e9b3e57db5028c3d590176b7f62dd9f4989cbf4a17ce168e66fd3556fa1fe2be6d6180aff5f1c55a913eee0a26cfdaf01f3c5265f66e0a18b99c23f85b092c8d62a5d144cbdcf0645061e73c9165a35e34c604a403c42f02089e72497ff93bc0dd3da17399e8cbce4c38b3b1f24cdf8b32825f4cf0b23146d8fe79b4a8b52001d59b92c17e02e6664d3cba95370d30720b29d4c79359d0ed447230e8eada1f72a07172bf41d73db8fb650013e53e63f63e4b33b1ea2446e1d2899028ae827ae3197941c9abdaf12cf114894b15f1cb1459a730a2d91881b71aefb79f445c945b7e7783d0315ecbe7c68744cd03e7d2f7940eb2f33e6ed08fdbff6926f1c68f4ce8728fbeb2c08662e94f0a2872f0e7ca5bab29c2394175f58fecf1ee73c5120938e4970f8cf14f5ff18e15f0a288c4a632d3869ba10790edeb7b8eb85dce82b992da7f29318da9c7f7c403d71954b86bba7a0c15c54ff5e4956958f6436f8638b1f067f04e22b71e0f8f407f6997101d96c943625b3e547bd2561438ebdf39caec4068f70d5df64630c63b6823e99a610fabe582c125609d4d2164e34c358a2a5b0210ff34457a1e62c360487e44798a6214e6f857c3be27cb56d7d6cfd5670a5acdc374403d6f3aef9c63f0854180d53253ab3a119275594ccf4307b3ac807cafb04a5569ce6d37fa77d8f77846f0a0e05cd9ca49ae9fe97a80e43e90cf0f700427c75d853464f4947d41b770fc4f3f352077ff92b5854e5fa777a54818d93b8f1c6c35ab6380c29fa9d8bb9f27e632f90ebb44420a3a1b25b67f3efd407c8223faa3c299701ec899c2dc084f8eecd5faeffdec32fa4940d1f45691abe02ea22f9fe7b118417d4ef61c215f241d542ec5614a8fce54b11e1b34d63a9f4c457d8f277949641088f5bab0503b08c6cf48f74ea66f550766afd264be966140770d06e0e0b16fc199c10f245e0658ff93bef06fb614c3634772bcd50ce", 0x1000}, {&(0x7f00000031c0)="546c8138870e11381fa507f18da23af50a98caa1ac4368174483969511cb5b5535670c515294d0808b295f7647a04e41e8ba68487edaf3abbb1ba3b60c3d187c99112530c2ba177579b4e8a94c97d04b53dcb37e9b171dc26378e2495e049fbef68a876fa23ca83d28662e8f28da7133d32d2cfcf454e2d2a9ba257492d18238354ba8cdeeca31df1f0a27a837326d0381080e6fdd22179fffac802e9ddcecedbc5487a9ea0acc95d328fec2cc98283ba8a4d496211028e470d2bf7faa52436269d036c60c7710da4a29c212578c363f2884105c31a50f50e74713978ae099b8052236667d7ed0edf5e63e63bc7eb19bc217702f6b5f155a62f3a582a9175ef2845bf586ff4377a815701fd54767751c7bc101b85d3bf459f545074b804a95d6a4ce9f5a118122cc7b50e74c18506501653025657d65eada545d3faeaa0bf8f1e699db773cc2329491e752a73df085b122bb5f95b53ef5f9f12e2265164aee40f000b9ebc29eee11715d3f2152b31cac121bc53b11bc63fed2f45a5e0a62a279fdcf32d152913bb6515137b4eb16408d473b19447288b32f76c8186b9143226503c3858448316967e846809ca6ada1dfe00f5c06a21563217bcea079174e26bbf4996a98f0d748350d6b704a399cd0a791f9bbea0a2d1bb28da590b6022c94fe62682e4d85c9a6fcd98475d31b82ce6617b321142aac2364fb152ca77d7b819cbdbc16eb41f077e94ac4b5ba74eaeca0dfda6f9e82e58e8889c8bd837e3c2cccf46d39954f9f4484b4a04a0afb0db68a6518b9065062f78dcaa19cd0b32d57d5d2d43f307b7a7e87ea47a320133a0434e0ed953dc372f7aabf5f3820ab5891da1da4f3e7a4c777159ff920b0075040f8d9bba1652e2ab6329407f251edae0852131f6d17cfe23cef27316aa2fe59a38b336617b0ac453cf6d2f50743f20492da9e6d6bdbff8afe2ce45f726502628e7541b641219c65f3ccdfcb90dfa0466c986a687efe434b538b88a95dc8538881f9e820955eecd3a9f2ef32df021cbcd506f239c7aab43b0c3bbcb44ec8e86f2f150770d70c709d69a6a85ab312b0086f8bbb9f5d0b1ff642f68df9d7f83fa6b62940925238fc69d4e7bc09435f0cb84d567115a07c1593c0d9b14cdb150fb57b555105c96a3a5eef2ccbc737d4eb94c6bbad9c7e37852050ed740805584f64c81aed4203ab8f91d5e07a90c94d37712c8890d67394803b1a0c1adf347f8820750c9b1e5c512398206d5aa645a1fa9d26e4c77815b3e651f731827c530aa152b06e833984eb7cb9bc914d67e015adf74a8a250fde5373dfdacddd249c453478b6b595fd03211af584f05b07c588aff0a27f75faa104bf8a7665291fede392bdf27eb330a38fbba64a257fe307672bf5027fc81bf2e8ef2889fb4327e7cb185c491c420c7e3933676b8303d51fdf0b0ad533d88cf51f3dd90452ec29f659c052e84f9a17a500218218bdc52d73ef466561aac3aa2a4310449ee2522c547dfcdd5fde4f2dffabaa30454d7f4202de41a3b3ddbd80534f34e15bc9b0409b5357bafadd6fcfb0a8e3a8844b03a0af83d4d10086d7032e449b067a1fa42f4b3e3824120c630074f6790fc3a4d5d862b3bbb4ed6a79d5b4abf0671cd40ea5b140aeb0278cfc807e6515dedec1d31e4d0638f9288242c2690065fa41a7d9f087f44fb22c2a78ba4ca2c66a899a2c1544489ec552d35989e5a7e9920a23ea7bb7cdd9efe97b3a1760d02f76bc0b6c1c70da919b10069d20477272f7957257ea8506c0cf8035e5e0cc9e2e2b1e5cf14b6bdacfab37e789ade77dc432934fe2763b22429a8016ea1aae918531a5e41d7d08979f2dea53b71916e94b740da06722f6c678c85f4acb59091716ba368e14322e7039d1e4521816d7b4e7b66b0101cd0aea4e71b9ba4e958cc3ec9d87032363524b5cc646b67ccddbd09f269f1145db99ef298bfb41182a3b2aae6fee3728e88f57f6857a8321047c898939e975f1b1ee716837093e704340ef0adf93e89c467a9dd5746cd5297ab7038665cc53c9d8779c6b001415c5466df9913adbbb37a33ebf657c3abc00ec4ecddde076a4796195cc6914d2eef2b5da084009ff65ca2f1db16a00d3b0f450ca472126a73f87bf26122d420a933f220cc42c2e89e3da37ff32fd0b5aa644c3343f7e08f9fc808e919f528560cce58ccf02724822ee56a7feea13e419f6118c1e6e1bfb96cf030b609b5592ab9e835ba9d18f969a8d836e8a21bc7a472865bd41f940a0b67ab6fcfd47cd82ee265e97500b1b523a6fd721ad16f523a5914743b5ca9cf1ef742c1abc139e4416e0cd22cdfc52b7e4643eb8cae0558b36beec436d4c6f4d5140637d658c355664c9b021af27bace8769b8f38f2f151b14c7bfc39274d165a843283799d157d052dca4da229bac0ab1cff4795c4c6d6c86ec18f38b09000c5980eb83e176e377889ebc75e2c8dda0854b7cdb145081567f4bc3a761ca705dde0d0b7c70cc62928dcf3173b6e02600e77b5ed4c65f0c55c44d55a92371bf6dd662d3612b4ee42936d2609065faa907a22512c5d62f65a459ba55cb34b8957d6c0d6a0d74d7dafc5f530d715c4ee4d70702eb74e5f237659949bfcbcd1bc92508f17709744bf13daf2c08325c6f255efda7c621d6cdf2046a78d44614143dafa11de51243efb0753a90acf5d43afc41d60df135b15c408997cefae40b19715f584b87347e42a8b4d50117f55a8406a5db667392ed9e5d1aa87ce088d596dd26d08836c2dedda1ced5625c4c867f115969cca67b83f5989d86cfa97faac2c24c1cf6aa8e6985d768ad9f16541e3978ee4482697bdbd8fb5dfbaaa239fe6b02c61676fc6a4d7d878b95ef8f03966ba903457a5385194541cf67b64ae8763c46f253b153d671325f206a8a93c3a3b5ac9b290e05112191cb1fe636beae5d43db1fac1b86a792404437924c6f30d374c294e3363c88bfdfd8aeac54a4d8b97d748c178fc21287133441f8d96ccb90f94a5308e229763b72564be3f4f03c71da781e5b7d3557c1295353d14f05a348875c609df8c5e4fd56d4c96b4b1ccb63ef359211da1852d107efec271b29a3b69baf0cecdcba11563bbcefdc3bbe59ef9b25bc20916370dabb214c4106133193f0e81896a7a9e4d8d40147601ca61117227001cd96e6638e213aae7e54f2777cfc7aa6b15bae756ebe100d279ae284a08d86ca2fa8ffcf07102e5f27accb5260b93a892fce6a8c9a62999c5255b2217767d152476db2ed56711593ab0b906d842347f7c2482bb022df9ee60d837d1ecca3c1051c1491e788040953bda3aba0773be4606b29f69bf81496c38355f3d1fa43d2a0a2eeb3ad542171657edec75ab9df7e5c07756489719368f98e4e828f3d4f6720b5dc4455c5209c8c1e438556371ae21a446d430c8727cdac0d271a3a5cdd05c86d080639bcd752341d79bd791947c73c95fc4efd44086c8835e7e6f6bf80c1b7fe64e52e5c47786c1ce56d1ac914fa2263e6b33a3eccbf8bc4154d2845d1a08a357cb9ecd489493bd70c127a4b1364460ebfcb98c0cfabd27c7838fd90ee5cd2f238902db71772e60e3f8f3d09a6336231a23aed6d652bd6dc0734a0e83ee00a12669149693c316effafa139a189c03b1eeee835e3ee0f9b63558b3a2f466f64ed6dd69535f9474c8523d89c584592068885906cbf836104fd60dcaa0c7a01fad768934419809f2cb212588a3da447171bf673cdf295f0d91bc8c73e97ffd1d20e5a4bd5bbd1b4d38322122544e9eb902fbbee65e7904082c3ddf1e399123a8e36cb15d64ccb5e60f97d57eeae1e72e8ffaa90c5199486ff88c15277f78ed3decb580fd511794a6561a1b376f009d3ca9927da21a1b3935b610d21def4413355a0983d7563911f91dbcab996afa2323e83fa60b643a852b587f3d7756a81a5762126119c9fafbbd2eda51cef9940fa49afac49e76873074f22cd987fd82e6353f4941314a88fb16cddf038c891d15676b2bb4b6a1d6a83928ba5c1b85c118b8ed1055177571e9d8df055cc0836a9ed21c09ce2445346076ee767a87829de10c2ae8854977dede389b0c9b23d64460331c941f42ea7b21cf2816534d0f20ef78e85cee3ca3f08289ce5ab354b61dff6941a3a0a6db45ab7c1560141dfc906ef07a5c0a27669f0e4fe266f7e691e7d73a6b72c670deae38fe2b6ed4e523181bf14d6b358e5e78bf904dd4f1c0b5675eada532fe180697972d9b4e431f0c6572a89a6dd7da0413d3fb29ee66358f9d65b77c3e3a5c59c313e2cb8f5041673b56ba04689341c8e95dc6f2f456cf0bd31be3a726f2455a50c38f1bad49cdb6f5bf8f8ad94dba62fe0e023348fe76193d250c639a7ce51e1681a76822a187e9a315c8cf26ca81ff367a65b9e9d200dcbc058994d9d9d124603f0190628535df6927cdf5950c9995cc52d16ae77a4b11f5d414164e976c2fca8c4c090e56a9b7c445016985a8b5e6bd8211ca1239fd559b249167c6d03c7b84ea48bf170e56592d143e301f0cf4067fca73ce42e9e99245b0c778c352d62facbf5e25e021a8ae320784a0e4b71808d890f42f40f778bf77898db0b4a804a7ad76415cda48db40a2847f9359f059d511d4df6fbc60975d9b1e859449543643082c0038f90cafd6b34659143d9baf191fb9137a910e4b334e69d6b4bd74e4db11495643181bc647e91108a92824535ceef7199936d4b8ce54225912088b57c59c23c4130556edca3c627f15f771d32e201faf5403cc1c821cc70df875223ebc8451d2d4f76138b8e713679c05e393dc202d6debf2318ec9ef1db2b8ca338310d63154fe346f67cdf83b035d678fe1e51ae15a2b0c9aefb6dd3ba03d1e3c4a9c9ef6aacc162dbfbe7e5411b1bcee55be556dc94e1be781c0f7ff2037fe43522876f6b8ea48da7c878351dba00e1cdaa50de54a6ab11407ed0e751418c037a1832aa7b91a729df699aee071da9ee14c053a37449c003f0ef9300bc6133400db9f809dfa3f83da6d37bc8b88e1ae70bac541580e6720df9e97bdedb1cbeaae6a4d420de4824f8631534f4fb731fa3bc36d9ab1973b44d8c12d9696c64ba7402afaf41c8257ec45d11e40fcbcc6f9e28f7ba9974da2894ae68b3fe3eebd4043db963202db2eb4552357d8d6cb669bb6fb281a4b54c72bc67d1bd4daca9e9e5b4df49faf490b35bff874796e989bf674a6712ed8749dfcba8894f3049eadca5c9df876c2497cdc947482dc95fad6f7a03b8106f4a094ae270a7bc407e8eb8b9e02c5ed66fe3bd341c6faf8b5f4c54497e91e8b4851905483ec725b97782a476a3ca53149ee58b15acbcc321fdea9c1761e5f053c61db447fe391ce404848badb6cd0ef72f65baa66882c0d7e4bd51038174b69f45c4d296d7cb2f884045c4484a06784af7dfe98d98dd09f328e9682f2a742ee362d3579b845a8ecdcf06be9fee360d3dc0e6184101973a2063a203bf1154cdfc38c4ec873a37c2cd691061b30259797a9d036bf2911a9c189081c48ef5ceb5f558d7c3cff8871b1bf8b78eb80921c61709e6ce2e20e663cdd73f2b2f1b82ceba9488fdfee8e4ca6d280a1175e4a4294e2fb79f4da74b507721a962fad8ace0816265d38e9169159da9e6009366cbfe2e9d99805e6dff19f3b93fedf2f6a32f34b52f06d521ba608ab6ebef8c7b8cf4fd046860fcc51d4ad5ee4efaa295f57868b64fae3a11198f7e25cfce60c02ad45b0088809042e51e5dff1f5271099b23ea8c102433c37702b3da64a2872608e3212eea517a", 0x1000}, {&(0x7f00000041c0)="4d43402791f29ae4cdf0a2f0290b68c45b34b4ece2475d1fa9740afc36051e4896eb78f5d26041da818681e908319598f68296e31079095eaca03001925bb6007b5b83f86d5f576efa610f1165dc0cf878354f2bab33caef933d7ccf26e52d7b178f175a4aeee2cce08abd345a41f950cf3191b32edecbc496e0124d5b0fcdf4953997a9396d9e3d9e29574c4eb65a4a8e62f6ad9fb33bcc0e344dab25c30ff6815412a27045e770b37b0f56e82f2a4cc59ca324a1d13f9d23c5688b065c69504a14765239f38d7a7c46e3340985144d94bfcbf4c4821c619d008318f6823fe3ef2b9549d119d1991f654b6bf037fe259decb8d9339d677293cd494440a2720261ff2fad20180ebd693a34328f42830978cfe7b6cb5b46ae83b27cb89de6ce8ac145d0cc4ec738b0e5c72851fa7021034d1a7725ab9f6e3909e74127528bf26c7cb4d49a64852fa9a47073c6d95d8a3e40c11fcb4373d8a265d94a9da942e5ff21619d7f562061ad52669418548074fa4a1d4db74881fb1f8cc6a3ff36f27b1ab3713551c583abc7fc5bcd9a8792d29a5ea69b4aab92e719dba2944add685373db102784a36e693125e6f81da4acde2aee39e3caab910cff799a493e76cf92f82404c8d340249ffa32abc26673eb26d6785525ec37dd1ddca933e631db54d68b6f3d22c6cc70639ec303d312aa5f97dc8cd52b28af9d17ff36b9e6a9d8f051f1dfdcd9aacfd6cc9c27c2d41e65fa03fdb94cefbc28ac0d0cc2d29b30f8ac8d59f8c6ca894bc0d4ae65d261b6c9b7754caf9113318c789c94b06e47b994e08e7f036d6de82e47c259c5190b74ebca8da547e0565bc06d6951d88ec1ed25285ed78181e8b0bedd58a69208c973a812074034d64e80c7b33f0b225c62cb1e72c90ae5c3131f178a5c7da60eb0ac30cc8a729c4a5446cacfe158682d5d5ff53d924ef5e29f09aa0300e17aeab3f926ea61cba92a3cd2b86d5dfc6ea2b61f03d128f5b906942eb88e5dec8a37cfa47f701f6229b6b8f7b10be836da44f91d7641dfbc1010fe5e59d61bbb05008034e7369f64ee65ebc179083c71d311aef9d5b95619319f779b6d970ecb7a460fced9033c168e83017a7b0f74f0618f4dda7bce4b4e11309f28afb6268953a506a4b60dfa2119c4ba8e0c682271aee9eb5739099a647844dae54b5d11bcfafbd938f192052b6bbb46a08596b955260e5e4c175dcdefa5768d7774cf2bd28c0dc0512fa932d6a76838b30c058cdb580ec1675a779dc98605a29d48006425d24bae5d3b3f7616255ce9bebe86c36565e83602372238062770e4b9ccfa7985c8dbf436bd807cd30f14aee27c83a566bac5885d3c0bea832d47a992f2191baf6303ba0a9f77cc721306bedcafb4aeeab22d360696fb8ad3d45f077e7b5dd2e591a8df81b048db3d63ab5baaf141eff65d994b5d9c3aaa7a7515e98e2fe3396158cc2f52a6b4e444521469232d79978765c384869d6cfb611b5756419e1b09a69c24f6c1c5a2a5c4a3361cd706cd92cfbd39d6e2f98c99695f3b8a86fe6f07e67482fb95b7d1e5273aa46d8a83625d4875e0a5b1284284e508446515775233e118fa2dc3471a5a863c9433b62381dbeda5273db9fdbd022b9c71f28374e0b3f1adbac58b1ecfc44d5a9a372f15e59414931a04423dcabe79839245180681df887e715c21ccc5c880e77ecba527354b51138ac8195f1c57fd54f7c56cc0d429386f8439306f434c1f597bc7704632243d0cc6cfd97d6982b1362625d5670b3255f863d967d2206e261d29a5d24d5cb53a12ef07d5be4397d01f02b406adf2226ae111937148fd0553a4b1e8a2fc8ce0a8030eeb3224ceaa9d4be74222b18a6521bf356704f6bdcf2517d44e084c8751e4eb95426c02a55eb5d5a19575ad218897d03d6dbe1898f187ce4afc048e3be1daf8237cd14f0dea17c6b13fda22912dd78e85af7fb5655913680abee124ec42957065d5a89293686bb6dbbde26c4a0b2f93abcbf4c6f8df1cf057fffeec965262db9812fe94b9343d913480828d27a18f106c52f5d543f62934c933cbaebfd70596dcbe747e99b46ef675f53f745208d85ed4dbf8c391f2ff668dabd2714cb0824630eb93a80c0cd324fc191070aa57f789ba230a19f37fa70e1fe5e45b2a71983d2f66118a0b27959602e272cdc6e27e160625c5553b16a6e5cde5318a5359dd2f696ecf7d3280329a4e44dabb173c43acbe198ba9f041bda409c4f2d65f75184ef53bfe008090a3841f52c9661f6ce38cca16f2b5dde3c161314b87b69d18e6311c9b0af8c212679db8d92ce8c89d39a72775228533523d2b30d46c54b919939b130b4debb0c6746abe4b5dfc2e92dfb966279a4a37570ca1d2b3c3b0fe1ac969698dc58160623e577addfe6df37dc7e5d72ecacf7ae06ee1ffbf04e5ea6f1670b61e7b385a28fe6e9adfab1de2a1ef00c4a0058ed820f0022a2b19c1503fadff9c8ed9b6c5bd8f7059101fb3253e5d3c0bbb0a626d59666e5c2b2ef505beea118efd60d5d76c033a5437eb663ab2f009995033d6528b0e1362a709a71918f608de2084e2ad396b9eab3aa506b48bc862689ade12ca51daae62bf8a0de055480a7b9896f42ca277e4cadf2bfe09b46e7c285d0e1e6ea7aecc2af1a0261b5a7fd2949fd5354cae02c41537f979d907faf7c58ee408fe16b718855ad5b9c870a148925999f130d19d246e5286f7b9dad8c80318010abad5de49b9c798e54e127e74fcd32a3fa9ed2dad374860e53896eb06d728a65d73e83089547f6c394fce75ea61a87dd7b991a72020d9e19512c1fe9b1f35d4e0916e90082d7c049760771155d56c3398f744d7ccbf0c9764cc7fd259cb9155d195e1ade67057fdb6068819f64f0950c397aaeb9aeedfb8559694cf576484d3a3cb01a1cc6d1fe5ab3d4049cdc70dcfcc8ac0828409a11b5cb0f176cbe3d7e316d5ac9ff8497dacf1b636d2f84efc43ea1e9e76d7c772303464d7de032d86b18a74d3b096c9af3a556fa1f19de239e71946033db0af9cbf67099a7085f85af4104cf393d0aa47c24cd2b7376365940b168930b0065c6016ecf50c1c60621d038932ed75a7e86029e56cd229ce040118829b5e5afd9c832db852329f488bef8807226b4e5ef9befffdfe1ec807a2e1206870da85e962806734d688759d60832eb12af7bcd7f58d2d9aafa65d12a66d2184a706d84f548a79322a3f31787d70b76bf003e6a97f83bc967e95e93ce79012b533d33928c46ec5f033cd6df12519d9caa3058bea59f2c4a3c5ad058576dfbc2eccca703cac183cc84c2d410d6dcd9ca7ed7bc3acaf23636c9c5ef11259bc8da8d3641cf8096931d2301473ddb4585eb044850cd302f66735f34fe86d018e5b89f7770e05cdb51575085fab8bed150f39a45517a058b944d87f00a24fa57c3ca249b7913f0b4f4d76d89b19a0fe43a7d66863df12c5e66df6423e1697f8f8112f2ca9d24086135e329adb4e512b12208729492b85ef3caa4912d10533e86024d4b6252f6496f338d905f8168d9586ea1e7f28f30b4438392fa478d108f6fa745e83c81c2a2a7b85e775886e602ba878dc5a854f9216ec70c745a8b42d4ba7b060581db11df2df69f52d699cc0648dee869d645d8da730a814bfa9b8ce99a2f1935b4a26acc43b88d764c44824bb4ac04d9c5cd39db8b0b09d3f5e82177aa16694ecc44783b947872feb6fb8bca4ae8e228a804b8d50061f375b4a0ac2e7041bf65b3020fbb2bb4bfecac3a74cf1d432268b99447b24b36053b6522c7299bde29afa27d920427415f5c9f5cb86278892114ee9b0dbbdb84104adaa94689c412ec674df3aa785f51bd2cd2042441ea9838503dc409befc169ced48b78318a122c668a67fadb22aea4b4e38356fd8edd7171c84af6daab58400a903d5c7c22a19d734f2f2e4f6b5a242f3cc1d83325fa84a74cf96f048b5461f2ba9e567361442b133ab582eb1643a4c2fae4f13f1cd3afd3cba77cabdbf2dd6714f5703ea285f65e60234ebf0e0f647f9d35471852c8541b8a18221b3af2d5387dc2d7ef92dccf675474ab272831e3dadd71d6ff87310c5698d26ec70676dd05c5d5ab9f4db664c2f6c4a90ffc16f75305c83b2fdcc0cfbffbe71b7aee765e11abcf491d2cad02fef1fbd5f094617bad80f7609a403665cf15bed38843a5e0b253ba082543b43165766ae2b945ee8b7218208849c0fbf2734b81b23d9dec2b0e21b68d43d279327afd11e20d510537722d7f1766469a4cd1bba2085294668623b486d2fc79ca7fbb295a890229f9cf18a6aadd5ac0ca7706d72f42f436d951666d5259d02c3729b0501e39f618e987fbcd09ef828582cb555d663a7128c08cb793ff18daa041a865f9fb0b129e13cbe25f2a8305c58ca47587542e92f7483f09f76e3d3d13c726d7e4a6434d96bfd94bc0eb2203980ab82aeca307c21498f92883929e22a63891657449ef61a6706b0a6e6195102c3b3d012753515140a42bb7fdbd97d5d2cd542a0a2193dfb5764ec3d6f3f40468ecfb9f5bc4988ea144febb0b030fda3ba6ca51945d418cd0cad4cc210c77acd4d1d7bce6c2f833c06426e6bc22e36f4ddbf14da36b7d65f9e9ebf6d2c8037f1805a0bd13418d06c1b158edc55af2b023283447f895c24ac7aa5b5019800df9850cdccda5d93646bb6bfd7cc23a127a9bee91ece511d6c7e951ab1e87af967779afbd2c8d91ba28b782b85b87453a7a94b2e856bc57415c20cc74703aeafda6b712b271b0efd5b76bde1e5c20bba7a6a763fff3a5b5a39aed1c777bcbd0a26337976e73d053abcea1f8b194e9165f8447c31df3df6f8f1d05b95af30d74d2bbf6560b5d0cf1f5cb5384d78000dfa0379522999e2575136060a524c9ec44d6ea9d26e9de422c3dced18bafcb85aee387e138534f1306ebc0c0841fdc2ce202970c48fd632302244803add09aa1ccabc4633994ce8090d1f44ab8b82baff752bf301c9bed34bee56bdc58fa96c51be62f2d1b0391b9e93122673d5fd8e525f432e788f84a05cc1d06efa75caf0b22a550aeb771523888937b3546dd159c4a83d3758e62dd6e984f73b41560cdd415f369f1ac29ba3e6f9e0b2eeef4e5da9eac8114e183a4f8c4aad5c3a7f028f60de7767137cedccb39f2ffb13af6c407fd1667701e69d623e7a9da733e83e5cd24a0ce9a6147bf92094ac3b828f37f9dd999e50612187a5919e1b8dd9270eef3254e72fc9ebb0458180493df1f6737ab83e566c4399720f253080ba89fae1c372982e9b1c4fecd85857ad48dabd66fb7a8b17b919a623ff31bc90059b9aca26ecb04a9cf9ead72ac1363cbb86eb83efb37ddd7ffa03bbb22d2e11299756fb5e846cc258d8447a50fc89e9be22a1bd18aba1f4f1b28ba5e565177d26666f96adcf40030d8b2da8ca84658edd1c4747dbc82ce7a228673581530bb54e05b2c993880bad1af67db0549ebfd485c9f0b3296d7950b6e916a3dfccc7560bd86dcb93fcc4fcfaa49287b39bb0f71801ff709a803076c834d0473b60180ad6baeb7b9ff1977b156010b4fe8f9af932c1f5d0b95649c1a7d588ed4504c32014570837bc4d8542e97ef69d5d29a7601855202abd8f0cc0685af0f6cf42ed06f72fe7b87f352298cc9c42d3cd696edf6281f1a7aecda8cba801f38ce2130541bcc3f3fbf86162cf83faf8d41ae8338ceb9b3adb9164086fa00dbfbba63a2dfb64f8fefb91e9c6f73fa993e6031353241b7bd3e5cfabf316a4b76638ad24c966f2691f5a17f6d4100876f78ce654112", 0x1000}, {&(0x7f00000051c0)="43254cde8b0c78d615fd8fcd8e5b9ba25e154a674732b3b654f4e8e624060d9887dc918b40ebee4a5410c42f56daa15736d14e7d07c227712323262eeedd9d1d5fc1df34ff3758a2942d4757c2fe18dccf032b4e54b623f4a03dfb497cb6f348c4530382eced3fb8df7ae7386c64a88dec322188cd8dc6a712cd44ef5860f03a555e19715969", 0x86}, {&(0x7f0000005280)="619a7c7039a8757bf9b9bf673d3d538bdba5e62d81aa68c3838509b99aab329b502480706034ab05e89e8ca8271bc7decad86bf40c44c0bedd991ffb320b582ae75b903b16602aa1a1df65b38399bbe054d36735bfd6b7c79a3d030233ac92b931b33941dae166da76867ca8e22f4a43e80f4c20241afc00ac4930e9d39ae9af6ce92e426cf10328b1f151885bab2648c211f2", 0x93}, {&(0x7f0000005340)="54e0594c283f46d3ee7277c6c9f9be7b7c4e70235eb0cd6f35ef63d862ca3904bd28c08b6dcc23eae1d079759d00554396873bb5df64d8e9322f3c73a04594c28c5a8b85fac9763c974db56db79e5d1220e2fdd4bd549b541bbd2865e581c904b3c0830ab6943b1e31e40e99b94f16e7ccf3952b694103b33796cd1da9edf058a07f24fdc02cea8a42c742dc269398306121c29cfdba0f9cb782844ad4139c8092b69a4d3aa7257fa99c2e160b6d3a7cc83b83b5ed4d9222752efc82d191c06863d57a92ab6b3832a927", 0xca}, {&(0x7f0000005440)="d7a7bd523ebaec668fccf7dace90c7a03069fafce0c65013362801671964196468ec635abb86c376292982282b5eef22fdfb1f9fbd3ff2774b8836a6e1ab64f0a9e8d6b90efef6bb9b39df124ea3acf90bb07bbad9482f54c8fb43d3bfc1b06fd2f0caf95ea72dcd6e549263b036bb87d558db86bcd41a41ecddaefe30be0a02fce13620a2a5f2cc2d7c2d918c369c92bdabf69afc748814a842e5a92c8257bcc02220", 0xa3}], 0xa, 0x0, 0x0, 0x810}}, {{&(0x7f00000055c0)=@abs={0x0, 0x0, 0x4e22}, 0x6e, &(0x7f00000057c0)=[{&(0x7f0000005640)="06cd27a3aa72517650df2b7fc28c59dd87e1f4b5254589eafac87b316abcb738bc2a6cc4d8231ac76ecc9276e01d6f6b5d74d22655f40e565cadb5d6c979f20a3a36e35c8f39fae8a88cbe84cdbab024811080d5c3c3a6013aff932bf3103701651400e47f53f93a51f0e031f1cf0d70acad223755a6bea93581ad0f86ee2b395e26c1409ca4a5fae54416fab41399b0809f9e544b02f8ef48cb994301ddedd4ec1756315fc5d736", 0xa8}, {&(0x7f0000005700)="bccf0ed093edeccaa6a8d817a0093e41cf9964fdf3c75b0338ad26a39c9703f6c041b1a249c736177aefcd3113006ba00853ff95503928440a1fd238e21878d50d05e421f5c4df49fa107bcd34639d7dbbc9a73ddddb84bb8143b22e0389ccd584d87f69736a9328b229a53cc8b3e72de1ec7a2ab6efa7c4f18ae39a253f1685a3964f3e803c6f", 0x87}], 0x2, &(0x7f00000059c0)=[@rights={{0x20, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, r4, r6]}}, @cred={{0x1c, 0x1, 0x2, {r5}}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0x0, 0xffffffffffffffff}}}, @cred={{0x1c, 0x1, 0x2, {r5}}}], 0x80, 0xc885}}, {{&(0x7f0000005a40)=@file={0x1, './bus\x00'}, 0x6e, &(0x7f0000007e40)=[{&(0x7f0000005ac0)="aaab01a2cb7a013e3f07d6b208c3874f32e634d405c2b50de8b0467d1477ea617d62fac07beaaa1880a9974ac11eb532866152c84e53d16490f44313e38d898a499c0b16a9ee4e4101ab855fc7bbdc2443c91891a09a78ed09fa8623c9b5a610fdb69b1615125b68fedf442934e7ab944943fb23380e4e9a97cff096", 0x7c}, {&(0x7f0000005b40)="0b4115598ef529e1e24436b2867011614832cbc7f4a1585615b1929250f726856af66f3fe1f84d76a8717653858dc2b5bf2875faa34279723316a848c296c928bbc2df1e9f2424362e3b83eb08892b317c1d9fc272b242a4292da17b4378ff8c9cc8fcc72e5078f81758f766fd44b4b910bc18dbfab3903c65bdf88a685621c1cfd39eeeeb19cd1d3ae530741e8977efcffb72d9fdf0dcdbefe7b036ea326d3c879f17", 0xa3}, {&(0x7f0000005c00)="adbfdf3a39dae5809e8491cae8491038d1d97b8a6581ecf5440afbbc37cfff6c95cc8847b7b07758b228d5e1c1117eb65423a98148676e4044a0a541a40c382a166fc8d302695cb84977dff8e101564eb9cde462ab037a4348d6d0c68df7a97db6eeb7692bcc9960562e313513f2e52265f60df3988590ef3a8e66a9d985f4b495d71985b3e9554916dcfd191dc78420215b9be08a9c0c557808a978a2619cb78dbe363a45d8b302424815e9b18b8f921c6c5f5c25f314de86cf165de0d082b54dc799f376b0115c042a8632394f328bf6bd337a4e7606509dc845f7738db67626e1e185ae51f63777000e9c49dc180f6a3d6b7aa6bada92d4013c5f3b8924930bc88775db63c43c7bde0f143c2e6edc273607cd07dd3d2fca1cfbc8785d522120870519632eebefc59b9945a3b373310eaa677f500c28de572ed281e364ddf8b79363b158fa6f32c894d28c757811fbe023587919807ed4a2abf542f3a17d41f8d14d8df9f5c499f97a5c31185645fd4e1a7eabad3faf26e9e178ce41299cd370a6f7b878f84d4ccc5fd230c16a258f2d83e0130cd7b30bf026dab4b434dc967c8a5a7a24b3d0f4010d51ed74c69aaa062855052bdcb758a64d892b423f81b974ffb0960fac63263fcf01e124d572da0b63792c86c6a738e26f20f5711b477f019f2fa9cdd303c9065cf1baf116cf30e959f789ce71e8bf6033c2eebae9003d459978ee65af4405c4501edb22ae3c673834f529f01fdcc3c818a70bdc6a7ee7d53f8fff340521f1e9dbd913a47211e25e8545fea3cc840db0956f38338ecd404e488f97f46e969fcd262a445ae155b9d3a77a13e7432ddd6f4f34e9227087bfbbbf5e9154ff001c583375de8b03da4e1a735cb30ee5eb09a3f537940118c2dbc9d762365b2497614fbfc239e0bfdff0f71a283f20e73891ec72a1763dfa943cfef556e37c688ffd83cf1fbbb50b83966461ec057e9ff719cbd1d3dfe41e435098bd9280d2c43c0e87d7839c1d2761e6af81f2491b9f9b9eb4a678da67198a08b224e82c15db10be15e0883ebcf53b69db9c7fb946da297cd1afd5941c8ece5dee1f943d6281742a07761c73794a7c1da9a5f59ee2798dcbd5daadffaca563892ed2286cda027ce0ee4e4ae05b0ef574a408b9dd753b56beb92ed24da15be937c43f0bf44f9903fc0dbf31b8154c9e387eb9c23652ce016aa1098666ce7f7460815b1c5577ab7fa8bb7e647017914daef6c28d656f912ecb3953fced3bde24fad6208dc0e1fad5b0a53d3adb477449d0863057b3428403ef902140a69ebdb796835bcb803a8f1a0026befe17ef4ff67560576f7063fb3c32a87812125d324c7c68b1eee6fb4338f0932803ec352a1b916b176840bf81eb26f0ffa5c4c5bafbd28da73a6a4169eb68fe87d73a458da9b78c9237f404c9e700e5ef943d72998cb8f43517a36c16ce2b89239c4a5ab738d4854325bf191ada1a7891a15fb3fb03f01c5a3b044a459fcd9ad6bcd2d51f806feda8feae33823a5e500e44bbfba28ef713d3b287b179045c1babe9c463708bd291bcc9d9653859642fd0adeca11689e3d1f6a827e696d4c5bbc0e5a9140ae6ad9577840c75536f48c1638a41db967822ee85c1c16b908217a61367a15f4dc1837f1c1e318c6608864614756e6915b5981916c84b22d824d116ba669b87f3768a3dfd6fb3c3676c89505aa82188760eb134bee9c36f641894651d569e15378166f0c465fdcce64cdce5cbbc0404f706e469ce4dc46457e33be5b2398583a5abf3ecb5e75a5279fad7da9ffe1535dac9a8ade276b45d93c66ad004ab4a48f52ff019e03a9543642f99fd5c0281689d08d19217c4f784562962f1fb2ebf8615e2b3720fa357a4e6e4547412b123ec5f283294d6d4148a4340503fd94c00b0370c6993938df861dbf5d60bf03f055231cd79f125f92c5bda6361da4c4427361e333388c7948aa17461a9a069c0924e7894157fbde45e0ff1345d970b44e550d00b1d2ba76236fcc14f3c46796008fc488485c38b106eca8f62164577cd8bba074d3351db4c1a192343c6db9d21341bfc53f8e55a53e65f43102808b5cac0b2d5250474c12458559e2f51e8620a927c3a3257877d8446f8a197f21920a604794ec78c14c0818f486847745c2659d8423a3b2f4eb73621ea6c7a2196d8b7ed642b4f29ff1d52daaf99c66ee3e216087c947197a208c735d87c54c3c2004938ac832f73e8fb578479707c196297c0f47982e76f5aac7ae5c08f4ee2db4c4df6b09517b4c5cbcad9dd7244253fd316bf9a3def009eab37f90e30067ffaa83a99bc8b0653bd17e5134736f4dbf27babf7223a0e508dc4cbdfd04041fc7f5d3b95b1cee781bd7d6c17e14a50846cdbc73f88dec71ff1dd2e13b0011d6ae72f3ec479871b16418d6476a724f492e6f3646fa144eb1e29fa0332b1ede9fe86c046353f01a9e8706a67c93ace8cd28b92f6a5562bf7138a35838fe8d8b5d5654f0369df3ebeb273a5ae10ac0028dd068f8f10192ee7e0a2dc0ba3686d395e2fc3c1e0cbb9c5792dbd6bfa8957f6ca7b3efa3f6473dd84e8e8e1c23ec72e2b8b3a802c40fdfb615b0706931c25583a8e7e054d2fb267984235bfbcdc5cab62cc9c1c44992575d3254207cc5ebb672882d96182d07a3ec5973b80286da3dc1429ea1d5eb4ca2d09e1d9407a5d3eca03dcfd29a237c45d996b810e6a697098e5d7213a320c04ee805f311b70c6b495b60f318128f5da017b579292f75b219a8f5db9dc787794485bb27ed590eea6d7295b273491f647010c3b3bb9c0500a85cede2a1a9b8dd47774e5be84a4a713968a67475394add31728a654c976ba6f2b23ddcf774776614823baec6c7f513815fc4fc65800b264c3813d841479a00f176d55d31a4918676139bceff725c7ab3315fb50f7dcdd1fb1abd381a4ca3e9a7ffe7f46fead14897751450c4036606e19178e96cdfd67725582dee04efe34b317725b35827e9cf63e7c58c4c5082523d1088825745f7fd454c48b5b63f239d9dcfe0139c7c5ae20a43de2e91630c23312c0f740f39af32661d011a80f19f7b2018c032535d52566384694c30688dae58afb7c9815b4b4f474482cd916dcff149671025c2732be0d8ec647226b6f699f47d962747876b56795e606e978e3c1f525d1d195c1f11cfc9abe24214e01f644e6784a89223dd59b240438b19e54e5e80f16e7a2dc04639555d4a6126baac00af497fea40f00253e813900e9001c806ea3fd2b8d8ad188cd7a050ea2fbbb9d94a1fd61b942bb8d03858b33c022a913b1a9b9d6428537de860821153a4adf98ca6c0b9176eb55d80c9d0187c89c290f16447f6692ffad3b2525c9288df0fbff5d901e01ea459cac84d7e15964682e755f8100cb4a064018444e8182f656ed492fa3583cfc782b388ba48c25c4ac55f7f05e9efa776d3398ee88bdd8173b2b3e4fed900b097364878dff7b7b5380e2e48648569799dcaed92ac8998a34a57598673d194a63def8acfcd32502c74ad81345b471c380d22d40e37076c04764d5228cf802cefa38f8b67a95063f328bb7728f2abe9984bb2f42c31b8435542164087b9f1e4768cbd2de6411ac673909c7cb5a995250da1c87956d9933b7d57aefc25898fe245f1e801989dab640c8624cc522637f287b54cf9004776b4ab865c9bcaa3b100029d7330af6afaf76deb0044ec4ed4adb09bd62b7212f57eef448ed6224129345bf92b211ffa6624e3d06910a16cae5f21c345d030dbd93d0508a2fd9a8747d51c327e45fcaef210226c19487c92e239e3ba98cb5b0ddea9966fa0cc31107ed34c775d4a6ed71679d261670de56c148c58e87105bc609573f415ba505b68fd07c0cf85b832eef54f5ee26de4e74653f5212298d18503ab50f18f70c0b2605abb1b61bc554a2b3821fd0615b882419fc2804d05e5fefc02ac945ba669dfc8ba756ae397023b60c485d4c3121799feca17b6f9a89e06d2b58cfd2a973661233fcc6c951d2ee2a54a01d30b93be4e8296994e5513b7db347fed88ec95891ac9aad094ab92a6bb509b01ce80c4ab2ccc022b3dd2e3ac95fca56c2e188700e425bebefeb09e3a0385b2f41ee10c85c05213d20d0911b808c04b50449f9a425ab142b9f34d7c1608999f053f2f99de083624ac0d7fa066b68ec055c4c06595ef4d4bf998a91829952b264b23590092307916e7f3474b0f9cbb79af48e2215cd6f74c3330a2a349432a762bca76fd10587b75a1a834c10a0d1af714a4bdb700ef2cca23bca3e6119bddd6079bb6deffd6ac400231eeab3b4dc5f8c995afba0ab75b424059b6858eb5e6a3c7d49279fede5532240335d139beb50977c03c2c989b7b836055a684786b3922d2019abbdb81a83f77c99f692b55fa115e88206dbc7dceaf864cdde07b513ba873164453be8bb6a3431c479fbee86393f053e4d15c551eb088a7fb00d9fdb0c328fcca854cba894acc60b729e513a6c1304bbded321f404459d3e50aaa45a43457d6796bfc6882b3ca7f40467c6d8f4e3a8b9bcb6481b936373970b05fc1a1762e30c51541d4b3eb0c957ec48a4c8aaa058fb23f22e359bd72e12e686b0a02e05d8fb1f2c2b985566df67682d4252c678b346d649797905081e4268acdb90f2b2980bdf63393d156bdee557f312f6a776c674c831010557f9c898f390a12643fdb3afcbdaf66dbe7ab28dacc31ff5b6a97dd9ef2d567cb5d02f388fe0418a404685a3e1103deff60a492ee78097c069a2461826b7e3bec535ad975f4a3469e1c0e549de8effe0d812fc352b3ef7753d83cceccae2387362c1e26b359cb2face968b3660c6b4b2f366782509907aca34db04393f0f67fea45b7618de61c9a6db8a43bdf6c2bb4a5d992bee79ce5eeb591bd346c0276b61353486611e6f1dcf8911cbb5036e82083e4741a2d2d464c771d9436c7d5f9779362d9bd23a8d81fff8eb8f69c47ff84f73bba7bf2d6712b455334fd19f45d840c4f49bb729c9b7db421a6aace4b7ccdcc4c5df1848d314c7954fff9e653d570dfdaff56f68f145c45b5aab567eeb389273d72d3d49ed5c58c0378bd5c5984a6b30f185dcc141f5c6587350edabf4b50dd7d0547b492fb2f1fc8a916113f0030a9232d58790003e7520e35eb4082421a8bfe854984b132694f57a1ae1e98a04b405deae658d179c61b1bacdf48bb7c78b96a3f4407ed18803914b994dffe97e6de9f8c0e06c8f440df854f5b0f6f72aebf521f46caa93c06abbc30d4999be9fa643c2660af62fe118728a7f1982a8e3d69567f9005d0cf6560f8e4f18cbc9bf6e11c8c6f1af71af71f901a5ecc048082b26fd390e718bc7ee12fda66d3de574fc9510faf86ad2c156f9d29ae69066cd037c6ce9a01fefa1abbeebd326632cd3603f385dea1e44ee2c29785b50f2838995bec606e1b80cbaf065b455ce49ac21d36aa2ea14c3f98d8a5e9833ab01f0319fd21058ed0a0393bc3e0bba2737256ebb15f512bc2824bfa5a3949671c54c2e187570172d7aa3f7e5ebe75726e5092979a187814829ec396a92a82ae5bce0f7c22eb76b5a28ac0c530b2f94bd22e2347d5cc5db8421c05cc84917ef7b5e3dd874783227a8600450adaf3e6d1b67d9b6ef21a3b953b7dffca12aa10decd7989f77b940f79248eda41e9c3f764afcba1b469778d32f9d1007c5ec9ac4b0df807bb3d589eecf82293be44cfd3ae4fc2847ac869c15176f3a31a37855bb9d30f830d296c1ff74c6c8be1a71cd195a0dfbc7033703cd07103cbf2abc8a", 0x1000}, {&(0x7f0000006c00)}, {&(0x7f0000006c40)="a880da2fbe830b5f056de5d9b089fdbfc35a99416f390bb2dbf41e194e41fc948f1161177bd6aee2bdae6ad2f0da30f5946ec781b6c1dfd6d6a9b89edf04013280f40e5a8f3cec54f4a332fcaf1c5a2bc76be0801ec067533f973dd6121e9c9d51cfc4ca358545faa11e7def7e064c28b4b3942c9b1e7364c65c1d3fb2d8ef0b4eb04125b3d3b15853db79036c62486aa74eb9b8a89f7970900ef2753f898175d8753b0466de74f21c4582f776dc4da45567a584a9e54f56d96a340201c445b2e98cb951002513991086e8c4995eed64ac95695a5fc636333941ae30dc26133dcd7b09bfab2fa4ed66869e545ccf9f7394fdcbf5a3a8e131a4f1e69b02f1d15d6b30032a140692ceb90ca36ca1555447da6f7289a16ef40461aa5aa622b8b523bdfc680acd36271db082625bfec23e92a58a0acbe93d2ca8b55894fa38bdddad617d0ee671586d9dc1a9d01bcbb264406adede2c9f7d6815cd4ff4257f38b219f2ce4d988cd8b0cd089466868333f2063f3be488c4c210a493d4c97fe0afa61e380ca19f302edab26f8183546420930401606c694a727854edea4d3e4f9a7abedbbe7b345ba0846457e834d87f690323fd59be64f1a048069a462b3fd76e9e7b5cc1c2ce31b5385a866e2857e43641a177c510da115cee5db10001470272d26597d33dca5eaf74e672a65d150a931634e086cec09fa7d1cf8e747276edfc4658b48c8f13e348c67e701b3be3551e3769d63e60a03b1ccb7e697dbc82ec1d0829d1c83ef4b2dd5340029b8f56ce69653cc0d214d844ffdaa0726b2092542e94d453a4fed194a7589e76ceb2a2f500c115b02f851f2231832a276380650101c30dc1440d9dafaadd6e82b329a4af7cf875738b0fbcd2978b8cc127aeb4c780c88218a153605e72a5ce53fda7b95911a53b8cff8e58601005b15b281f6359665214f90fbbfca636c76cf81fe6fc5baac64229bb3e9af5c3f4c4fb95bf46f61b0654f3c124f3ea379bea241836aa452396522ff0ee5eeda41affb6a4adda2fd3419052b9eac4adc3b542382a036da94add7ab4518ce669d81f05f4651c9d9f8c09eeaa1c8b359f139aed14116be9523aa09cc0591038f9329f9fe8a51d3ca79bd121f68f9060c64eb5dc05524256e1da82b4bf3a239ebbe9118c82b0cc6b7ce2a732b7c992bf08e9ec402611c07c61f3a229d11e9aa27975d8fd8f5d6ab593c75e2c46b35a9a25b5ff3c36cad021ba56489e7c33ceae0ca3af3e19dc594b5d65a0b572dc95ddf3fab53b0e2382ac7706126d0c236c3c9d8b1b5b26e7f8e07737be06b99be6ffb0ceadc65a2c43eb15bda6bdf2d73b5b7a0f4b95bcec4566340ec3b8117654cb73a690fc58621c427ae822468fd749e8b6fadc2fbfee981659ec42cf5fd1901e8dc8578a803af912fac2d842f1bf2235372618a22c856953082409b8382f86e887ee3c77ed293d9b06a2b0064868807cd6e71a343440504357f1b6fd5d832842ee318c250d11fc0273e93d48e60669a2bcb4ac66dd069a44c8b3401988fd05814d2fd08332e0c6d6ff931787b9868a3166d9b87bb59987ae78a84c56b561327eeb40f34918ca40bfd4ca30346ba65395b6f13469b9f34dbc3ec27f1966ba27818c5fe4b1daa83328b5c2a2618886b4dadccd9a27a72fb6d7db0cda65110bf501e4f529912ad989ede0384c6f353eba093133f8d52adb9245ecd9ca68020075eb05577dce48e691f5e32d83374421332762fe3252240716e3c3426a3be7e237a85b5bc92f2d66a7f128fe27cfcfee29f12e9279b2b2a09d52784dd6d152adbbc96bfe9210c11382c4fdce67327477c97bac7bb2380cad7033b70df6a3c76c5c6bb471d23e4d6aea9667ed44e6ee4be215e7093143c9bbeb2cd6b4798f02d1cb176571f7e591e074448fa52ef46a14e46f596d34c5e84e7d65630881c1a444bb2a4501c7cd8c2082d9e919450db0c69a2bb08ae0dcef3607e75ba5ec26c4fb061ae36cce39bbfc492e97c0773f548958e36a9deb6762a614b00a5cf5592b1a45bcc3c80ec13868ac17cb7e35ac84acad6e76bdf2b9ee948e1db53e65932290d9e0be306f2fa0fafd4c9b3577469bd0af818fb59696aba231ee5a83e2f613dafe2621173a4176a6b48ee9d5af775f541fd43377b7ef1625461f29e605e06ab5edd9bfdc59d4dff68cb20f1f0bc9a98e0836d8b7944ffc0779b7d2c18778a9c9433c223d780b9b28f0eb1cda54867a1155126590a1912ce5814482a9bda3b77e6a6fde3e93b27dc2cee6eeaef76a4e2406023d7d13246bfa337c68985e6623f0fd6b5d96e422ef25e98407130eca2a25c191115f36fb0edc64d9cb9f16a391d808885d3db0eeedec387ad098eed22d2e9dc3cf90d3ab3f564012e2d7daff3c590ba6123b201e47287d134321e4afdfb54cac967c43c35ac01624bf17d4ea0db72a99ae6a070b832e5463e7e673d039762590d2f39a2922eeb73c0f1b4fdd01c3513be17366703fdecae6b1fce46a7dc8b4daf3bb3fe2712c7d8f9ac43bc182545504ca5d08e1c8a013275776553b1f25bf1e0db7b284af713b788bda880dc91f790e8d5585dc358dfc5ce456f9cc99ddf0a53b548f9c12b10cb32d87153c69b1b9b06e2fc0cef8d4d7a943a9788c91e06f990257f146521a144734c58049170aed7201d08dd538edbf314bcfcbd2deed6ca9e710cff1cf5f59a192feb6d63686907603e49e8365f872ccc70f8505ef73eef0928e807aa9d9180e2f4a28f0a4f9450235c675648cb49ad0b810cb451420c965134701086cc48ee01bc5e388f49bdf91ad5d4acfe4dc9aff3e042585b1a7e3db248f46f6418b16af08d40d38cc409009fca12c56266c1d4efd865aa3675aa7bcd8cddac816538ed443a7561084c28478a2017c784a1d44480dd070c06e30c3ccc2bd16f77557bdc866bd0978cbf8057e4f7de6527eadbed7ae032123de78a108c323ec307e677c56e0c64d0da6980311bd75960643c640f688ddfe75918886ed27251ed6f43ff3008f4889e3427fba2e765c2bd03cdecd24673f8f29d81f40c629951f8addb1a492f3d348759c212a8ee7601c6a19bf4b757be68430e78b98f607a475cb69e73cf47684b33d8359e3cc2e2641fd3d78bf07bc27b47715aafb828049ebe05fbf3002681677ef36128c27fcf769f02e564895f32a8f0dadb62cf1f1e35858ac48b6659f55a8b65eba304018d47d34e27905e748f6a63a6669046099d04c6cac677f0025d78696fd7200b9f8f8eb22f19367d2f6275736c5d16f1bf5e6c5d73861410360e2bb7d7798c97237c9c89a26c9baa5aeda8e43eff088d871eaa7094035e9cdf2fde123e72fb4827c29932b0f494e2e53c531cad55b72f7cdfd580732c156dbbac49f80c9e78d504a3006e77707664b76e583a808019ec8e628e0db42785758ffef4d5848512dce1baf725518d90e88e8ed9fe2528cc765e376fd2e1c267278fc9123ede1a13c0625c7736d9f4090809eee11441df3f3e524206c931852bff4cd3d71cb81031cfc520e1f23cd1ff17cd233e956dda2bc7337cce8395087f7db93aa00c5933d2c30d58f67be511f147d74255a972a4caac2cf994e270dfb88353170e74a33ac6c39260e35d82046373711f11c9bb6c6d81400f90157e67f748397d9af4bd1a5631d7840b6a9b3d260800886676c245a73ed017ec009253d79c379bb125a8380f985799d40cd765e84e6544ca0487d8eec8c4f57f2aa7f9e1d91d5aad5b68d5ad415f94975a225760a64ab2b840db18cb34f0d61277c3f34cfcd09805e4fa10e7fee45cd7a5e88004f065c21132bd1e95af1f207e0f1bc9430ef4f35fa457a569d85db7a7d41f55d1cfb56fb06b476688e632c439e67ac934120c827d253c4d821694250f0a972e57726345c6649ebc2c946927298fcd572b1e44f1ba985780730a3d4533602f89bfd73c118dae8512c3333d54b5bd0a58e148a022762def00d19d8e810978c9fcd02445ce5e7fcf52f2eed8312ee949850499f4e88e152ad42edd40b6aea30ae2f1568ad26e75c01fe975401d19863f26a3800d5b03dc526549b8cc27eb2a3822b24c1ba20f679c388e09255c509ec34f55eaabedbe29dbb7e48e4853a79e43ee67014b82ce09b87fc75c9fbbe21ae03677a6b4666a9fca67bfeea19d5fb4e46f9da7ea797c34d3f29e6f0d8edd6bb9471ce41033d44fa5b856cd71b8633ef3a0ac384b58000cfa0ec4d6a823382af024c38d7bff57ccf9b03b8d994332b156f13deb8054cd0da5463a00891222c3321ca3e761581b5af9b1990e5f505c7b1d6e4fa99d1eefdfb11406c141ad18253296b14f904e505bc898d3359fb48b9fb10360eb279136c7fd1e4f33ef855a4afde5ec2cf82cdb169ff122c81fba335bcb489cd1bd337dfbef569b625a0f4a33bb7a60ba912adec7b9a2e2e6de4688fea8206e7ac2530476712d0176b2611a5c09e0a615531a16a2a2530c207a18a9e29336c2c6f9bda769964949249de87926063b26908ed6778b241ea19ed09b267d58164e783f1aed2cd561a68ff68dadf218bbfbd543abaf147cd39af5f8e18bb4d191958228da486c2894712bb2e0d30b28e589b992e8b368d29740246b4f8d6a7260cb0e30344032d5c4f53c63abcaf6a4a3fe0e738649b71e8d451e6d50c81b43370d09a9828ad8699f50a83edd6f6834506d349cfcc347852afc5488e971378b045676af50a997b2418f1609d99b0668e5256d6d94c663157f34d368ee9fe16955585f62ce8179c2bc858bff4949f0a2e656e1c377dbd58c5260d8b79d7f79cd6b419cdc1ed953ea7ce6203b8403835789691e9d4870e38752ca9ff7bbd9d448ea14fbd3b189d605a541d45198f1f367a7c0b7af87c2d24dc52689eb3c8b74190781a172fd4c47ab1d93f1abea215593fb965bd342e74f822f2a72b7e1b7e614daf8077743033b5cfadcc05249705f04277c316fe70424241d22b97f6a8f26e98ff6c54c60f26bd899e3efd05d5a7da0ea178f649ac40a9a85b396d9b360af56425bd877efcb1db9bcfc52ad3acc7162601b1d3d8dd23080c06cd250920c6318e098a89cacf9bd4649f19487b104715c4e91d276071da347fddf18593c8af20796d0a5c23aa27bb94f8fbdf58ba1d1fe0d3cc9b77e198b2b6bcad4ec4bb4575ef29ff400b3479cf98313a275dfb2b2008ebae1db2c6a91fcbdb275d4c723b496b86480bfd4107e01d696ba255206d7ba35071d18bec819d7286d619e84e4bd4c04798dfb2d73a228e9377099357036fe79b212dc51b4f5fa8df4623834e8c976026668aee7c9687c93a5dcd3c23db1c6cae05b118df5b58e591b46d90c3c1385c6fe65ff1750aa6d6d41b0a1e8908552102075abb3ec168a8a38c48b06cab283ff62569a51c7a97c3115ba2477a5895b42179f74170447e154a2e53428ff9e02f7f243f775fa0ad4f1ec2fb333ad2548929a2b914005cc44967e6ce4152b86e2274cc216b639f3783d2a32c414232f95f5a5443c0bf1b0f90e6ded0ebda6f508fb06e64c4246832a8c03f9b24bb3f8b7cc272ce0c3faccb7e5e7ac9be7074db666f55a3284b42ce37bd3bc4f7fdd8c99bc25d225764725fd36a9ff98c533602d128469dbaa289ad65cb45caad88597a392f64cf5c703000499b1ef0e08af4da230168e31a5b59f72e0ae3ff63bb83042ef2103a12fcb50bb37339d98ad9686abebc6b40cab63fb5ac03d7cdfdb0fa3bb468eadfdc1e99e6f83f73cfd2d6ca99ce3c1a362f80b87241e7be4bebc5c6eae1a4b3599819159d", 0x1000}, {&(0x7f0000007c40)="d9bec5dca5453598ed287525132ce24f53ea487f3c58f39522afb9a2e1807bb6b8a425a96b53f67d68c83abee6638864eba3e82cc60f9a6b16cdac0d", 0x3c}, {&(0x7f0000007c80)="3f3f634c38971e1ce2d33f719bb6de5510b27cb3f0965241844742e82c743875e549bbeaeccd94074b3d9ea813116a98a7f5da058538c58497b615037fc1ac2942ce8da61d5136a61e81cc7e200758ce4af7b4a97217d69ec4be7f53543f6913190a85f2fe48a3386f6f04d53fc93284c27bec0babfcc5d21f1aa9c47a25d2556830719e05ef8b77fd0e7c1addd2751e158ff9f7550cba308ef72d4c53b23b831cc01c4984ba834c479db71741277a70480627d645b234f069df527fe0", 0xbd}, {&(0x7f0000007d40)="0b4299785d2711482fa1d52ea0ded7e73879fd9ae249534ae7b1cc83cd0ba5e150df16ab80dbac3f528797b96078b69b85d542ad7bca6e5b5039a68aa2668af0d115584f116bbc340410324844d159ee6086babbe2edb89714234483f0b1000da85241769420167680fba6e2957c93fa7119838e3f76f736c05f3dfb6d5d785166e9479273a8ac91", 0x88}, {&(0x7f0000007e00)="b43a039350568411c0a07cab8be9df40e88eb0ed369f35d124", 0x19}], 0x9, &(0x7f0000007f00)=[@rights={{0x24, 0x1, 0x1, [0xffffffffffffffff, r3, r1, 0xffffffffffffffff, r3]}}], 0x28, 0x20008006}}, {{0x0, 0x0, &(0x7f0000008140)=[{&(0x7f0000007f40)="3aa17a5fe6441fcf9e9fc69e01af490ba7f914874516a4fb058226cbacfe577bd83273448af2ed3967cb6759ee1d6b8524579884ebad2a6d5555d3ec0b8587cb1cb851fa795a835a2540cb5ca1eb67ec19cdebca186b3f7f3daddba8e36a37bfc61b6f4176329cf01a45cdd234e344929d7c900fdd23ab8b313831f271e1fd57eb00baf1df987777cce5190a3339c77ab882435fe4307420d55c08ddc83f2649a2382efb915e7ab34806a87a833937a5717c30887a6b65257abb7dd796de20377ad09707cd26513787c2a368423d04287d2cc0fa05ef42", 0xd7}, {&(0x7f0000008040)="dbcbd7980a5f7344e64ffde9502b8ca96ba102bd1b746a761b8c112888774124e30f642e01cebd639963bcf7479bb7fefa0c55f8b1d67c82bbff8627dfd976ec523d9e5e0336ee35d9320376f6e1b43835550b40ca68477cc6e8276ba447090b48d1b2ab6fd76e21eeb672ca59cb74faec4e7ecc436aedc6de74967887e26ab61c58c0718c386d8722af9f56a8320fbe96926ec19ec9590aacf8c831d6b198a49694f8852f9f01a83cfe7907f040e206a5bc981cbe050033fae6c0cc24ace2a26f09a38616e85c977512037d62f3cd5b5eaa8cac5a7d1137ee0372f00478feee6957c4", 0xe3}], 0x2, &(0x7f0000008180)=[@rights={{0x2c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, r1, 0xffffffffffffffff, 0xffffffffffffffff, r3, r4]}}], 0x30}}, {{&(0x7f00000081c0)=@file={0x0, './file0\x00'}, 0x6e, &(0x7f0000009680)=[{&(0x7f0000008240)="5230472629645c2a83bf49daf9a2eb4d24fa6591f37d205f3f4684d8674379ccfec41ddc2fa43dc3d73a825174420c9894e70ff98df704a9a9c2335db8efad9b7d2fa7fe8c4295351456", 0x4a}, {&(0x7f00000082c0)="42c7b67244b28701a620f51508503c7517ab924034c8c0f2ce3504b30149e3680afd56c9799e8e77ef6301ffd5b0814cb16175c6dd37daf792b8de6a1e0e8c099a520327447f3ac1ed356cdaf078652d51fc14f4952f", 0x56}, {&(0x7f0000008340)="5126fc44c251566681ab77cfbd7349b1e3ca11eec60598bc007e2312ba4fb71b0a6b9ea333160d86697d3063000fbebb7c44", 0x32}, {&(0x7f0000008380)="d7fbe62dbb02af7aa987a94556eb049ec8e1763932411784e96ab24dc8ac374a5cc0e889eb9dec56c1252c66820b129c3320080fa94b353c8eb18b60c38a7969aeab8dc46d17eb539fd3fb77fc46abdecb3fcd3119b8694ae44b7a25b4d7832f28146936ea1e3936ce018fee8e21cc4c0b5bdfedd93dd0b6070f3c32ef57e8f06a24144d9e3ddbf4061a73e81ad5df1f8b822372d33cb3ee5ffd3c5bef35474ab7c7abcb475a9d2d8c521ddbb4a8e2ada1f738dff6d6ccb44bc8d6b5acbb16ba5127052570b187209d14fbb4e7ae51c645c8ae00942af52f6028f8ed5e70050f5e968b2296398e4294259bc3af8ff0b11c8c8e7c293386004abb35e85fdd36fd72f5f7cb89441a93f5cf726f68a4396d708573435292acc570be3f81e94a69d1ac4b36fbedf93857c628a6742413bb5a6d26d5d2eeb965654ee66dba11e8ee67421bd63fc9d7b3d5b2910fcabc89d8513c6a22d4b023e45ca1aee29a8afa78399f7f40e069efa86a6795ce997ffb425f7a17160da766fa6cfa4e6055bffb5307bc74742a3f0984f6e06b6c66b6afa0c3e90c10627199a26de7843bd328615ab886cefbf0709759901e033a00322ab798bffad3435f2e6a96bb8457c68476db3f6691a5d35d257dca408d5e0cc90230081193efbc97b4640e224334f1caf0fe8d3b5d734040c9f3b6222f5efca15fb9e9776993e2eb10d81cba83889cc3844072fecdee0442066b60f7dc7314527debc3070d48faf3cdc35554e304de49591c9f9bc2828738e8c111c2a30f667d2d0dba2713cce173bdb6aca0780b718612d9c0f2292754f50073b41d69f1d858b41c0575c884546f2dd8c2936d0e54a59339af4d2297ded65f9d8de34af338868f99401a16b97321817491d41ae39645b6459f2062a101ab94bdbb9226b5e261d2988728c4831d76754612a76bcc2ff030184f6e77d17d7a5cec4140e3fc3719d33f26f754ff14a8dae23edb9828efd7b65adfac2930bd62996438984a72e5e851c2e79b457e7e102ddc84da7dc04e63b1f39b2d25e08ef973a96a29962c4ec7a90f89105ecf477cf4b852b35f8a4d31e8a971b02235da3d893e656fd85e3c45a532e16936ade4da0fbbb629ce911fcf68383ceb0d32b8ab7bee60694f97eb8c9b1f626749c316b22d18223abb916ed6833c6b50b335631a02ff4ad13b3bba0177c4f64c81a551887c01be6f535150b58eb28ffa6d940d988ac0cd9105dc77f9de01a935c066ea7183250e4c23cbdc83ef61458b5012a66d5ad83ab97b8f07a90110b2c6f5348fbb10fa0ba2ffe0c7cb5039daa2fe044df4294af8a4b73688b8c88155b9914b81a15fb98df0227d8632910cdfa53835690451444ad4a932a7ea1a16d4f7c337d8245c065e87f9a032e13b587e5c0f6fbe889523bdef46e476fd0474dca83d8852279ce090ee656955af216295580b4e3fded684d656ee5fbd78e981696b84669409a720f9e9c69ee3b220e498720f0a0a0a58d9fb4387da5a22007149cfdac9ca6d0f8a10a49e4162db8a295bbfdb8a03e0a6e43b5198b832cd906cb4d5e4962173f21ebace5ad8ff3f41e9c2c43b86e857f3ddf99ae367a4cea151b99c436787da5be015b095e426d0157e9d6cb7489ed33295e7b15b89490a90a9885858318563230679b3c5ed151983c103dced492a902fc5177593d8387be855afa32752747accebde65b30cdb1cf278cf77517022e13fed9dd8e35b0416cbd226f55fac56ea78e21864b740775e30b9363798c5e26ce11799853ddc01047ac28143df2de533cea8cb29bb76d5a61653e35379bb03af13de2173ea9c8328ef475aea5820f71ac115606f7ede3773d2c92e929b42c82e6de0b9445cac8635750880def18d1b37e6dcb37903d53e0c159c9e6fb068c33d167ab4a7d0ed080ceb1439b98e2307f898f9989adbe6ea1b77021dd70abfd3abb2578e922d961da4722353f9711f61f812a906c72b03370c06dd3cc6cffb1303c8bc4a64488171c1f078e5e72fcefaccec54cfa342c960cd47fcfa3c8dbc4c87636ed8b5ef7fee8cdd790e85823ed2a691ed356ac7e38ec72e78501d3734ebff3b9a7de4422a05ba1d9cad8fde3be1a6064e39c0a4c0dff377105e7707051ab1c2b39c93f3beea796ee37f2c6c2781f366edba986604a7513e54657f482d220f7ec64c835f442f9d286b0d759ffb5d6268a0ce44f171cf1435ceed931fc124485e0be90aa126c85189a6c0f1c973662434cc68b2e48e8dc28df3648f4db015b15ba3ccfa5d7ad24381f245dcf8038f601ea7691910259d296e806c4408ce02dd7d6f4f87f9985ed39ce06da13d9fc87bcbab41543111493e890a9662037b2ab9d10eed8da28625377e50ad16909969238ed960e9a6aa5dfcea4b38c17133aea0b027a6685b7597f139fcd1ded2af2f3ea61e3c328deebf30759f3d490b6b96c5848a8718d16bb12f19e8149384bf0f46e0504b13c969fb1b38ba0864d77c0f143beeff954aedcb6f9d0069b6a88d693db83b66618109d76d3a72bf6d7696b8b0b97d624d719f8090a7edf88cd2bda8effb5d2cff8f3a612116f8e35ee5c1dd9c500578b2a0f6889ae65cc44c4076ab9d2b7770a04b1984f90bc0dd59b7ace0483ccd52a58ee59208850f3744bc33e4e45927cc88703221e9976545bf97fbb2a23e401b54b5934e8c70c86bc56400e8c3f3dddfce65310c309cca7209e405cd355b85f09d01b846bf4609e988f01fb310968588f163e0933bd41cc05e7f53d77f9d428030d6aeb648102405c6e4782b479949c1814e45900ef357d3db9ea55ae29634b06ac9ab933254c898ae696d63a96f8a52b31b0878b80c56aee38f98c2d8022ab594953a2aec931ea13733d248fb680a92425fabba126c973cf772f514ccab90f056e16f95b5e748f742ac483d499eeee82a31ff67ae08f70a2fc1bdbce38978416f2a94f57ebec387c19ac767e4ea89c61c737fe9ffab44d3cc515a276e51c80b645f3592f3dc8bec4981389f4736f766b8a93637d05dea8f7f72de4362aaa6aa2ccc9fd04a54a4dae4baf55e1b430d840dc585a8845b5e5c8a86894947cfdce880f42d8396d75dbc3c7d4a2a0202c437d52b8f7ad4b3ab99373805d10eb4627fe66b3624142d19f9b8610eb3f627075b915673d725c97d680e95e656a9b6e9d0bb1aad192cef61f8107b6621268ed889e27b13e91c3dea2b9c2a932635b85c18f43a4140f708b96d3f7df8bb50b162145b3ef2361537cbe0136ae173f9230f72edb7f69cf40f3d760fa6a234bbeae8c37e44a1a00b54249103ad430dc1d42507ba96e32e80961d8b8feed0049c34d58c0ad826af2e39c6285f3ea9dba2d3ea1e100a3eef870014fb7c59ba97dfaab82a8c6d37a3cd669cf962e039e858c59945d75829c6debe5577613c1acd3ec0d7a639662dc0e7423702bfa69891ae21bcc025034e1f8ee01faa9c00322674be407d339a79268e56b5b673e85d9367d05469c5bbbe9700e3eaf0566a1ce92a3681eaf0198d1fbb7973d891b413b1f236425b1124a40048ee3442cd0e7daa498695b735ec27deb5f7626add16489c7cab7e758a9ac1d2302626731bbcdea4bdbb414d7bd5cd7d1413c817ec92547859933293ea09f53a46393d92c48b96290d43e490c1334705904be21914b50185caef9b528d29d7d3f4d3edd3fb7111ed7d4c26d923c20e9c3bd645011b27b1a907c7ea6921450212434ddbfe5c3287a544ad652d7dbbc5515b1f3c0c6e716e8743709b0e0bfb03ec8a155edea5ab1e838647adc376d7bfd8cfd6c984381ff9fe57b60246d0ce5cac7fabcaf99d870e7c7c38e7d933a4ed4dcbd3b4ebfcf628a1783dc9a4dd682d6d031942ff38ab88a5c95f370d13fcf28ef4ea726a6235ae7f94d0e0adb78fead7735f54589386132ff400bb502196cc285ba64abfc95657c479266f16ac636fbdb512b39ee727414b9e41e253a119159585dcc05dab218dec591f3b27b9b2f9e2ab2e0d8179fa464b9f60eec3e95ee11b04c3a24b27abe23fe0f613a0ab6f4c74f4f144f2957bd62713a3797dcda012f410dfff8afe8e9846a6d9641a13650305a4f544847e14e2025a6adc45a8137b184a0e2dee693ea581c8532053e57458b96099954cb211a529712b341952ad9c0e41afa7618ce9b9e057ac4f67595a053f6eec615873092496332c430c1ef77e8be645d42a374662b1506756f8e37294744ee0cf3145b78e084b30675512140cfad39f13a5df7194e16a62a40f653cc2d04d4962d4a77d03ec3f6c761a14e550d119ab6214ff2c17c150b1c0e0536fb65b097b51e6c0fc7dcc83b9a3a2b1258afe136ac9278645bba91bf3aba80f60b1157970cc16c8c80bb823da092b4046d2b45c1e069e358cac3981e2bbffe88e5f2a0938066f5aa5552bc676ad498cd34d016b565b2109de1753d2911904188f73431b36521a46dc335502e727e0efe1e218196d0d3017d38c3c958dfec64f9e4ec25288a0f27aff67b2c4ace4e2862c79e80542b3aa01b49670190d7dc1422a8090e22f83a2d39ed7362d7d86732a68f64116b4ed7c8024b22b5e1d9664512109c1d8c144305cbeeca65fb594d4b4a8c3f0938bec3ea2b33ed178e63e735115019710317eb951fef41b2818251ae6241592a616ce9bf3a07b5aa341b247e97191cf7ce4a4ff9b0ea894f9388af38541bd812fbd674ddde89df50a4c5e800bdf928d18566901d30eeb85085301bea501efa500ebda2f4b7648a0890388c0ba2b1d4614b0779a2448bca0393c32dd96b5b7bad053f7d0c5b26acf51358d59acfc9003141ff443494b29b694b5e5bb1e2d25f91fdb94fd3cd4c98c743d0fe092e8c38e4626ef862b5e1e2c9c8351e72531b95286f4d4c89e5c3f47a9d84c9051d2a16ed94a354925d7dba913938a4b62551f916fe1b981316be47d0f919899d82e6d9b365a396c9063270d953a633f78cd3a54d005b0ad6e013fb4fa7f0879480c62238a29d79f4f48dcb0fcad009120ee234346b7930aa20adf4cc778807f74ec64847e086f41a41837ae87e64ed13f67fc7815500edc46fdbff9fb50306e6519b60b61ffefac046bf0e92671a2709517da652c2bfc497367ef55e7ac6266fb67d23cef62bf82ac4e62880c001e9ca60bfc37f176c476c63c0a0c52f91d864c4c11c0362139b7cc427eed89f5d83e7f37faa36ede477b8905f445aa3f5ef41bcf439e69ecf15cc6478cec667e685027649d1fad4dc52413d797a00f58833976845bc28b8c632e6df48805bd5621d9639fd40dc4356b3f273d2aae3b2d97a2dad6993ac8c1fc005e64c0e6653772877bbb468708438a50401d9fbc9b9301b2ddc78f8cdc70f82badd5b40361de618fa6c1f567663ed4d853e6b9f6bd7a6f43bba07e0572ca5a66a879400cc94debaae76b2d7a386c85ef66574395cc1e4ba0f24828d43a59806b9a32a41eae9024e416290a4a964e3d9160433c69d064e4f48596aeea97aae44d486882186e0dc7498b10f97952bdfdb32228a906c9be47070d38da791c96765f856fd00444dceda2c809cd407e9d6f17a06a388839e776e41e11c513fad8df1a8a748afd98abfd03f60a754389441b3dd30ee715f0ef3f237b44aab1d024e8e96dcf78d0dd42351aef2e3f2c15835c29e0d7c3da3b4ab0ced6f3a2e82db979b58a50f4bf6321e8b6d0ffcfb8155cbf38d427f13524741704703e498daef8c9b6ae5e4a3b40ec7b26e4961a1580b1399688ec1d5ddbae6eb3614730ceb29c87fab02e90cd8948c5d299da32ede62b4c8c", 0x1000}, {&(0x7f0000009380)="4f9e61e7c3d9550663d571d816528d65d9cf2f5dc36e2d9df8d9ea06ef6ddae69e9eb7096df1794d94736eed8dda3df33917d0f604e2a8d9f5a22ab5875728b44a90ee8c3c35ef947881c1fea2cc5ad731ec188f866e09b0efca2a72bc5d4468cc55754a52bc7e152f3f6d4a738290535efadc570bfbf877f23ef622538179c971aafb12f96bc84664a649c6c88c3696f4150e8be52e787c9c28949bae2678dbcacafac9816600ee754e4f3b296c5fc54cd014892f05d09711c7743502ba7e969efec2150385139d38a507b98680611458b38cc43e690e5ef6db731cdc8d46ff5993c425f2ab3f59a5a2e4dfa78a11f2dab4fd88d15236", 0xf7}, {&(0x7f0000009480)="1edbae38", 0x4}, {&(0x7f00000094c0)="fa21ea9fa83215faafe22caaf092745c8710e9627f1fdd0fa760c21833f24a006dd1e23a8bfdb97a69d115b3c421dd487d0046b02fe6e1b3d2484641749433b1b38613b1a560ae4bbffd905e0197357e987c9974a7636acde407b165fa0fefa34f37b982cf97ddea484b950def0263175c7959617bc6c8ac7d7dffaab7bffa23c3ded0dda2aae30e9d23436abb0492387f71449d0965429921a4fde9f0363c60b25d15991d08f198339ef4201ef77c20a7b79c918b34416d13bd66db93a4e8ff3446f8a741cbe491e9a68ebf", 0xcc}, {&(0x7f00000095c0)="2e4afcc60c0efb56277cc0458d9467760447f2b0408314bf2e1bc35d8aab0617dc9bc9de1520ea6b6f29fe0dc07f4deb2e2564cb5ec5f51f82af7dd366ff2c9941ede2d7ba9f77eb2b576f1b00d2e2c798d19e155aa1c8ad8b07701671777e2d8bece9f7c6d1a5123a2ba3689ea0e17eb9f6ebb4a8f85fb593505a42", 0x7c}, {&(0x7f0000009640)="61bdf978", 0x4}], 0x9, &(0x7f0000009900)=[@cred={{0x1c, 0x1, 0x2, {0x0, 0xee01, 0xee00}}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0x0, 0xffffffffffffffff}}}, @rights={{0x34, 0x1, 0x1, [r3, 0xffffffffffffffff, 0xffffffffffffffff, r2, r2, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}, @rights={{0x14, 0x1, 0x1, [r3]}}, @cred={{0x1c, 0x1, 0x2, {0xffffffffffffffff, 0xffffffffffffffff}}}], 0xb0, 0x4004040}}, {{&(0x7f00000099c0)=@file={0x0, './file0\x00'}, 0x6e, &(0x7f0000009b40)=[{&(0x7f0000009a40)="86ec966bec18af884aee9d10683a00f752643935ddc234bc4f0d68661fbe39805a08323df00da135876acda8d9b5551944d056699d36d65dea108eb3f29bd87464a5bebfa4aa5711570d8a84a7f662d76da465647794ce294e50d6bcd90becd664c372a47a9d7830bf7e50797b0fa23d291b0a017cae2a9ef6afc9e781ecc6332d4958e467003fd6d870d486759b4c9ed9e9503f8667ff13bf2209638fee37e9a9ed00aa00cc78c11633a6d91662c47c8916eefa81db3fbdebd2cb29f43597ebd7d5608804b61fd1edd396c47fd5194edce40b609fbbdfd2ef34125a263fc7113896aa1ec8c524274b749b91711389ae97a7", 0xf2}], 0x1, &(0x7f000000a000)=[@cred={{0x1c, 0x1, 0x2, {0x0, 0x0, 0xee01}}}, @cred={{0x1c, 0x1, 0x2, {r5, 0xffffffffffffffff, 0xee00}}}, @cred={{0x1c}}, @cred={{0x1c, 0x1, 0x2, {r5, 0x0, 0xffffffffffffffff}}}, @rights={{0x2c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, r2, 0xffffffffffffffff, 0xffffffffffffffff, r4]}}, @cred={{0x1c, 0x1, 0x2, {r5}}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0x0, r8}}}, @cred={{0x1c, 0x1, 0x2, {r5, r7, r9}}}, @rights={{0x18, 0x1, 0x1, [r10, r6]}}], 0x128, 0x20004080}}], 0x7, 0x4000000) bind$bt_l2cap(r4, &(0x7f0000000080)={0x1f, 0x8, @fixed={'\xaa\xaa\xaa\xaa\xaa', 0x11}}, 0xe) sendfile(r3, r6, 0x0, 0x10000) 05:11:53 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', 0x40, 0x0) ioctl$FS_IOC_ENABLE_VERITY(r0, 0x40806685, &(0x7f00000001c0)={0x1, 0x2, 0x1000, 0x0, 0x0, 0x0, 0x0, 0x0}) getsockopt$inet_IP_XFRM_POLICY(0xffffffffffffffff, 0x0, 0x11, &(0x7f0000000e40)={{{@in6=@mcast2, @in6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, {{@in6=@mcast2}, 0x0, @in6=@empty}}, &(0x7f0000000280)=0x11) r2 = syz_mount_image$ext4(&(0x7f0000000000)='ext2\x00', &(0x7f0000000100)='./file0\x00', 0x40000, 0x10, &(0x7f0000000200)=[{&(0x7f0000010000)="200000008000000006000000600000000f000000000000000100000001000000004000000040000020000000d8f4655fd8f4655f0100ffff53ef010001000000d8f4655f000000000000000001000000000000000b0000008000000008000000524700006201", 0x66, 0x400}, {&(0x7f0000010200)="01000000000005000c", 0x9, 0x560}, {&(0x7f0000010300)="0300000004", 0x5, 0x641}, {&(0x7f0000010400)="0200000012000000220000006000", 0xe, 0x800}, {&(0x7f0000010500)="ffff0f00ff0f00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020000000c0001022e000000020000000c0002022e2e00000b00000014000a026c6f73742b666f756e6400000c0000001000050266696c6530", 0x839, 0x1000}, {&(0x7f0000011600)="504d4d00504d4dff", 0x8, 0x6000}, {&(0x7f0000011700)="111fc0d901000000803a0900803a09000000000006", 0x15, 0x6800}, {&(0x7f0000011d00)="2719c0d901000000803a0900803a09000000000002", 0x15, 0x8000}, {&(0x7f0000011e00)="02", 0x1, 0x8400}, {&(0x7f0000012000)="04", 0x1, 0x8c00}, {&(0x7f0000012100)="ffff0100ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff05", 0x801, 0x9000}, {&(0x7f0000012a00)="0000000000000000010000000000000000000000000000000000000000000000000000000000000008", 0x29, 0x9c03}, {&(0x7f0000012e00)="ed41000000080000d8f4655fd8f4655fd8f4655f000000001000040004000032bce2cf00050000000af301000400000000000000000000000100000003", 0x3d, 0x11080}, {&(0x7f0000012f00)="8081000000180000d8f4655fd8f4655fd8f4655f00000000000001000c00000010000800000000000af30100040000000000000000000000030000000d", 0x3d, 0x11100}, {&(0x7f0000013000)="8081000000180000d8f4655fd8f4655fd8f4655f00000000000001000c00000010000800000000000af302000400000000000000000000000200000010000000020000000100000013", 0x49, 0x11180}, {&(0x7f00000003c0)="ed41000000080000d8f4655fd8f4655fd8f4655f00000000000002", 0x1b, 0x11580}], 0x0, &(0x7f0000000180)=ANY=[@ANYBLOB="d14360068ed42507f7abc0a80d410e37410000000000000000"], 0x0) r3 = socket(0x10, 0x2, 0x0) getsockopt$sock_cred(r3, 0x1, 0x11, &(0x7f0000caaffb)={0x0, 0x0, 0x0}, &(0x7f0000cab000)=0xc) fchownat(r2, &(0x7f0000000080)='./file0\x00', 0xffffffffffffffff, r4, 0x0) chown(&(0x7f0000000040)='./file0\x00', 0xee01, r4) mount$fuse(0x0, &(0x7f0000000140)='.\x00', &(0x7f0000000400), 0x80002, &(0x7f0000000f40)=ANY=[@ANYBLOB="7c0010aa50612de109179c6f3a48cf26fe810e9dd0b6b4c425f4d18d6cbe63dc2a27f832041d3791ac85cd24cc19a452656ef25dad88a96ba774968de7b29faa0a378429b40bee139f6fa21f95ffce2f3e3be0697c54f83fd0072bb0b2de22c3d1acb414a21f1108b25750c4086cdbc2817a1073b1245661e9624150a694e3b8663293eb75d0e84a8cc55999933c8b01f8df5194e570d7e4f8d9", @ANYRESHEX=r0, @ANYBLOB=',rootmode=00000000000000000120000,user_id=', @ANYRESDEC=r1, @ANYBLOB=',group_id=', @ANYRESDEC=r4, @ANYBLOB=',max_read=0xfffffffffffffde9,max_read=0x0000000000000005,max_read=0xfffffffffffffffa,\x00']) syz_mount_image$tmpfs(0x0, &(0x7f0000000080)='./file0\x00', 0x0, 0x0, &(0x7f0000000000), 0x4, &(0x7f00000000c0)={[{@huge_never}]}, 0x0) mount(0x0, &(0x7f0000000000)='./file0\x00', &(0x7f0000000040)='hugetlbfs\x00', 0x0, &(0x7f0000000280)) umount2(&(0x7f0000000100)='./file0/../file0\x00', 0x0) 05:11:53 executing program 4: r0 = fsopen(&(0x7f0000000040)='afs\x00', 0x0) fsconfig$FSCONFIG_SET_STRING(r0, 0x1, &(0x7f0000000000)='source', &(0x7f00000000c0)='%(,:', 0x0) fsconfig$FSCONFIG_CMD_CREATE(r0, 0x6, 0x4c00000000000000, 0x0, 0x0) 05:11:53 executing program 3: r0 = syz_mount_image$vfat(&(0x7f0000000000), &(0x7f00000000c0)='./file0\x00', 0x8100000, 0x1, &(0x7f0000000200)=[{&(0x7f00000002c0)="eb3c906d6b66732e66617400020101000240008000f801", 0x17}], 0x10, &(0x7f0000000180)=ANY=[], 0x10) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000180)={0xffffffffffffffff, 0xffffffffffffffff}) r3 = creat(&(0x7f0000000040)='./bus\x00', 0x0) r4 = openat$vcs(0xffffffffffffff9c, &(0x7f00000001c0), 0x101000, 0x0) write$P9_RREADLINK(r4, &(0x7f0000000100)={0x10, 0x17, 0x2, {0x7, './file0'}}, 0x10) ftruncate(r3, 0x800) r5 = syz_init_net_socket$bt_l2cap(0x1f, 0x3, 0x3) bind$bt_l2cap(r5, 0x0, 0x0) lseek(r3, 0x200, 0x0) r6 = syz_clone(0x0, &(0x7f0000000300), 0x0, 0x0, 0x0, 0x0) r7 = open(&(0x7f0000000440)='./bus\x00', 0x24080, 0x0) lstat(&(0x7f0000009ec0)='./file1\x00', &(0x7f0000009f00)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) fstat(r3, &(0x7f0000009f80)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) sendmmsg$unix(r2, &(0x7f000000a140)=[{{&(0x7f0000000240)=@abs={0x1, 0x0, 0x4e24}, 0x6e, &(0x7f0000000400)=[{&(0x7f0000000140)="1a95", 0x2}, {&(0x7f0000000300)="66eee71f470eecd69e6df40fb4db0335a90575ac2198d508ffc3908e8b6641a7745c32632774cf3ce76aef95a40a23e0c034050a0f3019ef36af641c3f1a10f1afbda519fc0592b380fb1b0537b87eecb165a2898ebc4213563570f71fcc934d44ec4ee31514d3fe11ca4dafce3b81fac40d79ae1a35634677206f8b85b235de66c2efce02178100c66e61b4e12daa0cd59ad0d2c260f29ae459c22802887259a37b75e2a07b31f75b60f1e7ef125cd1f986fc9ca3f34530348c968bfebe9572f4707e5a4049d0c04b354ad1c4e13d54d93ddebefb19df2b17abe6", 0xdb}], 0x2, &(0x7f0000005880)=ANY=[@ANYBLOB="20ef80db856848202efc11b40000000055936910214bb2c771735a0b7b3a926d090c85e9c87dd043987a42eef61ddc28ef60521ba15dd3a6c97339f787f13c2e9d6fbfebc9466ff7bba60adbfd67304f3fd3453914c1fdd6e3df0434b9476337bcb0484cb0f177d9eab299b65348b0da1bb2ab25309fbd8eef15082ed9d03355f982a1034133449222d68503d554b294db3317e97445eeecb176125f2be7fd5fa040f70ad613bf0b02062354f943d99ee13539c6b94d41966b90ed27b2f78a70debc36672816e45d092df0213c50d8cb818756ef32a64e3c3cfb344755a958", @ANYRES32, @ANYRES32=r0, @ANYRES32, @ANYRES32, @ANYBLOB="18000000000000000100000001000000", @ANYRES32=r5, @ANYRES32], 0x38, 0x1}}, {{&(0x7f0000005800)=@abs={0x0, 0x0, 0x4e22}, 0x6e, &(0x7f0000005500)=[{&(0x7f0000001080)="027753448e063d513e19c598f6e980c537dd8f30b5290e1efd36835590ce417ef3c633082fde2399b1ef3d60d67afdb3f6e5c5a47a90f032a730cf9e1ee56cd2af89a8c3c841dbe88b21fc00dcc946c0f60810c00fa8604a520a997325951e25744c71cd3afcbc25da3f2105ab7416647975a0c4e189195bd2064b349b76da28351116954a9c97b73f7fbaf73de94dd1b26d8046f4adb34bfc84c884bfc1419404641d8bcd76c2c7eaee9c6a083ddd3174402eb0b18f03e0066145cc33bd81dcab6a13005cfffe0e92401b6a3451db39b976579262d35a927cfdd3fe66c1ce933b89812881514241a8dc17e2845e2c9adfe8ddb10421baa23655e0b3c94bb4842fb0f5ca296bbe8a58c08abeddafce4d546a2a5f471ce67fe06e44fafc6c159a4f268e885f78d59df02990559cbf26ca20dfd36fc91506ce7f03f8b9872339f6a344c07e45cf3c4803eb283a9fc65d2166feae3391f0d95f0c0601ab215cf3c9fe19fb1999ddab709d74a0c77eb973ad72119b5a21ef9a8ea66c756ced477abbefc871d4a1c77807638cc2f09463c51a2f8a35f789db22cc5da1907f05f596269c0f5030a6a39c1936422560cc3c6c2cc54da1eb1bfa419b8aa554bc84cc999f9b49dac78a4cd49ca24767bc659b94643ea5b442fba2e30a416d4b1fb40792026e27bc1b8afe09bd6e8626df35d68862183c6dced0bbc3538a8bfbe234805bf7304762dfd20b720949ea653a02ce3fb417482728fa90826d070f06ba35f7068b8602ecbfd95ec85ead8712fc49cf96b614b8bd29fec92004ca2ed41f06717400e05cbc5a7c55506e861086ad954d3cd4ad59267b5191676d2339d40420e5095f99ba423d39cf411879d19ff795a2222aa78e4ab043a7fca9a620c93196bf386674a61aca3845894c7ee4cd4ce7eafb71a1b56cec6591fa2037322ae0d5013674a4d74efe3964c4aded59a26d494bb58c2eaccf5fd806eeee24d0b64bf6ea62e079361bdce8d71f1bdaabaa00319b3012143b0ebc50a4a7a6a2ed7b033240c4c975553afede9259228afc65890802d8456fef6eb1c83d490642370be6a0766a8cc736c83b449382ad4226f6032011b2cf375ef7146ed6eb796a8eb698f884aaeb1f2a488327f89f15ae227a3b0b1130bf01dd954f9234f0445b808578bd1763d23f95e13f7a410bc8e0e211587e320c53e9bd0ec07b36f886c466c34ff949d26c85a2234fe6101bc02eadf7b1b4ef325dcac3198a59204e2187bdcc9b64ab3d71503516aa281845ecd2367666f0bc8a58454715e4e03e14094f769d557020e19fb66133b2bca2dafe0b606dcaa632229c73520ae0ee13c3d0b3ef04c4ca3d15b3a62ac6683c83778b62c59734056998d4f114903dcc8366c68850189748ac5720db8610b084c9ac0a3264de1066f85af454ab4cc3da015fb6c41a7b6a7e9f287554bf1f1454645780486898d7220ca32fda6822e335862f0d5397e37acfb9b14d191225826043728dc0d24a1c348ce8e990d36c44250a03e083fa422f429e139fe7bef81f4d9cf25ecb8160bb4f467a7b0ead64b1fb3e959554dcc546d9d9293c9b4b9de1cced3f417029a0c61d38fee9b4accb1ddf697e22d034682da8ba7ab860b682f2e8227ffca899ba156bfb61512a0e5f1574491c101aa6567cd765bd6bb502a1913930ad9a19d62433a3adf58ef8dddd8544240ffd37e0658eafaf92bc56b69044af2f2c3da253e79a66ec67bd41f1da0a10382c1dac2cf62ef43dd00c7b0cdfc98255cfe5aa569dff82431df8d5487375417eeae43d5d45b3119c6cffcba2aa86289eae4d0f6688c5b6342c5722231ef81b42527c50ffb38ec285ed1d66f6450bbb55a109b8fd97141600ccc68928ce752707e9147b3cd57d5df9565e3ecbd24bd67f2d8ddce8834b311be4828e556fc05c97a23596d6670132b9d341b2d6e8a8457eebd7bc4ae0e5588ba9619b935f0cb7b767aad027c2984ac8241e13fd30f2167e7e2c454a70743ed97a7c96f5061527d966da7c2e12772dcecda1e70b4ed9567f12fdf22cffd5aee4b9a629c4c31dc832b67100dc251d7c75197a311c2cc4955fe53dab2e91197de20d5c7f6f40e965fe51b3fa6eef4c45a45db8f2589b03235524ff542392e7ea7e96165490f0c008965e1f5c48ab0d2063e3d45a09fa30171b7cf644aa27ece63439df51d583989aec6f623d142a5202cbe8d381e98c5b7c92ceb541e833b9f85a5adf32f733128e221b2a5ad095dfc06d20a74d99d8523fd3121b79594c3c76b8edab0a8b8fac4c3635f1a8585201ea59903842ae69c324b418eb9d2eae8a0ed6e9aeaad4ba1d2e748b3e6e9fc5af9f09d8c373c015bf4f2945277c1b44f72533b2b5f1804155fd195f0126877ab2135178613a8e1454b11938315cdde961bea74adc4f4bbd4917ec1467dab772d8aed82054f2c6a58f0b0874279ba1a343567a5ecd26fc3a0c2d1382b572135b3ad4f89b6e120262290ce4fafa4cb5845a47a7f587c6516e0f4d40653fa5aba06a4ca8ea4c19f5222af1b53177f5807b4eba15f2dcb1388f3e552719b3d6a938d79c78f09096e11a32c7c62911b524ae903e69882ac45cf39c94a9af7ae2381628f6c967d5eb12c0b6675e07c580f8d01723de66f6efc00f1ad029b74f79bf0d5dd9e3b7b84eb412b84bfb834457301e083517b1b35c61a78506773169ea51bd7010fbf34fa4f0df7573d07e433c06b3dcb06bcf61eb41363cc6383ec1635299a1f07b91f081c4cc17d52ba73ce9a9d3abcdf7d407b6aa4f71eb544ece08c4de1c1b92e9fcb237f402c703c3d1b1ba9dca635839bce752d35d4772b3444f5e39ed0c7a9972ca56ef508bab40c800e2889a134f74316319188a0272be77285f2db2291549dc93152bc58e5f3d576ca4804e4e064e1310dc12eb5ca82731541b9df8c4d39024f8defc259e3a64c4e268c3b6baaad47000d6cb7f3019792480a571f4349b227b82605f16f1b9a8049e742001a68de0bb66dbd2c84dc67e640e2c05f07b06b2c1ffeaf127354d20fcf9a1abf39212c2098ed14caca4ba5dc059828220d41eea339ce8bd2317d52d73511e0ab6ca6ada2546d8026e988efbd814d1e5744ad0121cfbc4947610d954b81bb08e0f5ade269c7c1071184e0a1c50953cabbd055e3017b6206e7426043fecfcb64fecf2044093d16c5523765242327077693cd43c1bad7cfd1122868c992f6094555f20be308bf20baced6aebad66507a949cec8cb0afc0786dcaa43aa41a5412c0eb5973f29828505e42b1a3c6180fdf7d2f276f5a41dab66c1ef4d1d0c2d2f75ff47322a1b62133eb293921f0d6d83ea297ae5518e77362ffd7642b13c6d904ffb99b2a23e8ccf16fac5656f94eaf3ede6ca991d9f9b18905c47e7e3d74e4897bc0056ee364f98f29464e4e01f6a53278476b82a258eba9031473cdcc13e50713c18a5d48af8f908451cdc7500fab6846017f323fc538078e69cc9f547cd0e4e90852b0c702dd0ade659fc828ce77280e67f2119675508ec8bc14d24f7480b345e1d4b6118c785da575ec576d2a3db9265fe7e553e583b1e2c8f3f5967e3824541aa7a49d07efb33ad85bc54dfd82f93646dab2afb14fbe2381181128970f23266293c19367590fea591ff208acde322edb7e4370a4cf1c532645757478d2acaae087612b4293ad13b390a7161f200ce56b6e0c956b0d108377d579eaf1b860d8b6e623867c008ced014a22a23b2506b729cee407b7fef8b7fe0c94ae65f32f8d2d73f8a4ead6c374626ca5b0928f82813f949592dc43f6b4c881b313e35e69e832f13ff3a22fb728342decf24cb856fc485cacd8cb0fefa6760a75cbee84cb69ed8e60eda6a00acfdb2f4b0362a8d6d5640f0572c6eccf3214b2bfc4226f221ba07ab51b25469d3b6d767193a8f603d419ffbfe9ad753581bc4a19cabf48486ff1c9c20b9abd851f7a57efcdab4f1d989eebb9c198cb83294ab1b07d68ae10099024014e2bc1c0d7718c3562bdd3bbe12bc0c3d84988c783105d5fdf04632d1f20e0bed642112440c97987a7e5f03ce87e1da30ea83fa5d09a402ad776b4766b062a9e978877bafeee6383df3a6c4dfcc44297d246f46d56913bef3df74ee6f2109cc07d30075c3a68a2d3acbe44705eb49cce397ea043e268333c67828aef76f462354cb30f2f1fede97189eb21010196870a2667052f8f8d6040b3cb51b80f97728095a5bc7f9cfdcd03c47a2c6238127e67599e2fa6cf4d5a6dbfe8ec2496dbd2f26a6b5515168063b3b66a54e86a87231d0e06ce49b2ae3b428578b00ac45e77476e793efa874e839a2976288f4aef23098843a14cefec1aac6b9e903826eb4eb2bb9ea3a9e8c912da7ef491bc78fba2bb769fba8a7ceb44dbaae371189cb5e2d25051a62d3c7068cb891dbe8a8d070633a45af3f3ed34be0f06e00a44568f22baaafd5b797d2c5f8d285970eabc46b9d950e6469b3c17008b1aef5e92af9085d5fe2c55dec67684449b1c297cc270540d654c4d5a8280dd174b7f6aee51e616c710cd2bb4f67210495c888f705ae501f7a15ac492a6f566d363424cfab7e7b90e8626f3f230d9af027cd9d208e1de7c7a37939d737ea8927b69b7aaba8fab0a22523062a4083bf20aff4f6b6e642b7165cead610add9734769615d33c1a5cc716bf3dbef77edf9b2d8f3dcfac52210b4f127e68e57092c44f89ad41917cd84f11af284e71271e381e0e1475659d35f0c079a86ed6bd9a88d6fcee17ac5cf2b1bde1bd3df5f7f35dd784a1e745329b74cc80c58728ea8789338bd2652e7b56c912ce61df136e44238cbb55fea3e24149e353768184c42fdcddf6d66a797ae148080511a71e0dc84c6249edaa3fbe70545e1f86f4d9ef24d56349ff4a489da22f2a4f77718d24fb0885fd3cbb536d6e89246f5072fb4f369ce7c010fefa778484987f1915c3800978460ecf9049bffa7f8c547a944a846cc9edf9cabfc4197e9ff9aa3ff0d8dc207b3f3aad27086e2b7944a0f373440d3c785a8d8a3ee162c660bd19dddd81f7c709bd61b816d4d3a266ee7ec56c4d84de204ef9e0f6df43c4a2a0f4cefd04e23d9588c9b50f7aa4fa40a9b0dfcf1dbe828cf706fb380c406f285b2ccfbd8457204e3f4050d681347f0fbfc3af07efa43336e24f34ababa4a9e3e345bebf0e766e22b3a9b361af1e9f6051566fadcf0088f08f2b4b8e258e31f40582f7206a4dd6095bd18792e2751c9cbfa8bf9c240a51a4f745bb0646f5a042a5afc6b4314958f05e800789d750a4d6d384436b5fc1e30b0e66078011e38f293422cbcaef28afc4c44030fbbb40305ed47fc6b451da819593356c623fda45d07eb9aa595ac008b06409234781356d8c0546f79a7358ba38c7bfa49c79ef84f38a11cca86ab71d85d4e21cfa99c764be0218dd7084775e9b6c00aeb3cebc8db0ec1472b89d2734e19d27cbe9d8bec03fda3492427cad75b9ff3f74709f25ae1d92da1283d759b18c8c4771699d37b1d5f7088ed99b1b8b97e554148df1defb95cffd81a785cf4060c5201fe0fdcdaff9f561aea330a03abdab60ea45de886db10f7aa5e0d5ee38a6ffa3a0b12b5b7ff26daef1cdde05d6ad054ae934eed526da7d7ce5b59417672828982c0039e2696dc26a37ee9fb8d38b7b31e636052e19b6a4356456d9a4e470c66465aa63532d737daba44f8e1f048cbb9aaaaa769c893963e626e5c11a27e3df80dfac20af2ea3ef05ad84497f966cf963546ce5246498db7cb884bf6e614035037af809e778a963da83", 0x1000}, {&(0x7f0000002080)="540445e5e016711e4cfc3e1b2da0f18df0a4a93c90f772c83b1a0567a9bc3c0af022db68e79002565dbae91a246a1e9c29b5f3ac677ddecb9ff3bd864e579113d10b19168553cc63986feed5e60fd1622549f99e6ae9619344e914956acf2c64ef8e59a616fe24c2704fedc45fb3866d36c287617065e9d9c91761ef49c39f577a30adfbdcadf29b83da1f3c6b7524ff5316ee56206b696de4e59e2d83d459c74e", 0xa1}, {&(0x7f0000002140)="44d8a4e3c54db2802a45640dda86342f939654a48e6b0d13e333566194749c12f28a38954733f674cb0e9d6528605e422d8d1f923948e122834aef13be1e299a8726a1c1f2d353b6b9decda16ff4ec01ed2bbc89fa371d1ee71746a3", 0x5c}, {&(0x7f00000021c0)="3c848cdb9911accc2ea473f0a666184476e19c57a17c207b04d07e7b722383da169fd0d1b899b9d3afc1037d45ba552bfeb069c570e26300e0b597c3d8d5f0749849e06c63bf29048a2eb80eae99a6ee35101f1b30229a88cc466a872ffd914aa75139a5ef4431fe864e07f661458db6258fefbde4014b838006db60fb273502fbd1108b98f65cf17473211c51e406771f6579e4a4707ae3ad160791b096386a03e411496403b4e320d509a39a28136a983d41a653dcbaae60235be69fcb85e71f74711fc1569ee5b2f4b8218f0894173dc41de5b787b5e1e742aa1374122eaa47771b62456cb7c4c6d81762563be7b7559ac1090b2eb43e8aa45996a12ceb26d337f259d6409f6d8175c0bb2b1441d30be7e8e0090d8e57717e3292f53321b3ef205738e0dbdf07a2e99299a2560204bac3c080005c89bf80340b8313b1b4b9806b958d2908bedfb865740624190af4ef9053c8e40d22048852255a62b3df8ccf4c813d672d60b6b56d37f877d4a7cedb9fc401e1094999a7438b11e78320f59eb592461a9eeb65a8ea257889b11ae26978b0db2a8bb4e23fcb0435ee5dfd1cfd7231dd7d135e50c9bde769b6f98fd7d5ec46a48e4e174a4def026d932982ba8197610417a3ca7f0e14a9c81d6253e657845d4ae8d8b78d2f7694109cbfb590f4eab6b86891a6f24c5d67a9678a0184cbb2e088472b0ae4489a32dfb0a0b443fb2e3fa4ce58e13469d009677128611ab96a8c96e8414db250b5cc22509fb054c595207d273c040323801c97ba569163e07c3fe97129bc028aecd8a557c07f9c8ce1648172d4af3f785f02acf2089eb5a6ac271e886125ddc7cfab188094bf47797b6cecda91da51a8fb42ccc07bf7556d6ba323ba88a8658734e8aa1bfaafbe6dab717d9b9bddf95aabc1d0cc3caf1fa5077a03297e9fcc1b3fadfe4d7a25b22c4ae4139a54903e10f8dab3cf944b332d1c8e62ff189b2b9633441767484337290e9235e9c04d9d9855e663b320dfa7497054460662274a86e974a5ef53654eb8670ff64044ca2c015192e5f4a236d4f56ece5a28e375540854ee1740a0f50468dcfb458cfb0e2aba513ecc07c30a4c813cd4938189074257c4b7a932f70f808f2a894eed862700a708d75b2ae5b6ed18e27bd804dd1deb45cd9390aae800d9dbfcde855628ee82daa24f2fe13f77d4374dea6fb026133ae4d2f6a3d9dd2e71ed9805fd5e27cea752888bd62cc267cb2e615b75fa68e94bcfdb8e37ffe12fe775c4a484fe9a8f4a4e19cd8a011eff69812e2c71d9245a5d2d662ed48180f52f8a3b95a40ce75d57318f45d217586f14437f13c921bd59199035523d66ae201b7fae5af58f60ce5198ce2bbcec0f161ed6ee10733e3359f5e02366cde6d4167e5ddcb66fe5f1c8cf35ab61fe560a36cec768433a81f42609f805868142f2bf3347274b4c6e87333e12f0bda410d077caf0ae818a93a3465b1abcbfd1f5897d8be3e341eb374b081556018dd50b85dd6605ed757227a51457763b19731ae075abd7ce9be36aabcf6a49ac77fb1bac6dcb8bbb8525b0610d361c0c82ffcf9583720377f2b8c7925b7c0bee3967cb3af7e8dc792fee3facda1e5c1faadb75dc162d614fde83b2fe6b0dcceb73488d91451063b5ae16adba9c1a3727bf254b80ba8b4ae6b09f468963d3bc301221dd1f369cdbb2591d0531c52527dda8c666d79fe890af6ced5bfc0e0214d30213b95e038d8623d2157d38c55685817847b79bce84ca476bab0e1c2db4a0a1f3330995f3bc85d7dfdfed84bee30fe3aaaf797cbc6219ac7cdd8f12333602d2b955168e26ec50d5894b6409b3ca72560825ed5407a0d882e46a4ae041deb1001f72f2d531c7fc3729474d5f968effcba67d2970d496ce15e3b5b7f1d115a809210e1651b56a19a629c3c7dfffd7be37c4b89b10b0d6a887001121bf8cc8885ad98ac3dae104afd70b7342cfd5b341c3976b5edbbb871266c81c7466ac8127347ad5c02cca2e10dc27e260cfeab0da5f7c1e318e6b200c423a053f9c3d77bc8657a064c355f2d8345560c659c448a5b2d3ecfe0c912434e1afb845d4d918adb3b4d489cda2ce49eb2566554448dddda30b02f5e84579522ba8d1af0c821470530c7a65b60450b2f6b944cf69795b1acf7675b4ffc57ef71b7cebc74adcf07255b5c207e891ffe22c769d9be92bc46c550f1f0436aaa59baacb18ac335b4b989d13f4350472de8ee8f6239ea3d6220218cd064608538ea4b3a60f39152fcc3a61c9fd875f3f9cfe114f65aadefbc91b2f8a6401d585fc9164f2974bfb1d11c87cdcd48813dba185291194b5671aa784472cce144166c5e7f1c342bf4ae42bb4ce98a3f13c41c07487d8efc188be22bd41a795b536d7a1fdabc0918e2f39335d525b98ca9e5af6dc9168eb664dd25a843f862736e7365869caed1df321d5cf36de1a9f27f6f46d9d64cfef641ff23637588e29b19ffb031d276fd765c15214c950eb99933bf9a92f0041568c4c27ba3b307958fa20414f366296ffce333c368b2df05495ea9ba0305138811d8d7004cd1b1c1b99a6d022af4e1ad199a9eb40976e68c87e08c430c96dbf48507189e0cd11e5ca9003883d26fa94053fcb5877c4f64bd79b3ac5d96683939394f7f83eafe510427a43c259487aefdf77de15fd9cd485a0f327c2d5d21bb056a1fec58f68d0a1c92990b4b32469935c75f646cca7a3ba1ea3450863fc113811a155d9e4f65b4bc114c5d20fd5573d8fe0939e662bdf4fbee76ba0f048266f87708e07f86b210af6a97a74027edda389aaf3155ab55dc9490118ece630743d2fecc8d41793ce4a787ae27d07d46680445610a11a6ab22d4f567bce0bdf440acfa74f722d74456f1d28ff5c05eb6a0580f2c9c4e44193d1de1b501319838bc35c59927be2e95e19ef60260ed082e0097e56f7a51db781efa5e93c751a0dd5b57016e187c8e3a3705db1c382165c713e6f55d385f934d98b4b8094533b33e03f646eb92672463a6bffd660b8bcf4e26f5bde70e76b9464a7182b0b43a486be178ac8a3a28152abf489d79dcc5d809d335c89fc4a5e2d7cc4d6ce9c6f439c1a8c31ff4b1848e475aa0027f7d4ad16a3207127d0221445c058d2215461d12125bce86edb5cb995b64350946c6832553bbeba838ea0cf7447f6930a841cfa2b907158f1c59a99a2e12bdd8a68ddd3d7f3b7fc7ad1f489e52b723bb5bca3f18eac5542cd14335f5b1247e3852d1dccb79fd699ffe183cf7fcfdd39bc82f5389753556ccdc4234823c7ba07c552a87de370a9b77d2f62b2c003fe40e55494ac3451cf6d9e482ddc7546aba145e43f92427dad1b3168f55019cf3c0498aa6db1179dc7cabb7c8ec12aad31856cc1e48a9ecae00d97abefb19f378f00e97201e80e2d648de84e75b487b08041bffc2ef2f3a090b134b3e43af0ba7472929cce96cb40e684ce13dd176f134654da57d9953d3120ccfd57c2dd3e2f4c453becd03a30a937b469200fd1f95603d316e3aeaa4b100534c683d8f88e1b57367856423a4d06915fb9491d099f15111f24be384063bfece64e3891423d5cffcf2393cbdae40f04585253b5ebe530ed860188cc7948cc3c35d66b7a5f3eabd02f4e261e65f32627462706d9eef18ac686b3318574153addff5fe31fd8a6ed10bc20b238d9f121a0957f5246f5800a7c7823635c6912b595257d3f63988ea295021c14f01fd74d4c546ba3956a9688ed6403f4b0591b1c1eb9947f60cf54fb8b4cd57fdb67166226399f138dd910b926ef27f84283c917abba848d6c2d367655697d34163cc8a810a693bb7cc8dd6118263614b32a070aaf3b58530d11f0fa5ec7e92e920d757c958f8523ca0917aa2f23a6f3a9c41ca0041525508ca336a16e2edf59883469639bced868042ba483a52ed345b4c2d881621b5b03a74b8564ecdfbb9301d45bf0f1ec31678175b7e75d27c6f740e27d04812c297568fbab3e030edb6259ed9f05b5aa113325101581fc659bb65874a0b1e1abd4c8d64d36e71dd00bd02bb1048693cfc4fa7cc2bad2cb9b24fd850fcca91e1a6773dc2b20f2453234c754ea1667f8623ab19fbeaad6861a3039e0a8bfade64c36ee73153974c1a9e7f92d48ad7188ec7eb7c884960e02519f7efcbfd8bf19a46801c64edd0efa0c44bca477d598844903b169e173e2179b4ebdc658b975c4420e890c96981a66b1d1a3c6cac8ced46ab8e61537bf2180cb88ceb831d755892d3a74d56a40a6ab1896a8dcb7f1812dec649b051353b6e22d2a0d4c7bd4f914cf81bca2f5e519f537cba2db7f02be06312e391b165eccb9c63795293f067bbcee43f444c0a4042d98139732718bb4b9ea4c38466251af1119f2890da4fda4397b2eea2cb32c6db874bcddf1a67a32109bf4f2d176634807418e43108f71f16de108553cba1ebaa1ee2ff0d76a1fd101716e1d5fc15c0d7946ba00409db7529dceceb510dd6a7b05d4404e9ed3cee6f30d530fdd649ffffb75da6d6e42838b70e8cf9e906e71a7cb2204d757eee0795599f7aef646585a871d6fa025b72c6bbe02896649f88408e434af3fdc9da506ca2fe5a4f3a31e857f6aa682fce2e7e68869ea19b66a324b6e554b6435cf94fd8f2941c84ee6236696d311d92ca5ce9c3bb17ad1c83c8aa920606240491424e59fa88bfe848056fe402c4b7ecce28ab1f95e843c4b0b11bd93a3f5c9a29ebb9b0a42120efd5c6ad428d48cbd5b4e1190cade3bd8db7c03bfddf0737abd7607987311e43315d136d19b8cb970a0c928dd4d6c9e9b3e57db5028c3d590176b7f62dd9f4989cbf4a17ce168e66fd3556fa1fe2be6d6180aff5f1c55a913eee0a26cfdaf01f3c5265f66e0a18b99c23f85b092c8d62a5d144cbdcf0645061e73c9165a35e34c604a403c42f02089e72497ff93bc0dd3da17399e8cbce4c38b3b1f24cdf8b32825f4cf0b23146d8fe79b4a8b52001d59b92c17e02e6664d3cba95370d30720b29d4c79359d0ed447230e8eada1f72a07172bf41d73db8fb650013e53e63f63e4b33b1ea2446e1d2899028ae827ae3197941c9abdaf12cf114894b15f1cb1459a730a2d91881b71aefb79f445c945b7e7783d0315ecbe7c68744cd03e7d2f7940eb2f33e6ed08fdbff6926f1c68f4ce8728fbeb2c08662e94f0a2872f0e7ca5bab29c2394175f58fecf1ee73c5120938e4970f8cf14f5ff18e15f0a288c4a632d3869ba10790edeb7b8eb85dce82b992da7f29318da9c7f7c403d71954b86bba7a0c15c54ff5e4956958f6436f8638b1f067f04e22b71e0f8f407f6997101d96c943625b3e547bd2561438ebdf39caec4068f70d5df64630c63b6823e99a610fabe582c125609d4d2164e34c358a2a5b0210ff34457a1e62c360487e44798a6214e6f857c3be27cb56d7d6cfd5670a5acdc374403d6f3aef9c63f0854180d53253ab3a119275594ccf4307b3ac807cafb04a5569ce6d37fa77d8f77846f0a0e05cd9ca49ae9fe97a80e43e90cf0f700427c75d853464f4947d41b770fc4f3f352077ff92b5854e5fa777a54818d93b8f1c6c35ab6380c29fa9d8bb9f27e632f90ebb44420a3a1b25b67f3efd407c8223faa3c299701ec899c2dc084f8eecd5faeffdec32fa4940d1f45691abe02ea22f9fe7b118417d4ef61c215f241d542ec5614a8fce54b11e1b34d63a9f4c457d8f277949641088f5bab0503b08c6cf48f74ea66f550766afd264be966140770d06e0e0b16fc199c10f245e0658ff93bef06fb614c3634772bcd50ce", 0x1000}, {&(0x7f00000031c0)="546c8138870e11381fa507f18da23af50a98caa1ac4368174483969511cb5b5535670c515294d0808b295f7647a04e41e8ba68487edaf3abbb1ba3b60c3d187c99112530c2ba177579b4e8a94c97d04b53dcb37e9b171dc26378e2495e049fbef68a876fa23ca83d28662e8f28da7133d32d2cfcf454e2d2a9ba257492d18238354ba8cdeeca31df1f0a27a837326d0381080e6fdd22179fffac802e9ddcecedbc5487a9ea0acc95d328fec2cc98283ba8a4d496211028e470d2bf7faa52436269d036c60c7710da4a29c212578c363f2884105c31a50f50e74713978ae099b8052236667d7ed0edf5e63e63bc7eb19bc217702f6b5f155a62f3a582a9175ef2845bf586ff4377a815701fd54767751c7bc101b85d3bf459f545074b804a95d6a4ce9f5a118122cc7b50e74c18506501653025657d65eada545d3faeaa0bf8f1e699db773cc2329491e752a73df085b122bb5f95b53ef5f9f12e2265164aee40f000b9ebc29eee11715d3f2152b31cac121bc53b11bc63fed2f45a5e0a62a279fdcf32d152913bb6515137b4eb16408d473b19447288b32f76c8186b9143226503c3858448316967e846809ca6ada1dfe00f5c06a21563217bcea079174e26bbf4996a98f0d748350d6b704a399cd0a791f9bbea0a2d1bb28da590b6022c94fe62682e4d85c9a6fcd98475d31b82ce6617b321142aac2364fb152ca77d7b819cbdbc16eb41f077e94ac4b5ba74eaeca0dfda6f9e82e58e8889c8bd837e3c2cccf46d39954f9f4484b4a04a0afb0db68a6518b9065062f78dcaa19cd0b32d57d5d2d43f307b7a7e87ea47a320133a0434e0ed953dc372f7aabf5f3820ab5891da1da4f3e7a4c777159ff920b0075040f8d9bba1652e2ab6329407f251edae0852131f6d17cfe23cef27316aa2fe59a38b336617b0ac453cf6d2f50743f20492da9e6d6bdbff8afe2ce45f726502628e7541b641219c65f3ccdfcb90dfa0466c986a687efe434b538b88a95dc8538881f9e820955eecd3a9f2ef32df021cbcd506f239c7aab43b0c3bbcb44ec8e86f2f150770d70c709d69a6a85ab312b0086f8bbb9f5d0b1ff642f68df9d7f83fa6b62940925238fc69d4e7bc09435f0cb84d567115a07c1593c0d9b14cdb150fb57b555105c96a3a5eef2ccbc737d4eb94c6bbad9c7e37852050ed740805584f64c81aed4203ab8f91d5e07a90c94d37712c8890d67394803b1a0c1adf347f8820750c9b1e5c512398206d5aa645a1fa9d26e4c77815b3e651f731827c530aa152b06e833984eb7cb9bc914d67e015adf74a8a250fde5373dfdacddd249c453478b6b595fd03211af584f05b07c588aff0a27f75faa104bf8a7665291fede392bdf27eb330a38fbba64a257fe307672bf5027fc81bf2e8ef2889fb4327e7cb185c491c420c7e3933676b8303d51fdf0b0ad533d88cf51f3dd90452ec29f659c052e84f9a17a500218218bdc52d73ef466561aac3aa2a4310449ee2522c547dfcdd5fde4f2dffabaa30454d7f4202de41a3b3ddbd80534f34e15bc9b0409b5357bafadd6fcfb0a8e3a8844b03a0af83d4d10086d7032e449b067a1fa42f4b3e3824120c630074f6790fc3a4d5d862b3bbb4ed6a79d5b4abf0671cd40ea5b140aeb0278cfc807e6515dedec1d31e4d0638f9288242c2690065fa41a7d9f087f44fb22c2a78ba4ca2c66a899a2c1544489ec552d35989e5a7e9920a23ea7bb7cdd9efe97b3a1760d02f76bc0b6c1c70da919b10069d20477272f7957257ea8506c0cf8035e5e0cc9e2e2b1e5cf14b6bdacfab37e789ade77dc432934fe2763b22429a8016ea1aae918531a5e41d7d08979f2dea53b71916e94b740da06722f6c678c85f4acb59091716ba368e14322e7039d1e4521816d7b4e7b66b0101cd0aea4e71b9ba4e958cc3ec9d87032363524b5cc646b67ccddbd09f269f1145db99ef298bfb41182a3b2aae6fee3728e88f57f6857a8321047c898939e975f1b1ee716837093e704340ef0adf93e89c467a9dd5746cd5297ab7038665cc53c9d8779c6b001415c5466df9913adbbb37a33ebf657c3abc00ec4ecddde076a4796195cc6914d2eef2b5da084009ff65ca2f1db16a00d3b0f450ca472126a73f87bf26122d420a933f220cc42c2e89e3da37ff32fd0b5aa644c3343f7e08f9fc808e919f528560cce58ccf02724822ee56a7feea13e419f6118c1e6e1bfb96cf030b609b5592ab9e835ba9d18f969a8d836e8a21bc7a472865bd41f940a0b67ab6fcfd47cd82ee265e97500b1b523a6fd721ad16f523a5914743b5ca9cf1ef742c1abc139e4416e0cd22cdfc52b7e4643eb8cae0558b36beec436d4c6f4d5140637d658c355664c9b021af27bace8769b8f38f2f151b14c7bfc39274d165a843283799d157d052dca4da229bac0ab1cff4795c4c6d6c86ec18f38b09000c5980eb83e176e377889ebc75e2c8dda0854b7cdb145081567f4bc3a761ca705dde0d0b7c70cc62928dcf3173b6e02600e77b5ed4c65f0c55c44d55a92371bf6dd662d3612b4ee42936d2609065faa907a22512c5d62f65a459ba55cb34b8957d6c0d6a0d74d7dafc5f530d715c4ee4d70702eb74e5f237659949bfcbcd1bc92508f17709744bf13daf2c08325c6f255efda7c621d6cdf2046a78d44614143dafa11de51243efb0753a90acf5d43afc41d60df135b15c408997cefae40b19715f584b87347e42a8b4d50117f55a8406a5db667392ed9e5d1aa87ce088d596dd26d08836c2dedda1ced5625c4c867f115969cca67b83f5989d86cfa97faac2c24c1cf6aa8e6985d768ad9f16541e3978ee4482697bdbd8fb5dfbaaa239fe6b02c61676fc6a4d7d878b95ef8f03966ba903457a5385194541cf67b64ae8763c46f253b153d671325f206a8a93c3a3b5ac9b290e05112191cb1fe636beae5d43db1fac1b86a792404437924c6f30d374c294e3363c88bfdfd8aeac54a4d8b97d748c178fc21287133441f8d96ccb90f94a5308e229763b72564be3f4f03c71da781e5b7d3557c1295353d14f05a348875c609df8c5e4fd56d4c96b4b1ccb63ef359211da1852d107efec271b29a3b69baf0cecdcba11563bbcefdc3bbe59ef9b25bc20916370dabb214c4106133193f0e81896a7a9e4d8d40147601ca61117227001cd96e6638e213aae7e54f2777cfc7aa6b15bae756ebe100d279ae284a08d86ca2fa8ffcf07102e5f27accb5260b93a892fce6a8c9a62999c5255b2217767d152476db2ed56711593ab0b906d842347f7c2482bb022df9ee60d837d1ecca3c1051c1491e788040953bda3aba0773be4606b29f69bf81496c38355f3d1fa43d2a0a2eeb3ad542171657edec75ab9df7e5c07756489719368f98e4e828f3d4f6720b5dc4455c5209c8c1e438556371ae21a446d430c8727cdac0d271a3a5cdd05c86d080639bcd752341d79bd791947c73c95fc4efd44086c8835e7e6f6bf80c1b7fe64e52e5c47786c1ce56d1ac914fa2263e6b33a3eccbf8bc4154d2845d1a08a357cb9ecd489493bd70c127a4b1364460ebfcb98c0cfabd27c7838fd90ee5cd2f238902db71772e60e3f8f3d09a6336231a23aed6d652bd6dc0734a0e83ee00a12669149693c316effafa139a189c03b1eeee835e3ee0f9b63558b3a2f466f64ed6dd69535f9474c8523d89c584592068885906cbf836104fd60dcaa0c7a01fad768934419809f2cb212588a3da447171bf673cdf295f0d91bc8c73e97ffd1d20e5a4bd5bbd1b4d38322122544e9eb902fbbee65e7904082c3ddf1e399123a8e36cb15d64ccb5e60f97d57eeae1e72e8ffaa90c5199486ff88c15277f78ed3decb580fd511794a6561a1b376f009d3ca9927da21a1b3935b610d21def4413355a0983d7563911f91dbcab996afa2323e83fa60b643a852b587f3d7756a81a5762126119c9fafbbd2eda51cef9940fa49afac49e76873074f22cd987fd82e6353f4941314a88fb16cddf038c891d15676b2bb4b6a1d6a83928ba5c1b85c118b8ed1055177571e9d8df055cc0836a9ed21c09ce2445346076ee767a87829de10c2ae8854977dede389b0c9b23d64460331c941f42ea7b21cf2816534d0f20ef78e85cee3ca3f08289ce5ab354b61dff6941a3a0a6db45ab7c1560141dfc906ef07a5c0a27669f0e4fe266f7e691e7d73a6b72c670deae38fe2b6ed4e523181bf14d6b358e5e78bf904dd4f1c0b5675eada532fe180697972d9b4e431f0c6572a89a6dd7da0413d3fb29ee66358f9d65b77c3e3a5c59c313e2cb8f5041673b56ba04689341c8e95dc6f2f456cf0bd31be3a726f2455a50c38f1bad49cdb6f5bf8f8ad94dba62fe0e023348fe76193d250c639a7ce51e1681a76822a187e9a315c8cf26ca81ff367a65b9e9d200dcbc058994d9d9d124603f0190628535df6927cdf5950c9995cc52d16ae77a4b11f5d414164e976c2fca8c4c090e56a9b7c445016985a8b5e6bd8211ca1239fd559b249167c6d03c7b84ea48bf170e56592d143e301f0cf4067fca73ce42e9e99245b0c778c352d62facbf5e25e021a8ae320784a0e4b71808d890f42f40f778bf77898db0b4a804a7ad76415cda48db40a2847f9359f059d511d4df6fbc60975d9b1e859449543643082c0038f90cafd6b34659143d9baf191fb9137a910e4b334e69d6b4bd74e4db11495643181bc647e91108a92824535ceef7199936d4b8ce54225912088b57c59c23c4130556edca3c627f15f771d32e201faf5403cc1c821cc70df875223ebc8451d2d4f76138b8e713679c05e393dc202d6debf2318ec9ef1db2b8ca338310d63154fe346f67cdf83b035d678fe1e51ae15a2b0c9aefb6dd3ba03d1e3c4a9c9ef6aacc162dbfbe7e5411b1bcee55be556dc94e1be781c0f7ff2037fe43522876f6b8ea48da7c878351dba00e1cdaa50de54a6ab11407ed0e751418c037a1832aa7b91a729df699aee071da9ee14c053a37449c003f0ef9300bc6133400db9f809dfa3f83da6d37bc8b88e1ae70bac541580e6720df9e97bdedb1cbeaae6a4d420de4824f8631534f4fb731fa3bc36d9ab1973b44d8c12d9696c64ba7402afaf41c8257ec45d11e40fcbcc6f9e28f7ba9974da2894ae68b3fe3eebd4043db963202db2eb4552357d8d6cb669bb6fb281a4b54c72bc67d1bd4daca9e9e5b4df49faf490b35bff874796e989bf674a6712ed8749dfcba8894f3049eadca5c9df876c2497cdc947482dc95fad6f7a03b8106f4a094ae270a7bc407e8eb8b9e02c5ed66fe3bd341c6faf8b5f4c54497e91e8b4851905483ec725b97782a476a3ca53149ee58b15acbcc321fdea9c1761e5f053c61db447fe391ce404848badb6cd0ef72f65baa66882c0d7e4bd51038174b69f45c4d296d7cb2f884045c4484a06784af7dfe98d98dd09f328e9682f2a742ee362d3579b845a8ecdcf06be9fee360d3dc0e6184101973a2063a203bf1154cdfc38c4ec873a37c2cd691061b30259797a9d036bf2911a9c189081c48ef5ceb5f558d7c3cff8871b1bf8b78eb80921c61709e6ce2e20e663cdd73f2b2f1b82ceba9488fdfee8e4ca6d280a1175e4a4294e2fb79f4da74b507721a962fad8ace0816265d38e9169159da9e6009366cbfe2e9d99805e6dff19f3b93fedf2f6a32f34b52f06d521ba608ab6ebef8c7b8cf4fd046860fcc51d4ad5ee4efaa295f57868b64fae3a11198f7e25cfce60c02ad45b0088809042e51e5dff1f5271099b23ea8c102433c37702b3da64a2872608e3212eea517a", 0x1000}, {&(0x7f00000041c0)="4d43402791f29ae4cdf0a2f0290b68c45b34b4ece2475d1fa9740afc36051e4896eb78f5d26041da818681e908319598f68296e31079095eaca03001925bb6007b5b83f86d5f576efa610f1165dc0cf878354f2bab33caef933d7ccf26e52d7b178f175a4aeee2cce08abd345a41f950cf3191b32edecbc496e0124d5b0fcdf4953997a9396d9e3d9e29574c4eb65a4a8e62f6ad9fb33bcc0e344dab25c30ff6815412a27045e770b37b0f56e82f2a4cc59ca324a1d13f9d23c5688b065c69504a14765239f38d7a7c46e3340985144d94bfcbf4c4821c619d008318f6823fe3ef2b9549d119d1991f654b6bf037fe259decb8d9339d677293cd494440a2720261ff2fad20180ebd693a34328f42830978cfe7b6cb5b46ae83b27cb89de6ce8ac145d0cc4ec738b0e5c72851fa7021034d1a7725ab9f6e3909e74127528bf26c7cb4d49a64852fa9a47073c6d95d8a3e40c11fcb4373d8a265d94a9da942e5ff21619d7f562061ad52669418548074fa4a1d4db74881fb1f8cc6a3ff36f27b1ab3713551c583abc7fc5bcd9a8792d29a5ea69b4aab92e719dba2944add685373db102784a36e693125e6f81da4acde2aee39e3caab910cff799a493e76cf92f82404c8d340249ffa32abc26673eb26d6785525ec37dd1ddca933e631db54d68b6f3d22c6cc70639ec303d312aa5f97dc8cd52b28af9d17ff36b9e6a9d8f051f1dfdcd9aacfd6cc9c27c2d41e65fa03fdb94cefbc28ac0d0cc2d29b30f8ac8d59f8c6ca894bc0d4ae65d261b6c9b7754caf9113318c789c94b06e47b994e08e7f036d6de82e47c259c5190b74ebca8da547e0565bc06d6951d88ec1ed25285ed78181e8b0bedd58a69208c973a812074034d64e80c7b33f0b225c62cb1e72c90ae5c3131f178a5c7da60eb0ac30cc8a729c4a5446cacfe158682d5d5ff53d924ef5e29f09aa0300e17aeab3f926ea61cba92a3cd2b86d5dfc6ea2b61f03d128f5b906942eb88e5dec8a37cfa47f701f6229b6b8f7b10be836da44f91d7641dfbc1010fe5e59d61bbb05008034e7369f64ee65ebc179083c71d311aef9d5b95619319f779b6d970ecb7a460fced9033c168e83017a7b0f74f0618f4dda7bce4b4e11309f28afb6268953a506a4b60dfa2119c4ba8e0c682271aee9eb5739099a647844dae54b5d11bcfafbd938f192052b6bbb46a08596b955260e5e4c175dcdefa5768d7774cf2bd28c0dc0512fa932d6a76838b30c058cdb580ec1675a779dc98605a29d48006425d24bae5d3b3f7616255ce9bebe86c36565e83602372238062770e4b9ccfa7985c8dbf436bd807cd30f14aee27c83a566bac5885d3c0bea832d47a992f2191baf6303ba0a9f77cc721306bedcafb4aeeab22d360696fb8ad3d45f077e7b5dd2e591a8df81b048db3d63ab5baaf141eff65d994b5d9c3aaa7a7515e98e2fe3396158cc2f52a6b4e444521469232d79978765c384869d6cfb611b5756419e1b09a69c24f6c1c5a2a5c4a3361cd706cd92cfbd39d6e2f98c99695f3b8a86fe6f07e67482fb95b7d1e5273aa46d8a83625d4875e0a5b1284284e508446515775233e118fa2dc3471a5a863c9433b62381dbeda5273db9fdbd022b9c71f28374e0b3f1adbac58b1ecfc44d5a9a372f15e59414931a04423dcabe79839245180681df887e715c21ccc5c880e77ecba527354b51138ac8195f1c57fd54f7c56cc0d429386f8439306f434c1f597bc7704632243d0cc6cfd97d6982b1362625d5670b3255f863d967d2206e261d29a5d24d5cb53a12ef07d5be4397d01f02b406adf2226ae111937148fd0553a4b1e8a2fc8ce0a8030eeb3224ceaa9d4be74222b18a6521bf356704f6bdcf2517d44e084c8751e4eb95426c02a55eb5d5a19575ad218897d03d6dbe1898f187ce4afc048e3be1daf8237cd14f0dea17c6b13fda22912dd78e85af7fb5655913680abee124ec42957065d5a89293686bb6dbbde26c4a0b2f93abcbf4c6f8df1cf057fffeec965262db9812fe94b9343d913480828d27a18f106c52f5d543f62934c933cbaebfd70596dcbe747e99b46ef675f53f745208d85ed4dbf8c391f2ff668dabd2714cb0824630eb93a80c0cd324fc191070aa57f789ba230a19f37fa70e1fe5e45b2a71983d2f66118a0b27959602e272cdc6e27e160625c5553b16a6e5cde5318a5359dd2f696ecf7d3280329a4e44dabb173c43acbe198ba9f041bda409c4f2d65f75184ef53bfe008090a3841f52c9661f6ce38cca16f2b5dde3c161314b87b69d18e6311c9b0af8c212679db8d92ce8c89d39a72775228533523d2b30d46c54b919939b130b4debb0c6746abe4b5dfc2e92dfb966279a4a37570ca1d2b3c3b0fe1ac969698dc58160623e577addfe6df37dc7e5d72ecacf7ae06ee1ffbf04e5ea6f1670b61e7b385a28fe6e9adfab1de2a1ef00c4a0058ed820f0022a2b19c1503fadff9c8ed9b6c5bd8f7059101fb3253e5d3c0bbb0a626d59666e5c2b2ef505beea118efd60d5d76c033a5437eb663ab2f009995033d6528b0e1362a709a71918f608de2084e2ad396b9eab3aa506b48bc862689ade12ca51daae62bf8a0de055480a7b9896f42ca277e4cadf2bfe09b46e7c285d0e1e6ea7aecc2af1a0261b5a7fd2949fd5354cae02c41537f979d907faf7c58ee408fe16b718855ad5b9c870a148925999f130d19d246e5286f7b9dad8c80318010abad5de49b9c798e54e127e74fcd32a3fa9ed2dad374860e53896eb06d728a65d73e83089547f6c394fce75ea61a87dd7b991a72020d9e19512c1fe9b1f35d4e0916e90082d7c049760771155d56c3398f744d7ccbf0c9764cc7fd259cb9155d195e1ade67057fdb6068819f64f0950c397aaeb9aeedfb8559694cf576484d3a3cb01a1cc6d1fe5ab3d4049cdc70dcfcc8ac0828409a11b5cb0f176cbe3d7e316d5ac9ff8497dacf1b636d2f84efc43ea1e9e76d7c772303464d7de032d86b18a74d3b096c9af3a556fa1f19de239e71946033db0af9cbf67099a7085f85af4104cf393d0aa47c24cd2b7376365940b168930b0065c6016ecf50c1c60621d038932ed75a7e86029e56cd229ce040118829b5e5afd9c832db852329f488bef8807226b4e5ef9befffdfe1ec807a2e1206870da85e962806734d688759d60832eb12af7bcd7f58d2d9aafa65d12a66d2184a706d84f548a79322a3f31787d70b76bf003e6a97f83bc967e95e93ce79012b533d33928c46ec5f033cd6df12519d9caa3058bea59f2c4a3c5ad058576dfbc2eccca703cac183cc84c2d410d6dcd9ca7ed7bc3acaf23636c9c5ef11259bc8da8d3641cf8096931d2301473ddb4585eb044850cd302f66735f34fe86d018e5b89f7770e05cdb51575085fab8bed150f39a45517a058b944d87f00a24fa57c3ca249b7913f0b4f4d76d89b19a0fe43a7d66863df12c5e66df6423e1697f8f8112f2ca9d24086135e329adb4e512b12208729492b85ef3caa4912d10533e86024d4b6252f6496f338d905f8168d9586ea1e7f28f30b4438392fa478d108f6fa745e83c81c2a2a7b85e775886e602ba878dc5a854f9216ec70c745a8b42d4ba7b060581db11df2df69f52d699cc0648dee869d645d8da730a814bfa9b8ce99a2f1935b4a26acc43b88d764c44824bb4ac04d9c5cd39db8b0b09d3f5e82177aa16694ecc44783b947872feb6fb8bca4ae8e228a804b8d50061f375b4a0ac2e7041bf65b3020fbb2bb4bfecac3a74cf1d432268b99447b24b36053b6522c7299bde29afa27d920427415f5c9f5cb86278892114ee9b0dbbdb84104adaa94689c412ec674df3aa785f51bd2cd2042441ea9838503dc409befc169ced48b78318a122c668a67fadb22aea4b4e38356fd8edd7171c84af6daab58400a903d5c7c22a19d734f2f2e4f6b5a242f3cc1d83325fa84a74cf96f048b5461f2ba9e567361442b133ab582eb1643a4c2fae4f13f1cd3afd3cba77cabdbf2dd6714f5703ea285f65e60234ebf0e0f647f9d35471852c8541b8a18221b3af2d5387dc2d7ef92dccf675474ab272831e3dadd71d6ff87310c5698d26ec70676dd05c5d5ab9f4db664c2f6c4a90ffc16f75305c83b2fdcc0cfbffbe71b7aee765e11abcf491d2cad02fef1fbd5f094617bad80f7609a403665cf15bed38843a5e0b253ba082543b43165766ae2b945ee8b7218208849c0fbf2734b81b23d9dec2b0e21b68d43d279327afd11e20d510537722d7f1766469a4cd1bba2085294668623b486d2fc79ca7fbb295a890229f9cf18a6aadd5ac0ca7706d72f42f436d951666d5259d02c3729b0501e39f618e987fbcd09ef828582cb555d663a7128c08cb793ff18daa041a865f9fb0b129e13cbe25f2a8305c58ca47587542e92f7483f09f76e3d3d13c726d7e4a6434d96bfd94bc0eb2203980ab82aeca307c21498f92883929e22a63891657449ef61a6706b0a6e6195102c3b3d012753515140a42bb7fdbd97d5d2cd542a0a2193dfb5764ec3d6f3f40468ecfb9f5bc4988ea144febb0b030fda3ba6ca51945d418cd0cad4cc210c77acd4d1d7bce6c2f833c06426e6bc22e36f4ddbf14da36b7d65f9e9ebf6d2c8037f1805a0bd13418d06c1b158edc55af2b023283447f895c24ac7aa5b5019800df9850cdccda5d93646bb6bfd7cc23a127a9bee91ece511d6c7e951ab1e87af967779afbd2c8d91ba28b782b85b87453a7a94b2e856bc57415c20cc74703aeafda6b712b271b0efd5b76bde1e5c20bba7a6a763fff3a5b5a39aed1c777bcbd0a26337976e73d053abcea1f8b194e9165f8447c31df3df6f8f1d05b95af30d74d2bbf6560b5d0cf1f5cb5384d78000dfa0379522999e2575136060a524c9ec44d6ea9d26e9de422c3dced18bafcb85aee387e138534f1306ebc0c0841fdc2ce202970c48fd632302244803add09aa1ccabc4633994ce8090d1f44ab8b82baff752bf301c9bed34bee56bdc58fa96c51be62f2d1b0391b9e93122673d5fd8e525f432e788f84a05cc1d06efa75caf0b22a550aeb771523888937b3546dd159c4a83d3758e62dd6e984f73b41560cdd415f369f1ac29ba3e6f9e0b2eeef4e5da9eac8114e183a4f8c4aad5c3a7f028f60de7767137cedccb39f2ffb13af6c407fd1667701e69d623e7a9da733e83e5cd24a0ce9a6147bf92094ac3b828f37f9dd999e50612187a5919e1b8dd9270eef3254e72fc9ebb0458180493df1f6737ab83e566c4399720f253080ba89fae1c372982e9b1c4fecd85857ad48dabd66fb7a8b17b919a623ff31bc90059b9aca26ecb04a9cf9ead72ac1363cbb86eb83efb37ddd7ffa03bbb22d2e11299756fb5e846cc258d8447a50fc89e9be22a1bd18aba1f4f1b28ba5e565177d26666f96adcf40030d8b2da8ca84658edd1c4747dbc82ce7a228673581530bb54e05b2c993880bad1af67db0549ebfd485c9f0b3296d7950b6e916a3dfccc7560bd86dcb93fcc4fcfaa49287b39bb0f71801ff709a803076c834d0473b60180ad6baeb7b9ff1977b156010b4fe8f9af932c1f5d0b95649c1a7d588ed4504c32014570837bc4d8542e97ef69d5d29a7601855202abd8f0cc0685af0f6cf42ed06f72fe7b87f352298cc9c42d3cd696edf6281f1a7aecda8cba801f38ce2130541bcc3f3fbf86162cf83faf8d41ae8338ceb9b3adb9164086fa00dbfbba63a2dfb64f8fefb91e9c6f73fa993e6031353241b7bd3e5cfabf316a4b76638ad24c966f2691f5a17f6d4100876f78ce654112", 0x1000}, {&(0x7f00000051c0)="43254cde8b0c78d615fd8fcd8e5b9ba25e154a674732b3b654f4e8e624060d9887dc918b40ebee4a5410c42f56daa15736d14e7d07c227712323262eeedd9d1d5fc1df34ff3758a2942d4757c2fe18dccf032b4e54b623f4a03dfb497cb6f348c4530382eced3fb8df7ae7386c64a88dec322188cd8dc6a712cd44ef5860f03a555e19715969", 0x86}, {&(0x7f0000005280)="619a7c7039a8757bf9b9bf673d3d538bdba5e62d81aa68c3838509b99aab329b502480706034ab05e89e8ca8271bc7decad86bf40c44c0bedd991ffb320b582ae75b903b16602aa1a1df65b38399bbe054d36735bfd6b7c79a3d030233ac92b931b33941dae166da76867ca8e22f4a43e80f4c20241afc00ac4930e9d39ae9af6ce92e426cf10328b1f151885bab2648c211f2", 0x93}, {&(0x7f0000005340)="54e0594c283f46d3ee7277c6c9f9be7b7c4e70235eb0cd6f35ef63d862ca3904bd28c08b6dcc23eae1d079759d00554396873bb5df64d8e9322f3c73a04594c28c5a8b85fac9763c974db56db79e5d1220e2fdd4bd549b541bbd2865e581c904b3c0830ab6943b1e31e40e99b94f16e7ccf3952b694103b33796cd1da9edf058a07f24fdc02cea8a42c742dc269398306121c29cfdba0f9cb782844ad4139c8092b69a4d3aa7257fa99c2e160b6d3a7cc83b83b5ed4d9222752efc82d191c06863d57a92ab6b3832a927", 0xca}, {&(0x7f0000005440)="d7a7bd523ebaec668fccf7dace90c7a03069fafce0c65013362801671964196468ec635abb86c376292982282b5eef22fdfb1f9fbd3ff2774b8836a6e1ab64f0a9e8d6b90efef6bb9b39df124ea3acf90bb07bbad9482f54c8fb43d3bfc1b06fd2f0caf95ea72dcd6e549263b036bb87d558db86bcd41a41ecddaefe30be0a02fce13620a2a5f2cc2d7c2d918c369c92bdabf69afc748814a842e5a92c8257bcc02220", 0xa3}], 0xa, 0x0, 0x0, 0x810}}, {{&(0x7f00000055c0)=@abs={0x0, 0x0, 0x4e22}, 0x6e, &(0x7f00000057c0)=[{&(0x7f0000005640)="06cd27a3aa72517650df2b7fc28c59dd87e1f4b5254589eafac87b316abcb738bc2a6cc4d8231ac76ecc9276e01d6f6b5d74d22655f40e565cadb5d6c979f20a3a36e35c8f39fae8a88cbe84cdbab024811080d5c3c3a6013aff932bf3103701651400e47f53f93a51f0e031f1cf0d70acad223755a6bea93581ad0f86ee2b395e26c1409ca4a5fae54416fab41399b0809f9e544b02f8ef48cb994301ddedd4ec1756315fc5d736", 0xa8}, {&(0x7f0000005700)="bccf0ed093edeccaa6a8d817a0093e41cf9964fdf3c75b0338ad26a39c9703f6c041b1a249c736177aefcd3113006ba00853ff95503928440a1fd238e21878d50d05e421f5c4df49fa107bcd34639d7dbbc9a73ddddb84bb8143b22e0389ccd584d87f69736a9328b229a53cc8b3e72de1ec7a2ab6efa7c4f18ae39a253f1685a3964f3e803c6f", 0x87}], 0x2, &(0x7f00000059c0)=[@rights={{0x20, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, r5, r7]}}, @cred={{0x1c, 0x1, 0x2, {r6}}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0x0, 0xffffffffffffffff}}}, @cred={{0x1c, 0x1, 0x2, {r6}}}], 0x80, 0xc885}}, {{&(0x7f0000005a40)=@file={0x1, './bus\x00'}, 0x6e, &(0x7f0000007e40)=[{&(0x7f0000005ac0)="aaab01a2cb7a013e3f07d6b208c3874f32e634d405c2b50de8b0467d1477ea617d62fac07beaaa1880a9974ac11eb532866152c84e53d16490f44313e38d898a499c0b16a9ee4e4101ab855fc7bbdc2443c91891a09a78ed09fa8623c9b5a610fdb69b1615125b68fedf442934e7ab944943fb23380e4e9a97cff096", 0x7c}, {&(0x7f0000005b40)="0b4115598ef529e1e24436b2867011614832cbc7f4a1585615b1929250f726856af66f3fe1f84d76a8717653858dc2b5bf2875faa34279723316a848c296c928bbc2df1e9f2424362e3b83eb08892b317c1d9fc272b242a4292da17b4378ff8c9cc8fcc72e5078f81758f766fd44b4b910bc18dbfab3903c65bdf88a685621c1cfd39eeeeb19cd1d3ae530741e8977efcffb72d9fdf0dcdbefe7b036ea326d3c879f17", 0xa3}, {&(0x7f0000005c00)="adbfdf3a39dae5809e8491cae8491038d1d97b8a6581ecf5440afbbc37cfff6c95cc8847b7b07758b228d5e1c1117eb65423a98148676e4044a0a541a40c382a166fc8d302695cb84977dff8e101564eb9cde462ab037a4348d6d0c68df7a97db6eeb7692bcc9960562e313513f2e52265f60df3988590ef3a8e66a9d985f4b495d71985b3e9554916dcfd191dc78420215b9be08a9c0c557808a978a2619cb78dbe363a45d8b302424815e9b18b8f921c6c5f5c25f314de86cf165de0d082b54dc799f376b0115c042a8632394f328bf6bd337a4e7606509dc845f7738db67626e1e185ae51f63777000e9c49dc180f6a3d6b7aa6bada92d4013c5f3b8924930bc88775db63c43c7bde0f143c2e6edc273607cd07dd3d2fca1cfbc8785d522120870519632eebefc59b9945a3b373310eaa677f500c28de572ed281e364ddf8b79363b158fa6f32c894d28c757811fbe023587919807ed4a2abf542f3a17d41f8d14d8df9f5c499f97a5c31185645fd4e1a7eabad3faf26e9e178ce41299cd370a6f7b878f84d4ccc5fd230c16a258f2d83e0130cd7b30bf026dab4b434dc967c8a5a7a24b3d0f4010d51ed74c69aaa062855052bdcb758a64d892b423f81b974ffb0960fac63263fcf01e124d572da0b63792c86c6a738e26f20f5711b477f019f2fa9cdd303c9065cf1baf116cf30e959f789ce71e8bf6033c2eebae9003d459978ee65af4405c4501edb22ae3c673834f529f01fdcc3c818a70bdc6a7ee7d53f8fff340521f1e9dbd913a47211e25e8545fea3cc840db0956f38338ecd404e488f97f46e969fcd262a445ae155b9d3a77a13e7432ddd6f4f34e9227087bfbbbf5e9154ff001c583375de8b03da4e1a735cb30ee5eb09a3f537940118c2dbc9d762365b2497614fbfc239e0bfdff0f71a283f20e73891ec72a1763dfa943cfef556e37c688ffd83cf1fbbb50b83966461ec057e9ff719cbd1d3dfe41e435098bd9280d2c43c0e87d7839c1d2761e6af81f2491b9f9b9eb4a678da67198a08b224e82c15db10be15e0883ebcf53b69db9c7fb946da297cd1afd5941c8ece5dee1f943d6281742a07761c73794a7c1da9a5f59ee2798dcbd5daadffaca563892ed2286cda027ce0ee4e4ae05b0ef574a408b9dd753b56beb92ed24da15be937c43f0bf44f9903fc0dbf31b8154c9e387eb9c23652ce016aa1098666ce7f7460815b1c5577ab7fa8bb7e647017914daef6c28d656f912ecb3953fced3bde24fad6208dc0e1fad5b0a53d3adb477449d0863057b3428403ef902140a69ebdb796835bcb803a8f1a0026befe17ef4ff67560576f7063fb3c32a87812125d324c7c68b1eee6fb4338f0932803ec352a1b916b176840bf81eb26f0ffa5c4c5bafbd28da73a6a4169eb68fe87d73a458da9b78c9237f404c9e700e5ef943d72998cb8f43517a36c16ce2b89239c4a5ab738d4854325bf191ada1a7891a15fb3fb03f01c5a3b044a459fcd9ad6bcd2d51f806feda8feae33823a5e500e44bbfba28ef713d3b287b179045c1babe9c463708bd291bcc9d9653859642fd0adeca11689e3d1f6a827e696d4c5bbc0e5a9140ae6ad9577840c75536f48c1638a41db967822ee85c1c16b908217a61367a15f4dc1837f1c1e318c6608864614756e6915b5981916c84b22d824d116ba669b87f3768a3dfd6fb3c3676c89505aa82188760eb134bee9c36f641894651d569e15378166f0c465fdcce64cdce5cbbc0404f706e469ce4dc46457e33be5b2398583a5abf3ecb5e75a5279fad7da9ffe1535dac9a8ade276b45d93c66ad004ab4a48f52ff019e03a9543642f99fd5c0281689d08d19217c4f784562962f1fb2ebf8615e2b3720fa357a4e6e4547412b123ec5f283294d6d4148a4340503fd94c00b0370c6993938df861dbf5d60bf03f055231cd79f125f92c5bda6361da4c4427361e333388c7948aa17461a9a069c0924e7894157fbde45e0ff1345d970b44e550d00b1d2ba76236fcc14f3c46796008fc488485c38b106eca8f62164577cd8bba074d3351db4c1a192343c6db9d21341bfc53f8e55a53e65f43102808b5cac0b2d5250474c12458559e2f51e8620a927c3a3257877d8446f8a197f21920a604794ec78c14c0818f486847745c2659d8423a3b2f4eb73621ea6c7a2196d8b7ed642b4f29ff1d52daaf99c66ee3e216087c947197a208c735d87c54c3c2004938ac832f73e8fb578479707c196297c0f47982e76f5aac7ae5c08f4ee2db4c4df6b09517b4c5cbcad9dd7244253fd316bf9a3def009eab37f90e30067ffaa83a99bc8b0653bd17e5134736f4dbf27babf7223a0e508dc4cbdfd04041fc7f5d3b95b1cee781bd7d6c17e14a50846cdbc73f88dec71ff1dd2e13b0011d6ae72f3ec479871b16418d6476a724f492e6f3646fa144eb1e29fa0332b1ede9fe86c046353f01a9e8706a67c93ace8cd28b92f6a5562bf7138a35838fe8d8b5d5654f0369df3ebeb273a5ae10ac0028dd068f8f10192ee7e0a2dc0ba3686d395e2fc3c1e0cbb9c5792dbd6bfa8957f6ca7b3efa3f6473dd84e8e8e1c23ec72e2b8b3a802c40fdfb615b0706931c25583a8e7e054d2fb267984235bfbcdc5cab62cc9c1c44992575d3254207cc5ebb672882d96182d07a3ec5973b80286da3dc1429ea1d5eb4ca2d09e1d9407a5d3eca03dcfd29a237c45d996b810e6a697098e5d7213a320c04ee805f311b70c6b495b60f318128f5da017b579292f75b219a8f5db9dc787794485bb27ed590eea6d7295b273491f647010c3b3bb9c0500a85cede2a1a9b8dd47774e5be84a4a713968a67475394add31728a654c976ba6f2b23ddcf774776614823baec6c7f513815fc4fc65800b264c3813d841479a00f176d55d31a4918676139bceff725c7ab3315fb50f7dcdd1fb1abd381a4ca3e9a7ffe7f46fead14897751450c4036606e19178e96cdfd67725582dee04efe34b317725b35827e9cf63e7c58c4c5082523d1088825745f7fd454c48b5b63f239d9dcfe0139c7c5ae20a43de2e91630c23312c0f740f39af32661d011a80f19f7b2018c032535d52566384694c30688dae58afb7c9815b4b4f474482cd916dcff149671025c2732be0d8ec647226b6f699f47d962747876b56795e606e978e3c1f525d1d195c1f11cfc9abe24214e01f644e6784a89223dd59b240438b19e54e5e80f16e7a2dc04639555d4a6126baac00af497fea40f00253e813900e9001c806ea3fd2b8d8ad188cd7a050ea2fbbb9d94a1fd61b942bb8d03858b33c022a913b1a9b9d6428537de860821153a4adf98ca6c0b9176eb55d80c9d0187c89c290f16447f6692ffad3b2525c9288df0fbff5d901e01ea459cac84d7e15964682e755f8100cb4a064018444e8182f656ed492fa3583cfc782b388ba48c25c4ac55f7f05e9efa776d3398ee88bdd8173b2b3e4fed900b097364878dff7b7b5380e2e48648569799dcaed92ac8998a34a57598673d194a63def8acfcd32502c74ad81345b471c380d22d40e37076c04764d5228cf802cefa38f8b67a95063f328bb7728f2abe9984bb2f42c31b8435542164087b9f1e4768cbd2de6411ac673909c7cb5a995250da1c87956d9933b7d57aefc25898fe245f1e801989dab640c8624cc522637f287b54cf9004776b4ab865c9bcaa3b100029d7330af6afaf76deb0044ec4ed4adb09bd62b7212f57eef448ed6224129345bf92b211ffa6624e3d06910a16cae5f21c345d030dbd93d0508a2fd9a8747d51c327e45fcaef210226c19487c92e239e3ba98cb5b0ddea9966fa0cc31107ed34c775d4a6ed71679d261670de56c148c58e87105bc609573f415ba505b68fd07c0cf85b832eef54f5ee26de4e74653f5212298d18503ab50f18f70c0b2605abb1b61bc554a2b3821fd0615b882419fc2804d05e5fefc02ac945ba669dfc8ba756ae397023b60c485d4c3121799feca17b6f9a89e06d2b58cfd2a973661233fcc6c951d2ee2a54a01d30b93be4e8296994e5513b7db347fed88ec95891ac9aad094ab92a6bb509b01ce80c4ab2ccc022b3dd2e3ac95fca56c2e188700e425bebefeb09e3a0385b2f41ee10c85c05213d20d0911b808c04b50449f9a425ab142b9f34d7c1608999f053f2f99de083624ac0d7fa066b68ec055c4c06595ef4d4bf998a91829952b264b23590092307916e7f3474b0f9cbb79af48e2215cd6f74c3330a2a349432a762bca76fd10587b75a1a834c10a0d1af714a4bdb700ef2cca23bca3e6119bddd6079bb6deffd6ac400231eeab3b4dc5f8c995afba0ab75b424059b6858eb5e6a3c7d49279fede5532240335d139beb50977c03c2c989b7b836055a684786b3922d2019abbdb81a83f77c99f692b55fa115e88206dbc7dceaf864cdde07b513ba873164453be8bb6a3431c479fbee86393f053e4d15c551eb088a7fb00d9fdb0c328fcca854cba894acc60b729e513a6c1304bbded321f404459d3e50aaa45a43457d6796bfc6882b3ca7f40467c6d8f4e3a8b9bcb6481b936373970b05fc1a1762e30c51541d4b3eb0c957ec48a4c8aaa058fb23f22e359bd72e12e686b0a02e05d8fb1f2c2b985566df67682d4252c678b346d649797905081e4268acdb90f2b2980bdf63393d156bdee557f312f6a776c674c831010557f9c898f390a12643fdb3afcbdaf66dbe7ab28dacc31ff5b6a97dd9ef2d567cb5d02f388fe0418a404685a3e1103deff60a492ee78097c069a2461826b7e3bec535ad975f4a3469e1c0e549de8effe0d812fc352b3ef7753d83cceccae2387362c1e26b359cb2face968b3660c6b4b2f366782509907aca34db04393f0f67fea45b7618de61c9a6db8a43bdf6c2bb4a5d992bee79ce5eeb591bd346c0276b61353486611e6f1dcf8911cbb5036e82083e4741a2d2d464c771d9436c7d5f9779362d9bd23a8d81fff8eb8f69c47ff84f73bba7bf2d6712b455334fd19f45d840c4f49bb729c9b7db421a6aace4b7ccdcc4c5df1848d314c7954fff9e653d570dfdaff56f68f145c45b5aab567eeb389273d72d3d49ed5c58c0378bd5c5984a6b30f185dcc141f5c6587350edabf4b50dd7d0547b492fb2f1fc8a916113f0030a9232d58790003e7520e35eb4082421a8bfe854984b132694f57a1ae1e98a04b405deae658d179c61b1bacdf48bb7c78b96a3f4407ed18803914b994dffe97e6de9f8c0e06c8f440df854f5b0f6f72aebf521f46caa93c06abbc30d4999be9fa643c2660af62fe118728a7f1982a8e3d69567f9005d0cf6560f8e4f18cbc9bf6e11c8c6f1af71af71f901a5ecc048082b26fd390e718bc7ee12fda66d3de574fc9510faf86ad2c156f9d29ae69066cd037c6ce9a01fefa1abbeebd326632cd3603f385dea1e44ee2c29785b50f2838995bec606e1b80cbaf065b455ce49ac21d36aa2ea14c3f98d8a5e9833ab01f0319fd21058ed0a0393bc3e0bba2737256ebb15f512bc2824bfa5a3949671c54c2e187570172d7aa3f7e5ebe75726e5092979a187814829ec396a92a82ae5bce0f7c22eb76b5a28ac0c530b2f94bd22e2347d5cc5db8421c05cc84917ef7b5e3dd874783227a8600450adaf3e6d1b67d9b6ef21a3b953b7dffca12aa10decd7989f77b940f79248eda41e9c3f764afcba1b469778d32f9d1007c5ec9ac4b0df807bb3d589eecf82293be44cfd3ae4fc2847ac869c15176f3a31a37855bb9d30f830d296c1ff74c6c8be1a71cd195a0dfbc7033703cd07103cbf2abc8a", 0x1000}, {&(0x7f0000006c00)}, {&(0x7f0000006c40)="a880da2fbe830b5f056de5d9b089fdbfc35a99416f390bb2dbf41e194e41fc948f1161177bd6aee2bdae6ad2f0da30f5946ec781b6c1dfd6d6a9b89edf04013280f40e5a8f3cec54f4a332fcaf1c5a2bc76be0801ec067533f973dd6121e9c9d51cfc4ca358545faa11e7def7e064c28b4b3942c9b1e7364c65c1d3fb2d8ef0b4eb04125b3d3b15853db79036c62486aa74eb9b8a89f7970900ef2753f898175d8753b0466de74f21c4582f776dc4da45567a584a9e54f56d96a340201c445b2e98cb951002513991086e8c4995eed64ac95695a5fc636333941ae30dc26133dcd7b09bfab2fa4ed66869e545ccf9f7394fdcbf5a3a8e131a4f1e69b02f1d15d6b30032a140692ceb90ca36ca1555447da6f7289a16ef40461aa5aa622b8b523bdfc680acd36271db082625bfec23e92a58a0acbe93d2ca8b55894fa38bdddad617d0ee671586d9dc1a9d01bcbb264406adede2c9f7d6815cd4ff4257f38b219f2ce4d988cd8b0cd089466868333f2063f3be488c4c210a493d4c97fe0afa61e380ca19f302edab26f8183546420930401606c694a727854edea4d3e4f9a7abedbbe7b345ba0846457e834d87f690323fd59be64f1a048069a462b3fd76e9e7b5cc1c2ce31b5385a866e2857e43641a177c510da115cee5db10001470272d26597d33dca5eaf74e672a65d150a931634e086cec09fa7d1cf8e747276edfc4658b48c8f13e348c67e701b3be3551e3769d63e60a03b1ccb7e697dbc82ec1d0829d1c83ef4b2dd5340029b8f56ce69653cc0d214d844ffdaa0726b2092542e94d453a4fed194a7589e76ceb2a2f500c115b02f851f2231832a276380650101c30dc1440d9dafaadd6e82b329a4af7cf875738b0fbcd2978b8cc127aeb4c780c88218a153605e72a5ce53fda7b95911a53b8cff8e58601005b15b281f6359665214f90fbbfca636c76cf81fe6fc5baac64229bb3e9af5c3f4c4fb95bf46f61b0654f3c124f3ea379bea241836aa452396522ff0ee5eeda41affb6a4adda2fd3419052b9eac4adc3b542382a036da94add7ab4518ce669d81f05f4651c9d9f8c09eeaa1c8b359f139aed14116be9523aa09cc0591038f9329f9fe8a51d3ca79bd121f68f9060c64eb5dc05524256e1da82b4bf3a239ebbe9118c82b0cc6b7ce2a732b7c992bf08e9ec402611c07c61f3a229d11e9aa27975d8fd8f5d6ab593c75e2c46b35a9a25b5ff3c36cad021ba56489e7c33ceae0ca3af3e19dc594b5d65a0b572dc95ddf3fab53b0e2382ac7706126d0c236c3c9d8b1b5b26e7f8e07737be06b99be6ffb0ceadc65a2c43eb15bda6bdf2d73b5b7a0f4b95bcec4566340ec3b8117654cb73a690fc58621c427ae822468fd749e8b6fadc2fbfee981659ec42cf5fd1901e8dc8578a803af912fac2d842f1bf2235372618a22c856953082409b8382f86e887ee3c77ed293d9b06a2b0064868807cd6e71a343440504357f1b6fd5d832842ee318c250d11fc0273e93d48e60669a2bcb4ac66dd069a44c8b3401988fd05814d2fd08332e0c6d6ff931787b9868a3166d9b87bb59987ae78a84c56b561327eeb40f34918ca40bfd4ca30346ba65395b6f13469b9f34dbc3ec27f1966ba27818c5fe4b1daa83328b5c2a2618886b4dadccd9a27a72fb6d7db0cda65110bf501e4f529912ad989ede0384c6f353eba093133f8d52adb9245ecd9ca68020075eb05577dce48e691f5e32d83374421332762fe3252240716e3c3426a3be7e237a85b5bc92f2d66a7f128fe27cfcfee29f12e9279b2b2a09d52784dd6d152adbbc96bfe9210c11382c4fdce67327477c97bac7bb2380cad7033b70df6a3c76c5c6bb471d23e4d6aea9667ed44e6ee4be215e7093143c9bbeb2cd6b4798f02d1cb176571f7e591e074448fa52ef46a14e46f596d34c5e84e7d65630881c1a444bb2a4501c7cd8c2082d9e919450db0c69a2bb08ae0dcef3607e75ba5ec26c4fb061ae36cce39bbfc492e97c0773f548958e36a9deb6762a614b00a5cf5592b1a45bcc3c80ec13868ac17cb7e35ac84acad6e76bdf2b9ee948e1db53e65932290d9e0be306f2fa0fafd4c9b3577469bd0af818fb59696aba231ee5a83e2f613dafe2621173a4176a6b48ee9d5af775f541fd43377b7ef1625461f29e605e06ab5edd9bfdc59d4dff68cb20f1f0bc9a98e0836d8b7944ffc0779b7d2c18778a9c9433c223d780b9b28f0eb1cda54867a1155126590a1912ce5814482a9bda3b77e6a6fde3e93b27dc2cee6eeaef76a4e2406023d7d13246bfa337c68985e6623f0fd6b5d96e422ef25e98407130eca2a25c191115f36fb0edc64d9cb9f16a391d808885d3db0eeedec387ad098eed22d2e9dc3cf90d3ab3f564012e2d7daff3c590ba6123b201e47287d134321e4afdfb54cac967c43c35ac01624bf17d4ea0db72a99ae6a070b832e5463e7e673d039762590d2f39a2922eeb73c0f1b4fdd01c3513be17366703fdecae6b1fce46a7dc8b4daf3bb3fe2712c7d8f9ac43bc182545504ca5d08e1c8a013275776553b1f25bf1e0db7b284af713b788bda880dc91f790e8d5585dc358dfc5ce456f9cc99ddf0a53b548f9c12b10cb32d87153c69b1b9b06e2fc0cef8d4d7a943a9788c91e06f990257f146521a144734c58049170aed7201d08dd538edbf314bcfcbd2deed6ca9e710cff1cf5f59a192feb6d63686907603e49e8365f872ccc70f8505ef73eef0928e807aa9d9180e2f4a28f0a4f9450235c675648cb49ad0b810cb451420c965134701086cc48ee01bc5e388f49bdf91ad5d4acfe4dc9aff3e042585b1a7e3db248f46f6418b16af08d40d38cc409009fca12c56266c1d4efd865aa3675aa7bcd8cddac816538ed443a7561084c28478a2017c784a1d44480dd070c06e30c3ccc2bd16f77557bdc866bd0978cbf8057e4f7de6527eadbed7ae032123de78a108c323ec307e677c56e0c64d0da6980311bd75960643c640f688ddfe75918886ed27251ed6f43ff3008f4889e3427fba2e765c2bd03cdecd24673f8f29d81f40c629951f8addb1a492f3d348759c212a8ee7601c6a19bf4b757be68430e78b98f607a475cb69e73cf47684b33d8359e3cc2e2641fd3d78bf07bc27b47715aafb828049ebe05fbf3002681677ef36128c27fcf769f02e564895f32a8f0dadb62cf1f1e35858ac48b6659f55a8b65eba304018d47d34e27905e748f6a63a6669046099d04c6cac677f0025d78696fd7200b9f8f8eb22f19367d2f6275736c5d16f1bf5e6c5d73861410360e2bb7d7798c97237c9c89a26c9baa5aeda8e43eff088d871eaa7094035e9cdf2fde123e72fb4827c29932b0f494e2e53c531cad55b72f7cdfd580732c156dbbac49f80c9e78d504a3006e77707664b76e583a808019ec8e628e0db42785758ffef4d5848512dce1baf725518d90e88e8ed9fe2528cc765e376fd2e1c267278fc9123ede1a13c0625c7736d9f4090809eee11441df3f3e524206c931852bff4cd3d71cb81031cfc520e1f23cd1ff17cd233e956dda2bc7337cce8395087f7db93aa00c5933d2c30d58f67be511f147d74255a972a4caac2cf994e270dfb88353170e74a33ac6c39260e35d82046373711f11c9bb6c6d81400f90157e67f748397d9af4bd1a5631d7840b6a9b3d260800886676c245a73ed017ec009253d79c379bb125a8380f985799d40cd765e84e6544ca0487d8eec8c4f57f2aa7f9e1d91d5aad5b68d5ad415f94975a225760a64ab2b840db18cb34f0d61277c3f34cfcd09805e4fa10e7fee45cd7a5e88004f065c21132bd1e95af1f207e0f1bc9430ef4f35fa457a569d85db7a7d41f55d1cfb56fb06b476688e632c439e67ac934120c827d253c4d821694250f0a972e57726345c6649ebc2c946927298fcd572b1e44f1ba985780730a3d4533602f89bfd73c118dae8512c3333d54b5bd0a58e148a022762def00d19d8e810978c9fcd02445ce5e7fcf52f2eed8312ee949850499f4e88e152ad42edd40b6aea30ae2f1568ad26e75c01fe975401d19863f26a3800d5b03dc526549b8cc27eb2a3822b24c1ba20f679c388e09255c509ec34f55eaabedbe29dbb7e48e4853a79e43ee67014b82ce09b87fc75c9fbbe21ae03677a6b4666a9fca67bfeea19d5fb4e46f9da7ea797c34d3f29e6f0d8edd6bb9471ce41033d44fa5b856cd71b8633ef3a0ac384b58000cfa0ec4d6a823382af024c38d7bff57ccf9b03b8d994332b156f13deb8054cd0da5463a00891222c3321ca3e761581b5af9b1990e5f505c7b1d6e4fa99d1eefdfb11406c141ad18253296b14f904e505bc898d3359fb48b9fb10360eb279136c7fd1e4f33ef855a4afde5ec2cf82cdb169ff122c81fba335bcb489cd1bd337dfbef569b625a0f4a33bb7a60ba912adec7b9a2e2e6de4688fea8206e7ac2530476712d0176b2611a5c09e0a615531a16a2a2530c207a18a9e29336c2c6f9bda769964949249de87926063b26908ed6778b241ea19ed09b267d58164e783f1aed2cd561a68ff68dadf218bbfbd543abaf147cd39af5f8e18bb4d191958228da486c2894712bb2e0d30b28e589b992e8b368d29740246b4f8d6a7260cb0e30344032d5c4f53c63abcaf6a4a3fe0e738649b71e8d451e6d50c81b43370d09a9828ad8699f50a83edd6f6834506d349cfcc347852afc5488e971378b045676af50a997b2418f1609d99b0668e5256d6d94c663157f34d368ee9fe16955585f62ce8179c2bc858bff4949f0a2e656e1c377dbd58c5260d8b79d7f79cd6b419cdc1ed953ea7ce6203b8403835789691e9d4870e38752ca9ff7bbd9d448ea14fbd3b189d605a541d45198f1f367a7c0b7af87c2d24dc52689eb3c8b74190781a172fd4c47ab1d93f1abea215593fb965bd342e74f822f2a72b7e1b7e614daf8077743033b5cfadcc05249705f04277c316fe70424241d22b97f6a8f26e98ff6c54c60f26bd899e3efd05d5a7da0ea178f649ac40a9a85b396d9b360af56425bd877efcb1db9bcfc52ad3acc7162601b1d3d8dd23080c06cd250920c6318e098a89cacf9bd4649f19487b104715c4e91d276071da347fddf18593c8af20796d0a5c23aa27bb94f8fbdf58ba1d1fe0d3cc9b77e198b2b6bcad4ec4bb4575ef29ff400b3479cf98313a275dfb2b2008ebae1db2c6a91fcbdb275d4c723b496b86480bfd4107e01d696ba255206d7ba35071d18bec819d7286d619e84e4bd4c04798dfb2d73a228e9377099357036fe79b212dc51b4f5fa8df4623834e8c976026668aee7c9687c93a5dcd3c23db1c6cae05b118df5b58e591b46d90c3c1385c6fe65ff1750aa6d6d41b0a1e8908552102075abb3ec168a8a38c48b06cab283ff62569a51c7a97c3115ba2477a5895b42179f74170447e154a2e53428ff9e02f7f243f775fa0ad4f1ec2fb333ad2548929a2b914005cc44967e6ce4152b86e2274cc216b639f3783d2a32c414232f95f5a5443c0bf1b0f90e6ded0ebda6f508fb06e64c4246832a8c03f9b24bb3f8b7cc272ce0c3faccb7e5e7ac9be7074db666f55a3284b42ce37bd3bc4f7fdd8c99bc25d225764725fd36a9ff98c533602d128469dbaa289ad65cb45caad88597a392f64cf5c703000499b1ef0e08af4da230168e31a5b59f72e0ae3ff63bb83042ef2103a12fcb50bb37339d98ad9686abebc6b40cab63fb5ac03d7cdfdb0fa3bb468eadfdc1e99e6f83f73cfd2d6ca99ce3c1a362f80b87241e7be4bebc5c6eae1a4b3599819159d", 0x1000}, {&(0x7f0000007c40)="d9bec5dca5453598ed287525132ce24f53ea487f3c58f39522afb9a2e1807bb6b8a425a96b53f67d68c83abee6638864eba3e82cc60f9a6b16cdac0d", 0x3c}, {&(0x7f0000007c80)="3f3f634c38971e1ce2d33f719bb6de5510b27cb3f0965241844742e82c743875e549bbeaeccd94074b3d9ea813116a98a7f5da058538c58497b615037fc1ac2942ce8da61d5136a61e81cc7e200758ce4af7b4a97217d69ec4be7f53543f6913190a85f2fe48a3386f6f04d53fc93284c27bec0babfcc5d21f1aa9c47a25d2556830719e05ef8b77fd0e7c1addd2751e158ff9f7550cba308ef72d4c53b23b831cc01c4984ba834c479db71741277a70480627d645b234f069df527fe0", 0xbd}, {&(0x7f0000007d40)="0b4299785d2711482fa1d52ea0ded7e73879fd9ae249534ae7b1cc83cd0ba5e150df16ab80dbac3f528797b96078b69b85d542ad7bca6e5b5039a68aa2668af0d115584f116bbc340410324844d159ee6086babbe2edb89714234483f0b1000da85241769420167680fba6e2957c93fa7119838e3f76f736c05f3dfb6d5d785166e9479273a8ac91", 0x88}, {&(0x7f0000007e00)="b43a039350568411c0a07cab8be9df40e88eb0ed369f35d124", 0x19}], 0x9, &(0x7f0000007f00)=[@rights={{0x24, 0x1, 0x1, [0xffffffffffffffff, r3, r1, 0xffffffffffffffff, r3]}}], 0x28, 0x20008006}}, {{0x0, 0x0, &(0x7f0000008140)=[{&(0x7f0000007f40)="3aa17a5fe6441fcf9e9fc69e01af490ba7f914874516a4fb058226cbacfe577bd83273448af2ed3967cb6759ee1d6b8524579884ebad2a6d5555d3ec0b8587cb1cb851fa795a835a2540cb5ca1eb67ec19cdebca186b3f7f3daddba8e36a37bfc61b6f4176329cf01a45cdd234e344929d7c900fdd23ab8b313831f271e1fd57eb00baf1df987777cce5190a3339c77ab882435fe4307420d55c08ddc83f2649a2382efb915e7ab34806a87a833937a5717c30887a6b65257abb7dd796de20377ad09707cd26513787c2a368423d04287d2cc0fa05ef42", 0xd7}, {&(0x7f0000008040)="dbcbd7980a5f7344e64ffde9502b8ca96ba102bd1b746a761b8c112888774124e30f642e01cebd639963bcf7479bb7fefa0c55f8b1d67c82bbff8627dfd976ec523d9e5e0336ee35d9320376f6e1b43835550b40ca68477cc6e8276ba447090b48d1b2ab6fd76e21eeb672ca59cb74faec4e7ecc436aedc6de74967887e26ab61c58c0718c386d8722af9f56a8320fbe96926ec19ec9590aacf8c831d6b198a49694f8852f9f01a83cfe7907f040e206a5bc981cbe050033fae6c0cc24ace2a26f09a38616e85c977512037d62f3cd5b5eaa8cac5a7d1137ee0372f00478feee6957c4", 0xe3}], 0x2, &(0x7f0000008180)=[@rights={{0x2c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, r1, 0xffffffffffffffff, 0xffffffffffffffff, r3, r5]}}], 0x30}}, {{&(0x7f00000081c0)=@file={0x0, './file0\x00'}, 0x6e, &(0x7f0000009680)=[{&(0x7f0000008240)="5230472629645c2a83bf49daf9a2eb4d24fa6591f37d205f3f4684d8674379ccfec41ddc2fa43dc3d73a825174420c9894e70ff98df704a9a9c2335db8efad9b7d2fa7fe8c4295351456", 0x4a}, {&(0x7f00000082c0)="42c7b67244b28701a620f51508503c7517ab924034c8c0f2ce3504b30149e3680afd56c9799e8e77ef6301ffd5b0814cb16175c6dd37daf792b8de6a1e0e8c099a520327447f3ac1ed356cdaf078652d51fc14f4952f", 0x56}, {&(0x7f0000008340)="5126fc44c251566681ab77cfbd7349b1e3ca11eec60598bc007e2312ba4fb71b0a6b9ea333160d86697d3063000fbebb7c44", 0x32}, {&(0x7f0000008380)="d7fbe62dbb02af7aa987a94556eb049ec8e1763932411784e96ab24dc8ac374a5cc0e889eb9dec56c1252c66820b129c3320080fa94b353c8eb18b60c38a7969aeab8dc46d17eb539fd3fb77fc46abdecb3fcd3119b8694ae44b7a25b4d7832f28146936ea1e3936ce018fee8e21cc4c0b5bdfedd93dd0b6070f3c32ef57e8f06a24144d9e3ddbf4061a73e81ad5df1f8b822372d33cb3ee5ffd3c5bef35474ab7c7abcb475a9d2d8c521ddbb4a8e2ada1f738dff6d6ccb44bc8d6b5acbb16ba5127052570b187209d14fbb4e7ae51c645c8ae00942af52f6028f8ed5e70050f5e968b2296398e4294259bc3af8ff0b11c8c8e7c293386004abb35e85fdd36fd72f5f7cb89441a93f5cf726f68a4396d708573435292acc570be3f81e94a69d1ac4b36fbedf93857c628a6742413bb5a6d26d5d2eeb965654ee66dba11e8ee67421bd63fc9d7b3d5b2910fcabc89d8513c6a22d4b023e45ca1aee29a8afa78399f7f40e069efa86a6795ce997ffb425f7a17160da766fa6cfa4e6055bffb5307bc74742a3f0984f6e06b6c66b6afa0c3e90c10627199a26de7843bd328615ab886cefbf0709759901e033a00322ab798bffad3435f2e6a96bb8457c68476db3f6691a5d35d257dca408d5e0cc90230081193efbc97b4640e224334f1caf0fe8d3b5d734040c9f3b6222f5efca15fb9e9776993e2eb10d81cba83889cc3844072fecdee0442066b60f7dc7314527debc3070d48faf3cdc35554e304de49591c9f9bc2828738e8c111c2a30f667d2d0dba2713cce173bdb6aca0780b718612d9c0f2292754f50073b41d69f1d858b41c0575c884546f2dd8c2936d0e54a59339af4d2297ded65f9d8de34af338868f99401a16b97321817491d41ae39645b6459f2062a101ab94bdbb9226b5e261d2988728c4831d76754612a76bcc2ff030184f6e77d17d7a5cec4140e3fc3719d33f26f754ff14a8dae23edb9828efd7b65adfac2930bd62996438984a72e5e851c2e79b457e7e102ddc84da7dc04e63b1f39b2d25e08ef973a96a29962c4ec7a90f89105ecf477cf4b852b35f8a4d31e8a971b02235da3d893e656fd85e3c45a532e16936ade4da0fbbb629ce911fcf68383ceb0d32b8ab7bee60694f97eb8c9b1f626749c316b22d18223abb916ed6833c6b50b335631a02ff4ad13b3bba0177c4f64c81a551887c01be6f535150b58eb28ffa6d940d988ac0cd9105dc77f9de01a935c066ea7183250e4c23cbdc83ef61458b5012a66d5ad83ab97b8f07a90110b2c6f5348fbb10fa0ba2ffe0c7cb5039daa2fe044df4294af8a4b73688b8c88155b9914b81a15fb98df0227d8632910cdfa53835690451444ad4a932a7ea1a16d4f7c337d8245c065e87f9a032e13b587e5c0f6fbe889523bdef46e476fd0474dca83d8852279ce090ee656955af216295580b4e3fded684d656ee5fbd78e981696b84669409a720f9e9c69ee3b220e498720f0a0a0a58d9fb4387da5a22007149cfdac9ca6d0f8a10a49e4162db8a295bbfdb8a03e0a6e43b5198b832cd906cb4d5e4962173f21ebace5ad8ff3f41e9c2c43b86e857f3ddf99ae367a4cea151b99c436787da5be015b095e426d0157e9d6cb7489ed33295e7b15b89490a90a9885858318563230679b3c5ed151983c103dced492a902fc5177593d8387be855afa32752747accebde65b30cdb1cf278cf77517022e13fed9dd8e35b0416cbd226f55fac56ea78e21864b740775e30b9363798c5e26ce11799853ddc01047ac28143df2de533cea8cb29bb76d5a61653e35379bb03af13de2173ea9c8328ef475aea5820f71ac115606f7ede3773d2c92e929b42c82e6de0b9445cac8635750880def18d1b37e6dcb37903d53e0c159c9e6fb068c33d167ab4a7d0ed080ceb1439b98e2307f898f9989adbe6ea1b77021dd70abfd3abb2578e922d961da4722353f9711f61f812a906c72b03370c06dd3cc6cffb1303c8bc4a64488171c1f078e5e72fcefaccec54cfa342c960cd47fcfa3c8dbc4c87636ed8b5ef7fee8cdd790e85823ed2a691ed356ac7e38ec72e78501d3734ebff3b9a7de4422a05ba1d9cad8fde3be1a6064e39c0a4c0dff377105e7707051ab1c2b39c93f3beea796ee37f2c6c2781f366edba986604a7513e54657f482d220f7ec64c835f442f9d286b0d759ffb5d6268a0ce44f171cf1435ceed931fc124485e0be90aa126c85189a6c0f1c973662434cc68b2e48e8dc28df3648f4db015b15ba3ccfa5d7ad24381f245dcf8038f601ea7691910259d296e806c4408ce02dd7d6f4f87f9985ed39ce06da13d9fc87bcbab41543111493e890a9662037b2ab9d10eed8da28625377e50ad16909969238ed960e9a6aa5dfcea4b38c17133aea0b027a6685b7597f139fcd1ded2af2f3ea61e3c328deebf30759f3d490b6b96c5848a8718d16bb12f19e8149384bf0f46e0504b13c969fb1b38ba0864d77c0f143beeff954aedcb6f9d0069b6a88d693db83b66618109d76d3a72bf6d7696b8b0b97d624d719f8090a7edf88cd2bda8effb5d2cff8f3a612116f8e35ee5c1dd9c500578b2a0f6889ae65cc44c4076ab9d2b7770a04b1984f90bc0dd59b7ace0483ccd52a58ee59208850f3744bc33e4e45927cc88703221e9976545bf97fbb2a23e401b54b5934e8c70c86bc56400e8c3f3dddfce65310c309cca7209e405cd355b85f09d01b846bf4609e988f01fb310968588f163e0933bd41cc05e7f53d77f9d428030d6aeb648102405c6e4782b479949c1814e45900ef357d3db9ea55ae29634b06ac9ab933254c898ae696d63a96f8a52b31b0878b80c56aee38f98c2d8022ab594953a2aec931ea13733d248fb680a92425fabba126c973cf772f514ccab90f056e16f95b5e748f742ac483d499eeee82a31ff67ae08f70a2fc1bdbce38978416f2a94f57ebec387c19ac767e4ea89c61c737fe9ffab44d3cc515a276e51c80b645f3592f3dc8bec4981389f4736f766b8a93637d05dea8f7f72de4362aaa6aa2ccc9fd04a54a4dae4baf55e1b430d840dc585a8845b5e5c8a86894947cfdce880f42d8396d75dbc3c7d4a2a0202c437d52b8f7ad4b3ab99373805d10eb4627fe66b3624142d19f9b8610eb3f627075b915673d725c97d680e95e656a9b6e9d0bb1aad192cef61f8107b6621268ed889e27b13e91c3dea2b9c2a932635b85c18f43a4140f708b96d3f7df8bb50b162145b3ef2361537cbe0136ae173f9230f72edb7f69cf40f3d760fa6a234bbeae8c37e44a1a00b54249103ad430dc1d42507ba96e32e80961d8b8feed0049c34d58c0ad826af2e39c6285f3ea9dba2d3ea1e100a3eef870014fb7c59ba97dfaab82a8c6d37a3cd669cf962e039e858c59945d75829c6debe5577613c1acd3ec0d7a639662dc0e7423702bfa69891ae21bcc025034e1f8ee01faa9c00322674be407d339a79268e56b5b673e85d9367d05469c5bbbe9700e3eaf0566a1ce92a3681eaf0198d1fbb7973d891b413b1f236425b1124a40048ee3442cd0e7daa498695b735ec27deb5f7626add16489c7cab7e758a9ac1d2302626731bbcdea4bdbb414d7bd5cd7d1413c817ec92547859933293ea09f53a46393d92c48b96290d43e490c1334705904be21914b50185caef9b528d29d7d3f4d3edd3fb7111ed7d4c26d923c20e9c3bd645011b27b1a907c7ea6921450212434ddbfe5c3287a544ad652d7dbbc5515b1f3c0c6e716e8743709b0e0bfb03ec8a155edea5ab1e838647adc376d7bfd8cfd6c984381ff9fe57b60246d0ce5cac7fabcaf99d870e7c7c38e7d933a4ed4dcbd3b4ebfcf628a1783dc9a4dd682d6d031942ff38ab88a5c95f370d13fcf28ef4ea726a6235ae7f94d0e0adb78fead7735f54589386132ff400bb502196cc285ba64abfc95657c479266f16ac636fbdb512b39ee727414b9e41e253a119159585dcc05dab218dec591f3b27b9b2f9e2ab2e0d8179fa464b9f60eec3e95ee11b04c3a24b27abe23fe0f613a0ab6f4c74f4f144f2957bd62713a3797dcda012f410dfff8afe8e9846a6d9641a13650305a4f544847e14e2025a6adc45a8137b184a0e2dee693ea581c8532053e57458b96099954cb211a529712b341952ad9c0e41afa7618ce9b9e057ac4f67595a053f6eec615873092496332c430c1ef77e8be645d42a374662b1506756f8e37294744ee0cf3145b78e084b30675512140cfad39f13a5df7194e16a62a40f653cc2d04d4962d4a77d03ec3f6c761a14e550d119ab6214ff2c17c150b1c0e0536fb65b097b51e6c0fc7dcc83b9a3a2b1258afe136ac9278645bba91bf3aba80f60b1157970cc16c8c80bb823da092b4046d2b45c1e069e358cac3981e2bbffe88e5f2a0938066f5aa5552bc676ad498cd34d016b565b2109de1753d2911904188f73431b36521a46dc335502e727e0efe1e218196d0d3017d38c3c958dfec64f9e4ec25288a0f27aff67b2c4ace4e2862c79e80542b3aa01b49670190d7dc1422a8090e22f83a2d39ed7362d7d86732a68f64116b4ed7c8024b22b5e1d9664512109c1d8c144305cbeeca65fb594d4b4a8c3f0938bec3ea2b33ed178e63e735115019710317eb951fef41b2818251ae6241592a616ce9bf3a07b5aa341b247e97191cf7ce4a4ff9b0ea894f9388af38541bd812fbd674ddde89df50a4c5e800bdf928d18566901d30eeb85085301bea501efa500ebda2f4b7648a0890388c0ba2b1d4614b0779a2448bca0393c32dd96b5b7bad053f7d0c5b26acf51358d59acfc9003141ff443494b29b694b5e5bb1e2d25f91fdb94fd3cd4c98c743d0fe092e8c38e4626ef862b5e1e2c9c8351e72531b95286f4d4c89e5c3f47a9d84c9051d2a16ed94a354925d7dba913938a4b62551f916fe1b981316be47d0f919899d82e6d9b365a396c9063270d953a633f78cd3a54d005b0ad6e013fb4fa7f0879480c62238a29d79f4f48dcb0fcad009120ee234346b7930aa20adf4cc778807f74ec64847e086f41a41837ae87e64ed13f67fc7815500edc46fdbff9fb50306e6519b60b61ffefac046bf0e92671a2709517da652c2bfc497367ef55e7ac6266fb67d23cef62bf82ac4e62880c001e9ca60bfc37f176c476c63c0a0c52f91d864c4c11c0362139b7cc427eed89f5d83e7f37faa36ede477b8905f445aa3f5ef41bcf439e69ecf15cc6478cec667e685027649d1fad4dc52413d797a00f58833976845bc28b8c632e6df48805bd5621d9639fd40dc4356b3f273d2aae3b2d97a2dad6993ac8c1fc005e64c0e6653772877bbb468708438a50401d9fbc9b9301b2ddc78f8cdc70f82badd5b40361de618fa6c1f567663ed4d853e6b9f6bd7a6f43bba07e0572ca5a66a879400cc94debaae76b2d7a386c85ef66574395cc1e4ba0f24828d43a59806b9a32a41eae9024e416290a4a964e3d9160433c69d064e4f48596aeea97aae44d486882186e0dc7498b10f97952bdfdb32228a906c9be47070d38da791c96765f856fd00444dceda2c809cd407e9d6f17a06a388839e776e41e11c513fad8df1a8a748afd98abfd03f60a754389441b3dd30ee715f0ef3f237b44aab1d024e8e96dcf78d0dd42351aef2e3f2c15835c29e0d7c3da3b4ab0ced6f3a2e82db979b58a50f4bf6321e8b6d0ffcfb8155cbf38d427f13524741704703e498daef8c9b6ae5e4a3b40ec7b26e4961a1580b1399688ec1d5ddbae6eb3614730ceb29c87fab02e90cd8948c5d299da32ede62b4c8c", 0x1000}, {&(0x7f0000009380)="4f9e61e7c3d9550663d571d816528d65d9cf2f5dc36e2d9df8d9ea06ef6ddae69e9eb7096df1794d94736eed8dda3df33917d0f604e2a8d9f5a22ab5875728b44a90ee8c3c35ef947881c1fea2cc5ad731ec188f866e09b0efca2a72bc5d4468cc55754a52bc7e152f3f6d4a738290535efadc570bfbf877f23ef622538179c971aafb12f96bc84664a649c6c88c3696f4150e8be52e787c9c28949bae2678dbcacafac9816600ee754e4f3b296c5fc54cd014892f05d09711c7743502ba7e969efec2150385139d38a507b98680611458b38cc43e690e5ef6db731cdc8d46ff5993c425f2ab3f59a5a2e4dfa78a11f2dab4fd88d15236", 0xf7}, {&(0x7f0000009480)="1edbae38", 0x4}, {&(0x7f00000094c0)="fa21ea9fa83215faafe22caaf092745c8710e9627f1fdd0fa760c21833f24a006dd1e23a8bfdb97a69d115b3c421dd487d0046b02fe6e1b3d2484641749433b1b38613b1a560ae4bbffd905e0197357e987c9974a7636acde407b165fa0fefa34f37b982cf97ddea484b950def0263175c7959617bc6c8ac7d7dffaab7bffa23c3ded0dda2aae30e9d23436abb0492387f71449d0965429921a4fde9f0363c60b25d15991d08f198339ef4201ef77c20a7b79c918b34416d13bd66db93a4e8ff3446f8a741cbe491e9a68ebf", 0xcc}, {&(0x7f00000095c0)="2e4afcc60c0efb56277cc0458d9467760447f2b0408314bf2e1bc35d8aab0617dc9bc9de1520ea6b6f29fe0dc07f4deb2e2564cb5ec5f51f82af7dd366ff2c9941ede2d7ba9f77eb2b576f1b00d2e2c798d19e155aa1c8ad8b07701671777e2d8bece9f7c6d1a5123a2ba3689ea0e17eb9f6ebb4a8f85fb593505a42", 0x7c}, {&(0x7f0000009640)="61bdf978", 0x4}], 0x9, &(0x7f0000009900)=[@cred={{0x1c, 0x1, 0x2, {0x0, 0xee01, 0xee00}}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0x0, 0xffffffffffffffff}}}, @rights={{0x34, 0x1, 0x1, [r3, 0xffffffffffffffff, 0xffffffffffffffff, r2, r2, 0xffffffffffffffff, r4, 0xffffffffffffffff, 0xffffffffffffffff]}}, @rights={{0x14, 0x1, 0x1, [r3]}}, @cred={{0x1c, 0x1, 0x2, {0xffffffffffffffff, 0xffffffffffffffff}}}], 0xb0, 0x4004040}}, {{&(0x7f00000099c0)=@file={0x0, './file0\x00'}, 0x6e, &(0x7f0000009b40)=[{&(0x7f0000009a40)="86ec966bec18af884aee9d10683a00f752643935ddc234bc4f0d68661fbe39805a08323df00da135876acda8d9b5551944d056699d36d65dea108eb3f29bd87464a5bebfa4aa5711570d8a84a7f662d76da465647794ce294e50d6bcd90becd664c372a47a9d7830bf7e50797b0fa23d291b0a017cae2a9ef6afc9e781ecc6332d4958e467003fd6d870d486759b4c9ed9e9503f8667ff13bf2209638fee37e9a9ed00aa00cc78c11633a6d91662c47c8916eefa81db3fbdebd2cb29f43597ebd7d5608804b61fd1edd396c47fd5194edce40b609fbbdfd2ef34125a263fc7113896aa1ec8c524274b749b91711389ae97a7", 0xf2}], 0x1, &(0x7f000000a000)=[@cred={{0x1c, 0x1, 0x2, {0x0, 0x0, 0xee01}}}, @cred={{0x1c, 0x1, 0x2, {r6, 0xffffffffffffffff, 0xee00}}}, @cred={{0x1c}}, @cred={{0x1c, 0x1, 0x2, {r6, 0x0, 0xffffffffffffffff}}}, @rights={{0x2c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, r4, r2, 0xffffffffffffffff, r4, r5]}}, @cred={{0x1c, 0x1, 0x2, {r6}}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0x0, r9}}}, @cred={{0x1c, 0x1, 0x2, {r6, r8, r10}}}, @rights={{0x18, 0x1, 0x1, [0xffffffffffffffff, r7]}}], 0x128, 0x20004080}}], 0x7, 0x4000000) sendfile(r3, r7, 0x0, 0x10000) 05:11:53 executing program 0: unshare(0x6c060000) mmap(&(0x7f0000fff000/0x1000)=nil, 0x1000, 0x3, 0x48031, 0xffffffffffffffff, 0x0) unshare(0x40000) r0 = socket$inet6_tcp(0xa, 0x1, 0x0) ioctl$sock_SIOCGIFINDEX(r0, 0x8933, &(0x7f0000001500)={'ip6tnl0\x00'}) getsockopt$IP6T_SO_GET_ENTRIES(r0, 0x29, 0x41, &(0x7f0000000380)=ANY=[@ANYBLOB="6e61740000000000000000000000000000000000000000000000000018000000dfffffff"], &(0x7f00000001c0)=0x24) r1 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r1, &(0x7f0000000000)={0xa, 0x8000002}, 0x1c) sendto$inet6(r1, 0x0, 0x0, 0x2204c001, &(0x7f0000000340)={0xa, 0x2, 0x0, @empty}, 0x1c) getsockopt$inet6_tcp_TCP_ZEROCOPY_RECEIVE(r1, 0x6, 0x23, 0x0, &(0x7f0000000300)) r2 = socket$inet_tcp(0x2, 0x1, 0x0) ioctl$sock_ipv6_tunnel_SIOCGET6RD(0xffffffffffffffff, 0x89f8, &(0x7f00000002c0)={'syztnl1\x00', &(0x7f0000000280)={'syztnl2\x00', 0x0, 0x7800, 0x8000, 0x5, 0x7, {{0x8, 0x4, 0x3, 0x24, 0x20, 0x67, 0x0, 0x5, 0x2f, 0x0, @multicast1, @multicast1, {[@ra={0x94, 0x4, 0x1}, @ra={0x94, 0x4, 0x1}, @noop, @noop]}}}}}) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f0000000c00)={&(0x7f0000000200)={0x10, 0x0, 0x0, 0x42c00180}, 0xc, &(0x7f0000000440)={&(0x7f00000003c0)=@deltclass={0x7c, 0x29, 0x10, 0x70bd28, 0x25dfdbfd, {0x0, 0x0, 0x0, r3, {0x1, 0xb}, {0x9, 0xffff}, {0xc, 0x8}}, [@TCA_RATE={0x6, 0x5, {0x1, 0x1}}, @TCA_RATE={0x6, 0x5, {0x1, 0x8}}, @TCA_RATE={0x6, 0x5, {0x31, 0x93}}, @tclass_kind_options=@c_prio={0x9}, @tclass_kind_options=@c_mqprio={0xb}, @tclass_kind_options=@c_tbf={0x8}, @tclass_kind_options=@c_multiq={0xb}, @tclass_kind_options=@c_prio={0x9}, @TCA_RATE={0x6, 0x5, {0x1, 0x5}}]}, 0x7c}, 0x1, 0x0, 0x0, 0x4}, 0x40001) setsockopt$inet_MCAST_MSFILTER(r2, 0x0, 0x30, &(0x7f0000000040)={0x0, {{0x2, 0x0, @multicast1}}, 0x0, 0xa, [{{0x2, 0x0, @loopback}}]}, 0x590) listen(r2, 0x80000000) setsockopt$SO_TIMESTAMPING(r1, 0x1, 0x41, &(0x7f0000000040)=0x104, 0x4) sendto$inet6(r1, &(0x7f0000000480)="2dc35292b13628ac4e69aed5eaaf763a7a3120e199a9ec93426b6b27ff154b9a649da680eb0fbdb093189ff34273e9b976d9bad907fdc75c5de2bddd25069444be6c9a62fd5c8a1785e3e735eeb50d4ee25a69da3009cbb52bdd406352bd91f0ee0247408b2cb755ae831cfd0235ecd5d18d1f88203ae902ab1e5a8460ebb0168dca53af4f880d66074263c6c59f67e855fef72c81a33904f48c0e96e03e2e6d6aed9bf7fce248cb0a3236775704770c85d9d6f275ca1605e6e2e387703c0c21f2a27580806bb6e60a4230bd0a6f0932210275bb3772eecbab26dfc7b7036060293e1244ea431bd132817db84872b283bbc49b90de5f2629a1c5354f3d36086418d019ed8f94a393911041edaae9cc1bff02233c1f5bf547042408d587bdcdd0ed00521a3b6787738b3478c048cd068b1e71350a8b7d7319e88b4593f055f7d6b2788961c9158a41171fdc542ab2cab4464ac1d2a45bf447e4a5f363cfad04414d1f17be3dc27722846f97b33e72d5a358b659e69a7ea23ee3200aa79a7ff9ad7459dadf98c37cebb094a673500a82aff0350fe9b7c612024e753f344c5b3e20acdd40d5a3fa45d21aa0c045d47bab2b2aeabf0c533a519ff0db6082d1d591790e2a589ef19df3ed99c078dc16fee291b9e2efbcf7dbae604b0f25cf047ad6cee6dd87a60fee53624bf4b20c8cec40c61d7e6e9358347ecf5640ff145cfec5328e280c712b9c69f2dede62f7a6d18770b47e15c5616a1d68bcc6dfb2de88a073d90b2bfbd23e0af0bdf67be77c8552a7b65b9aa2fb4debf858dfa2695c7f8f59fea36f717d7d5c4867e0007eda62bd178697a0773e8aeb633f7ab7d074f142f77899dc7208cc0842b0927bde1346e87e736d00b1672a56b98eef9797c8890d3941ff3644f6572e355682134d1b84396f872e32e1dc5f20d9ce6d71cc79e54f401b8b980d4641dd98e636ab2dea59a9207a16b871df6fb070b05a041202666c9a2d722a4a390a8f00220dd962b8bdaa62072db278d8db9f9e0bf344d8c7c714705b0d923f450541b6a3afd5ea6f6b622cccdd09084949f348ee598b924bba59abb3b8766a75a10089018db75618d30b4a0b651b823c42a150d5c165d333b3f37a1329fe9530185127abec84e922e8bac2764ec6636ec009b5179cbe33eadce57be6c89f84e5161e1e7ad598ebdb0e034a1d99334dd0a3a6fe0e9d2f3eb5e2c6d5e89f842f0ce21e7c74806761ba400c41fa9bd6fccefe140c67b868029be016d57ec5873c19ef9ee2ee07afdf64cf142cab7609c2c2697017c19b1504a3125aece71190fcf767a138f9aac29c7e4499968adc5d3c693a89c13eda997bdaee9bf63f92d4f633569134df470d4285d809c4508759c5c9db4973202db474e2b16b1fbce20c4b3b55c64f32b26795e3497705a66bf749055808902be2e42246ad8c0f090db3ad038f1b0de9af9f5f0ef7e5849573c5c9a5c740f065620f882caa4d197563030c1f302f3b104e9d7cd11644ad5c02e6f671df789d37d1bc8863f8b6a19ffdf5d652c22254aac9a94a202ba303fa545cf8b964e5755e79eaf4eaa04192732a0b5fea3a9685dc7194d6103c537b54fe64e69a2a4bda43533245ea5ab4e64c2696a83ad8efd103e2a0e487ee88cd311868828a05e7f6c291700c5ef42813cf1ae8863f1eb2d8f7c21aef66602ae0838889cf87e2cbe0b2b07a368dc03c122f674f6609717d3954b9b8acc1c26c0e6340443c218a10202477ded6cc92114bc387cc4f1cf8119ff5347ad0f81c20f24eefc3e9ab5c2e94bda47ee17a328a92903e783d8ae3f0efc6d60fce7befce0725c17e921cb3ffcb68edc1a1c57b9213f6c0bdfed435c763fd3fc5c746d60d554728dbdce7bfcf3b2e55276543e6869fbbee412bfbb2951b4c0dbb2bf4c625827ea9063f1f450a11ae355cf40579d757bc71bfd299b9ede70215d003c8f5eb4cf78eac48a18b8a6c474144c88903b666a4529395feeb52f6c7c73c542da51d2a3413890568438e076ec1168bc16d696e96d19d4e99a82361cc5b7c4b1a613f46ac0268b92ae61cc1752700cfd22d35138008b795b1a65f3f601a1234779a0236ad05631d641d7ee4f2bcbc548cd898ebd4eb7c5d2cbf6dfe27d35643a5e1bebcc1cd498eb98d0fd23b0b381de253080803deecba514c94283f7f40fd2514c8146fed7ae27813a52fca5f51eabd16e60d99f9b7b2e8aee8df1375304779cf40e39b508587d91da8e890b2b3a778b2f6c93753731731ae0f02ee96ea0aafbaeb2c0ab23747830443c0fe312f02d880d52e8f31560ace3b53f3c04d946bebebfe6cca813b6499d9aa5349119efcad150f60b0fa9bcc79d1c79bbbe5bd15decdb113688a480574768889c7834fa04de446bd282ae9dcc78b9839d1170b36b6647064c3f2c956b27f1d81dbb65066ec5bf4b270b86152f3c16bf9320afd100c25a88911e4ee52c0fd80a2939360fc8f2c804f5c44ad9df654ee81c792a1444214a5c9033d6e066214b52f8f98dfb438cef48dd7a95488ad6c65079556fa9f7d0d348b908cae739d1c2d47d8bab5cebe6126f77cbf548353f64df9e8820c12ad29254a4edd36d83cf8ce0c56f24bfcd98b1a046a679fa27feb", 0x746, 0x0, 0x0, 0x0) setsockopt$sock_int(r1, 0x1, 0x29, &(0x7f0000000240)=0x8f, 0x4) setsockopt$SO_TIMESTAMP(r1, 0x1, 0x1d, &(0x7f00000000c0)=0x401, 0x4) recvfrom$inet6(r1, 0x0, 0x0, 0x2040, 0x0, 0x0) 05:11:53 executing program 1: prlimit64(0x0, 0xe, &(0x7f0000000000)={0x9, 0x8b}, 0x0) (async) sched_setscheduler(0x0, 0x6, &(0x7f0000000080)=0x8) r0 = fsopen(&(0x7f0000000040)='afs\x00', 0x0) syz_mount_image$ntfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x123004, 0x90, &(0x7f0000000200)=[{&(0x7f0000010000)="eb52904e5446532020202000100100000000000000f8000027000000000600000000000080008000ff010000000000000400000000000000ff000000000000000100000001000000aa1cb4684d356101000000000e1fbe717cac22c0740b56b40ebb0700cd105eebf032e4cd16cd19ebfe54686973206973206e6f74206120626f6f7461626c65206469736b2e20506c6561736520696e73657274206120626f6f7461626c6520666c6f70707920616e640d0a707265737320616e79206b657920746f2074727920616761696e202e2e2e200d0a00"/224, 0xe0}, {&(0x7f00000100e0)="00000000000000000000000000000000000000000000000000000000000055aa", 0x20, 0x1e0}, {&(0x7f0000010100)="ffff0007000000003f00"/32, 0x20, 0x2000}, {&(0x7f0000010120)="46494c453000090000000000000000000100010048000100a80100000010000000000000000000000400000000000000080000000000000000000000000000000000000000000000100000006000000000001800000000004800000018000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000300000006800000000001800000002004a0000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100b001000000000000b00100000000000600000000000000040324004d00460054000000000000008000000048000000010040000000010000000000000000004a00000000000000400000000000000000b004000000000000600400000000000060040000000000113f04210c3f0100b00000004800000001004000000003000000000000000000000000000000000040000000000000000010000000000000100000000001000010000004000000001101020000000000ffffffff00"/448, 0x1c0, 0x4000}, {&(0x7f00000102e0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x41e0}, {&(0x7f0000010300)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x43e0}, {&(0x7f0000010320)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x45e0}, {&(0x7f0000010340)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x47e0}, {&(0x7f0000010360)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x49e0}, {&(0x7f0000010380)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x4be0}, {&(0x7f00000103a0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x4de0}, {&(0x7f0000000f80)="000000000000000000000000000000000000000000000000000000000000080046494c4530000900000000000000000001000100480001006801000000100000000000000000000003000000010000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d800000000000000000000000000000100000000000000000000000000000000000030000000700000000000180000000200520000001800010005000000000005008041214be3108cb08041214b9fc6d8018041214b9fc6d8018041214b9fc6d801004000000000000000400000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000030000000000000040000000000000000040000000000000004000000000000000400000000000002104ff0000000000ff302c202cd77f9293c5eae9cfffffff00000000000000000000000000000000000000000000000000000000e93ca3b6fc0527168621252914d5d05df9aed933fdd2f2228e89900b35e7f45300e092f02c40efe06ea6cc475d615798a56c0713742fcfde2e838de95ef972570c416c379b629f154c06ef9c0b5cfee6638fab932d4871871913170dfef006147e2e1add", 0x200, 0x4fe0}, {&(0x7f0000010560)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x51e0}, {&(0x7f0000010580)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x53e0}, {&(0x7f00000105a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x55e0}, {&(0x7f00000105c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x57e0}, {&(0x7f00000105e0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x59e0}, {&(0x7f0000010600)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x5be0}, {&(0x7f0000010620)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x5de0}, {&(0x7f0000010640)="000000000000000000000000000000000000000000000000000000000000020046494c4530000900000000000000000002000100480001006801000000100000000000000000000003000000020000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000700000000000180000000200520000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f0000000000000040000000000000000000040000000000000004000000000000000400000000002140030100000000ffffffff00"/416, 0x1a0, 0x5fe0}, {&(0x7f00000107e0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x61e0}, {&(0x7f0000010800)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x63e0}, {&(0x7f0000010820)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x65e0}, {&(0x7f0000010840)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x67e0}, {&(0x7f0000010860)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x69e0}, {&(0x7f0000010880)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x6be0}, {&(0x7f00000108a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x6de0}, {&(0x7f00000108c0)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000300010048000100f001000000100000000000000000000006000000030000000200000000000000000000000000000000000000000000001000000048000000000018000000000030000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000030000000680000000000180000000100500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff0000000000000000000000000000000000000200", 0x220, 0x6fe0}, {&(0x7f0000010ae0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x73e0}, {&(0x7f0000010b00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x75e0}, {&(0x7f0000010b20)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x77e0}, {&(0x7f0000010b40)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x79e0}, {&(0x7f0000010b60)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x7be0}, {&(0x7f0000010b80)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x7de0}, {&(0x7f0000010ba0)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000400010048000100a00b000000100000000000000000000004000000040000000200000000005400000000000000000000000000000000001000000048000000000018000000000030000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000030000000700000000000180000000200520000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000a000000000000000a0000000000000600000000000000080324004100740074007200440065006600000000000000500000008000000000001800000003006400000018000000010004804800000054000000000000001400000002003400020000000000140089001200010100000000000512000000000018008900120001020000000000052000000020020000010100000000000512000000010200000000000520000000200200000000000080000000180a00000000180000000100000a00001800000024005300540041004e0044004100520044005f0049004e0046004f0052004d004100540049004f004e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000100000000000000000000000400000003000000000000000480000000000000024004100540054005200490042005500540045005f004c00490053005400"/640, 0x280, 0x7fe0}, {&(0x7f0000010e20)="000000000000000000000000000000000000000000000000200000000000000000000000800000000000000000000000ffffffffffffffff2400460049004c0045005f004e0041004d004500"/96, 0x60, 0x82a0}, {&(0x7f0000010e80)="000000000000000000000000000000000000000000000000300000000000000000000000420000004400000000000000420200000000000024004f0042004a004500430054005f0049004400"/96, 0x60, 0x8340}, {&(0x7f0000010ee0)="00000000000000000000000000000000000000000000000040000000000002000000000040000000000000000000000000010000000000002400530045004300550052004900540059005f00440045005300430052004900500054004f005200", 0x60, 0x83e0}, {&(0x7f0000010f40)="000000000000000000000000000000000000000000000000500000000000000000000000800000000000000000000000ffffffffffffffff240056004f004c0055004d0045005f004e0041004d004500"/96, 0x60, 0x8480}, {&(0x7f0000010fa0)="0000000000000000000000000000000000000000000000006000000000000000000000004000000002000000000000000001000000000000240056004f004c0055004d0045005f0049004e0046004f0052004d004100540049004f004e000000", 0x60, 0x8520}, {&(0x7f0000011000)="000000000000000000000000000000000000000000000000700000000000000000000000400000000c000000000000000c0000000000000024004400410002004100"/96, 0x60, 0x85c0}, {&(0x7f0000011060)="000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000ffffffffffffffff240049004e004400450058005f0052004f004f005400"/96, 0x60, 0x8660}, {&(0x7f00000110c0)="000000000000000000000000000000000000000000000000900000000000000000000000400000000000000000000000ffffffffffffffff240049004e004400450058005f0041004c004c004f0043004100540049004f004e00000000000000", 0x60, 0x86fd}, {&(0x7f0000011120)="000000000000000000000000000000000000000000000000a00000000000000000000000800000000000000000000000ffffffffffffffff24004200490054004d00410050000000000000000000000000000000000000000000000000000200", 0x60, 0x87a0}, {&(0x7f0000011180)="000000000000000000000000000000000000000000000000b00000000000000000000000800000000000000000000000ffffffffffffffff240052004500500041005200530045005f0050004f0049004e005400"/96, 0x60, 0x8840}, {&(0x7f00000111e0)="000000000000000000000000000000000000000000000000c0000000000000000000000080000000000000000000000000400000000000002400450041005f0049004e0046004f0052004d004100540049004f004e00"/96, 0x60, 0x88e0}, {&(0x7f0000011240)="000000000000000000000000000000000000000000000000d0000000000000000000000040000000080000000000000008000000000000002400450041000000", 0x40, 0x8980}, {&(0x7f0000011280)="00000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000001000000000024004c004f0047004700450044005f005500540049004c004900540059005f00530054005200450041004d00"/192, 0xc0, 0x89e0}, {&(0x7f0000011340)="00000000000000000000000000000000000000000000000000010000000000000000000080000000000000000000000000000100"/64, 0x40, 0x8ac0}, {&(0x7f0000000080)="000000000000000000000000000000000000000000000000ffffffff00000000", 0x20, 0x8b80}, {&(0x7f00000113a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x8be0}, {&(0x7f00000113c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x8de0}, {&(0x7f00000113e0)="000000000000000000000000000000000000000000000000000000000000020046494c4530000900000000000000000005000100480003001002000000100000000000000000000006000000050000000700300000000000000000000000000000000000000000001000000048000000000018000000000030000000180000008041214b9fc6d801abc4234c9fc6d801abc4234c9fc6d8018041214b9fc6d8012620000000000000000000000000000030000000600000000000180000000100440000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100000000000000000000000000000000060000100000000001032e00000000005000000048000000010040000000020000000000000000000100000000000000400000000000000000200000000000002c100000000000002c10000000000000110243000000000090000000580000000004180000000300380000002000000024004900330030003000000001000000001000000100000010000000280000002800000001000000000000000000000018000000030000000000000000000000a000000050000000010440000000050000000000000000000000000000000000480000000000000000100000000000000010000000000000001000000000000024004900330030001101450000000000b0000000280000000004180000000400080000002000000024004900330007000100000000000000ffffffff00"/576, 0x240, 0x8fe0}, {&(0x7f0000011620)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x93e0}, {&(0x7f0000011640)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x95e0}, {&(0x7f0000011660)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x97e0}, {&(0x7f0000011680)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x99e0}, {&(0x7f00000116a0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x9be0}, {&(0x7f00000116c0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x9de0}, {&(0x7f00000116e0)="000000000000000000000000000000000000000000000000000000000000070046494c4530000900000000000000000006000100480001006001000000100000000000000000000003000000060000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000680000000000180000000200500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801001000000000000040000000000000000600000000000000070324004200690074006d0061007000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000400000000000000040000000000000001101460000000000ffffffff00000000", 0x180, 0x9fe0}, {&(0x7f0000011860)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xa1e0}, {&(0x7f0000011880)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xa3e0}, {&(0x7f00000118a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xa5e0}, {&(0x7f00000118c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xa7e0}, {&(0x7f00000118e0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xa9e0}, {&(0x7f0000011900)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xabe0}, {&(0x7f0000011920)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xade0}, {&(0x7f0000011940)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000700010048000100c801000000100000000000000000000004000000070000000200000000000000000000000000000000000000000000001000000048000000000018000000000030000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80106000000000000000000000000000000300000006800000000001800000002004c0000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010020000000000000002000000000000006000000000000000503240042006f006f007400000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000010000000000000040000000000000000020000000000000002000000000000000200000000000001102000000000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200", 0x220, 0xafe0}, {&(0x7f0000011b60)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xb3e0}, {&(0x7f0000011b80)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xb5e0}, {&(0x7f0000011ba0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xb7e0}, {&(0x7f0000011bc0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xb9e0}, {&(0x7f0000011be0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xbbe0}, {&(0x7f0000011c00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xbde0}, {&(0x7f0000011c20)="000000000000000000000000000000000000000000000000000000000000020046494c4530000900000000000000000008000100480001008801000000100000000000000000000004000000080000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000700000000000180000000300520000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000000000000000803240042006100640043006c0075007300ffff00000000800000001800000000001800000002000000000018000000800000005000000001044000000001000000000000000000fe01000000000000480000000000000000f01f000000000000f01f00000000000000000000000000240042006100640002ff010000000000ffffffff00"/448, 0x1c0, 0xbfe0}, {&(0x7f0000011de0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xc1e0}, {&(0x7f0000011e00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xc3e0}, {&(0x7f0000011e20)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xc5e0}, {&(0x7f0000011e40)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xc7e0}, {&(0x7f0000011e60)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xc9e0}, {&(0x7f0000011e80)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xcbe0}, {&(0x7f0000011ea0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xcde0}, {&(0x7f0000011ec0)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000900010048000900b802000000100000000000000000000005000000090000000200490000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600002000000000000000000000000000000000010100000000000000000000000000000000000030000000680000000000180000000100500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100000000000000000000000000000000060000200000000007032400530065006300750072006500800000005000000001044000000002000000000000000000400000000000000048000000000000000010040000000000fc00040000000000fc000400000000002400530044005300114147000000000090000000b00000000004180000000300900000002000000024005300440048000000000012000000001000000100000010000000800000008000000000000000180014000000000030000800000000005124b300010100005124b3000101000080000000000000007c0000004900490018001400000000003000080000000000f01203f800010000f01203f80001000000000000000000007c000000490002000000000000000000100000000200000090000000a000000000041800000004008000000020000000240053004900490000000000100000000010000001000000100000007000000070000000000000001400140000000000280004000000000000010000f01203f80001000000000000000000007c00000014001400000000002800040000000000010100005124b3000101000080000000000000007c00000000000000000000001000000002000000ffffffff00"/736, 0x2e0, 0xcfe0}, {&(0x7f00000121a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xd3e0}, {&(0x7f00000121c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xd5e0}, {&(0x7f00000121e0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xd7e0}, {&(0x7f0000012200)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xd9e0}, {&(0x7f0000012220)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xdbe0}, {&(0x7f0000012240)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xdde0}, {&(0x7f0000012260)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000a00010048000100a8010000001000000000000000000000040000000a0000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000680000000000180000000300500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000002000000000000000200000000000600000000000000070324005500700043006100730065008000000048000000010040000000010000000000000000001f0000000000000040000000000000000000020000000000000002000000000000000200000000002120880000000000800000004800000000051800000002002000000028000000240049006e0066006f0000000000000020000000000000000c691b6b777edcda00000000000000000000000000000000ffffffff00"/480, 0x1e0, 0xdfe0}, {&(0x7f0000012440)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xe1e0}, {&(0x7f0000012460)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xe3e0}, {&(0x7f0000012480)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xe5e0}, {&(0x7f00000124a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xe7e0}, {&(0x7f00000124c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xe9e0}, {&(0x7f00000124e0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xebe0}, {&(0x7f0000012500)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xede0}, {&(0x7f0000012520)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000b0001004800030090020000001000000000000000000000030000000b0000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000010100000000000000000000000000000000000030000000680000000000180000000100500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000010000000000703240045007800740065006e00640090000000780100000004180000000200580100002000000024004900330030003000000001000000001000000100000010000000480100004801000000000000190000000000010060004e00000000000b00000000000b008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000000000000000000000000000000002600002000000000060324004f0062006a00490064000000180000000000010060004e00000000000b00000000000b008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100000000000000000000000000000000260000200000020006032400510075006f007400610000001a0000000000010068005200000000000b00000000000b008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100000000000000000000000000000000260000200000000008032400520065007000610072007300650000000000000000000000000000001000000002000000ffffffff00"/704, 0x2c0, 0xefe0}, {&(0x7f00000127e0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xf3e0}, {&(0x7f0000012800)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xf5e0}, {&(0x7f0000012820)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xf7e0}, {&(0x7f0000012840)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xf9e0}, {&(0x7f0000012860)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xfbe0}, {&(0x7f0000012880)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xfde0}, {&(0x7f00000128a0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xffe0}, {&(0x7f00000179c0)="494e4458280009000000000000000000000000000000000028000000b8060000e80f0000000000001800d80100000000000000000000000000000000000000000400000000000400680052000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000a000000000000000a00000000000006000000000000000803240041007400740072004400650066000000000001000800000000000800680052000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000000000000000803240042006100640043006c00750073000000000007000600000000000600600050000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801001000000000000040000000000000000600000000000000070324004200690074006d0061007000070000000000070060004c000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010020000000000000002000000000000006000000000000000503240042006f006f00740069006c000b00000000000b00600050000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc618008041214b9fc6d8010000000000000000000000000000000006000010000000000703240045007800740065006e0064000200000000000200680052000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c006500000000000100000000000000010060004a000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100b001000000000000b00100000000000600000000000000040324004d00460054000000000000000100000000000100680052000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801004000000000000000400000000000000600000000000000080324004d00460054004d006900720072000000020000000900000000000900600050000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000000000000000000000000000000000600002000000000070324005300650063007500720065000a00000000000a00600050000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000002000000180000000200000000000600000000000000070324005500700043006100730065000300000000000300600050000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d0065000500000000000500580044000000000005000000000005008041214b9fc6d801abc4234c9fc6d801abc4234c9fc6d8018041214b9fc6d80100000000000000000000000000000000262000100000000001032e00000000004500000000000100680054000000000005000000000005005cc4234c9fc6d801fbc9234c9fc6d801fbc9234c9fc6d8015cc4234c9fc6d8016800000000000000640000000000000020000000000000000900660069006c0065002e0063006f006c00640000000000400000000000010060004c00000000000500000000000500c375234c9fc6d8014792234c9fc6d8014792234c9fc6d801c375234c9fc6d8010000000000000000000000000000000020000010000000000500660069006c006500300000000000430000000000010060004c00000000000500000000000500c29c234c9fc6d8011ca3234c9fc6d801fca8234c9fc6d801c29c234c9fc6d80110000000000000000a0000000000000020000000000000000500660069006c0065003100000018", 0x5ff, 0x45000}, {&(0x7f00000180a0)="00000000000000000000000000000000000000000000000000000000000018", 0x1f, 0x457e0}, {&(0x7f00000180c0)="00000000000000000000000000000000000000000000000000000000000018", 0x1f, 0x459e0}, {&(0x7f00000180e0)="00000000000000000000000000000000000000000000000000000000000018", 0x1f, 0x45be0}, {&(0x7f0000018100)="00000000000000000000000000000000000000000000000000000000000018", 0x1f, 0x45de0}, {&(0x7f0000018120)="00000000000000000000000000000000000000000000000000000000000018", 0x1f, 0x45fe0}, {&(0x7f0000018380)="00000100020003000400050006000700080009000a000b000c000d000e000f0010001100120013001400150016001700180019001a001b001c001d001e001f0020002100220023002400250026002700280029002a002b002c002d002e002f0030003100320033003400350036003700380039003a003b003c003d003e003f0040004100420043004400450046004700480049004a004b004c004d004e004f", 0x9f, 0x88000}, {&(0x7f0000038380)="46494c453000090000000000000000000100010048000100a80100000010000000000000000000000400000000000000080000000000000000000000000000000000000000000000100000006000000000001800000000004800000018000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000300000006800000000001800000002004a0000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100b001000000000000b00100000000000600000000000000040324004d00460054000000000000008000000048000000010040000000010000000000000000004a00000000000000400000000000000000b004000000000000600400000000000060040000000000113f04210c3f0100b00000004800000001004000000003000000000000000000000000000000000040000000000000000010000000000000100000000000000010000000000000001101020000000000ffffffff", 0x1a4, 0xff000}, {&(0x7f0000038540)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xff1e0}, {&(0x7f0000038560)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xff3e0}, {&(0x7f0000038580)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xff5e0}, {&(0x7f00000385a0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xff7e0}, {&(0x7f00000385c0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0xff9e0}, {&(0x7f00000385e0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xffbe0}, {&(0x7f0000038600)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xffde0}, {&(0x7f0000038620)="000000000000000000000000000000000000000000000000000000000000080046494c4530000900000000000000000001000100480001006801000000100000000000000000000003000000010000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000700000000000180000000200520000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801004000000000000000400000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000030000000000000040000000000000000040000000000000004000000000000000400000000000002104ff0000000000ffffffff0000", 0x186, 0xfffe0}, {&(0x7f00000387c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1001e0}, {&(0x7f00000387e0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1003e0}, {&(0x7f0000038800)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1005e0}, {&(0x7f0000038820)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1007e0}, {&(0x7f0000038840)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1009e0}, {&(0x7f0000038860)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x100be0}, {&(0x7f0000038880)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x100de0}, {&(0x7f00000388a0)="000000000000000000000000000000000000000000000000000000000000020046494c4530000900000000000000000002000100480001006801000000100000000000000000000003000000020000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000700000000000180000000200520000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f0000000000000040000000000000000000040000000000000004000000000000000400000000002140030100000000ffffffff", 0x184, 0x100fe0}, {&(0x7f0000038a40)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1011e0}, {&(0x7f0000038a60)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1013e0}, {&(0x7f0000038a80)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1015e0}, {&(0x7f0000038aa0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1017e0}, {&(0x7f0000038ac0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1019e0}, {&(0x7f0000038ae0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x101be0}, {&(0x7f0000038b00)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x101de0}, {&(0x7f0000038b20)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000300010048000100f001000000100000000000000000000006000000030000000200000000000000000000000000000000000000000000001000000048000000000018000000000030000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000030000000680000000000180000000100500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff00000000000000000000000000000000000002", 0x21f, 0x101fe0}, {&(0x7f0000038d40)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1023e0}, {&(0x7f0000038d60)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1025e0}, {&(0x7f0000038d80)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1027e0}, {&(0x7f0000038da0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1029e0}, {&(0x7f0000038dc0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x102be0}, {&(0x7f0000038de0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x102de0}, {&(0x7f0000038e00)="0000000000000000000000000000000000000000000000000000000000000200ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x20024, 0x102fe0}], 0x0, &(0x7f000007a5e0)=ANY=[@ANYBLOB='\x00'], 0x1) (async) fsconfig$FSCONFIG_SET_STRING(r0, 0x1, &(0x7f0000000000)='source', &(0x7f00000000c0)='%(,:', 0x0) 05:11:53 executing program 4: r0 = fsopen(&(0x7f0000000040)='afs\x00', 0x0) fsconfig$FSCONFIG_SET_STRING(r0, 0x1, &(0x7f0000000000)='source', &(0x7f00000000c0)='%(,:', 0x0) fsconfig$FSCONFIG_CMD_CREATE(r0, 0x6, 0x6800000000000000, 0x0, 0x0) [ 533.992941][T13829] fs-verity: sha512 using implementation "sha512-avx2" [ 534.016582][T13834] loop1: detected capacity change from 0 to 2328 05:11:53 executing program 4: r0 = fsopen(&(0x7f0000000040)='afs\x00', 0x0) fsconfig$FSCONFIG_SET_STRING(r0, 0x1, &(0x7f0000000000)='source', &(0x7f00000000c0)='%(,:', 0x0) fsconfig$FSCONFIG_CMD_CREATE(r0, 0x6, 0x6c00000000000000, 0x0, 0x0) [ 534.050610][T13838] loop2: detected capacity change from 0 to 512 [ 534.080484][T13838] ext2: Unknown parameter 'ÑC`ŽÔ%÷«À¨A7A' 05:11:53 executing program 4: r0 = fsopen(&(0x7f0000000040)='afs\x00', 0x0) fsconfig$FSCONFIG_SET_STRING(r0, 0x1, &(0x7f0000000000)='source', &(0x7f00000000c0)='%(,:', 0x0) fsconfig$FSCONFIG_CMD_CREATE(r0, 0x6, 0x7400000000000000, 0x0, 0x0) [ 534.154225][T13829] hugetlbfs: Unknown parameter '' 05:11:53 executing program 4: r0 = fsopen(&(0x7f0000000040)='afs\x00', 0x0) fsconfig$FSCONFIG_SET_STRING(r0, 0x1, &(0x7f0000000000)='source', &(0x7f00000000c0)='%(,:', 0x0) fsconfig$FSCONFIG_CMD_CREATE(r0, 0x6, 0x7a00000000000000, 0x0, 0x0) 05:11:54 executing program 4: r0 = fsopen(&(0x7f0000000040)='afs\x00', 0x0) fsconfig$FSCONFIG_SET_STRING(r0, 0x1, &(0x7f0000000000)='source', &(0x7f00000000c0)='%(,:', 0x0) fsconfig$FSCONFIG_CMD_CREATE(r0, 0x6, 0xfeffffff00000000, 0x0, 0x0) 05:11:54 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', 0x40, 0x0) ioctl$FS_IOC_ENABLE_VERITY(r0, 0x40806685, &(0x7f00000001c0)={0x1, 0x2, 0x1000, 0x0, 0x0, 0x0, 0x0, 0x0}) (async) getsockopt$inet_IP_XFRM_POLICY(0xffffffffffffffff, 0x0, 0x11, &(0x7f0000000e40)={{{@in6=@mcast2, @in6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, {{@in6=@mcast2}, 0x0, @in6=@empty}}, &(0x7f0000000280)=0x11) (async) r2 = syz_mount_image$ext4(&(0x7f0000000000)='ext2\x00', &(0x7f0000000100)='./file0\x00', 0x40000, 0x10, &(0x7f0000000200)=[{&(0x7f0000010000)="200000008000000006000000600000000f000000000000000100000001000000004000000040000020000000d8f4655fd8f4655f0100ffff53ef010001000000d8f4655f000000000000000001000000000000000b0000008000000008000000524700006201", 0x66, 0x400}, {&(0x7f0000010200)="01000000000005000c", 0x9, 0x560}, {&(0x7f0000010300)="0300000004", 0x5, 0x641}, {&(0x7f0000010400)="0200000012000000220000006000", 0xe, 0x800}, {&(0x7f0000010500)="ffff0f00ff0f00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020000000c0001022e000000020000000c0002022e2e00000b00000014000a026c6f73742b666f756e6400000c0000001000050266696c6530", 0x839, 0x1000}, {&(0x7f0000011600)="504d4d00504d4dff", 0x8, 0x6000}, {&(0x7f0000011700)="111fc0d901000000803a0900803a09000000000006", 0x15, 0x6800}, {&(0x7f0000011d00)="2719c0d901000000803a0900803a09000000000002", 0x15, 0x8000}, {&(0x7f0000011e00)="02", 0x1, 0x8400}, {&(0x7f0000012000)="04", 0x1, 0x8c00}, {&(0x7f0000012100)="ffff0100ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff05", 0x801, 0x9000}, {&(0x7f0000012a00)="0000000000000000010000000000000000000000000000000000000000000000000000000000000008", 0x29, 0x9c03}, {&(0x7f0000012e00)="ed41000000080000d8f4655fd8f4655fd8f4655f000000001000040004000032bce2cf00050000000af301000400000000000000000000000100000003", 0x3d, 0x11080}, {&(0x7f0000012f00)="8081000000180000d8f4655fd8f4655fd8f4655f00000000000001000c00000010000800000000000af30100040000000000000000000000030000000d", 0x3d, 0x11100}, {&(0x7f0000013000)="8081000000180000d8f4655fd8f4655fd8f4655f00000000000001000c00000010000800000000000af302000400000000000000000000000200000010000000020000000100000013", 0x49, 0x11180}, {&(0x7f00000003c0)="ed41000000080000d8f4655fd8f4655fd8f4655f00000000000002", 0x1b, 0x11580}], 0x0, &(0x7f0000000180)=ANY=[@ANYBLOB="d14360068ed42507f7abc0a80d410e37410000000000000000"], 0x0) (async) r3 = socket(0x10, 0x2, 0x0) getsockopt$sock_cred(r3, 0x1, 0x11, &(0x7f0000caaffb)={0x0, 0x0, 0x0}, &(0x7f0000cab000)=0xc) fchownat(r2, &(0x7f0000000080)='./file0\x00', 0xffffffffffffffff, r4, 0x0) (async) chown(&(0x7f0000000040)='./file0\x00', 0xee01, r4) (async) mount$fuse(0x0, &(0x7f0000000140)='.\x00', &(0x7f0000000400), 0x80002, &(0x7f0000000f40)=ANY=[@ANYBLOB="7c0010aa50612de109179c6f3a48cf26fe810e9dd0b6b4c425f4d18d6cbe63dc2a27f832041d3791ac85cd24cc19a452656ef25dad88a96ba774968de7b29faa0a378429b40bee139f6fa21f95ffce2f3e3be0697c54f83fd0072bb0b2de22c3d1acb414a21f1108b25750c4086cdbc2817a1073b1245661e9624150a694e3b8663293eb75d0e84a8cc55999933c8b01f8df5194e570d7e4f8d9", @ANYRESHEX=r0, @ANYBLOB=',rootmode=00000000000000000120000,user_id=', @ANYRESDEC=r1, @ANYBLOB=',group_id=', @ANYRESDEC=r4, @ANYBLOB=',max_read=0xfffffffffffffde9,max_read=0x0000000000000005,max_read=0xfffffffffffffffa,\x00']) (async) syz_mount_image$tmpfs(0x0, &(0x7f0000000080)='./file0\x00', 0x0, 0x0, &(0x7f0000000000), 0x4, &(0x7f00000000c0)={[{@huge_never}]}, 0x0) (async) mount(0x0, &(0x7f0000000000)='./file0\x00', &(0x7f0000000040)='hugetlbfs\x00', 0x0, &(0x7f0000000280)) (async) umount2(&(0x7f0000000100)='./file0/../file0\x00', 0x0) [ 534.281879][ T7016] I/O error, dev loop2, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2 05:11:54 executing program 5: r0 = syz_mount_image$vfat(&(0x7f0000000000), &(0x7f00000000c0)='./file0\x00', 0x8100000, 0x1, &(0x7f0000000200)=[{&(0x7f00000002c0)="eb3c906d6b66732e66617400020101000240008000f801", 0x17}], 0x10, &(0x7f0000000180)=ANY=[], 0x10) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000180)={0xffffffffffffffff, 0xffffffffffffffff}) connect$unix(r1, &(0x7f000057eff8)=@abs, 0x6e) r3 = openat$vcs(0xffffffffffffff9c, &(0x7f00000001c0), 0x101000, 0x0) write$P9_RREADLINK(r3, &(0x7f0000000100)={0x10, 0x17, 0x2, {0x7, './file0'}}, 0x10) ftruncate(0xffffffffffffffff, 0x800) r4 = syz_init_net_socket$bt_l2cap(0x1f, 0x3, 0x3) bind$bt_l2cap(r4, 0x0, 0x0) lseek(0xffffffffffffffff, 0x200, 0x0) r5 = syz_clone(0x0, &(0x7f0000000300), 0x0, 0x0, 0x0, 0x0) r6 = open(&(0x7f0000000440)='./bus\x00', 0x24080, 0x0) lstat(&(0x7f0000009ec0)='./file1\x00', &(0x7f0000009f00)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) fstat(0xffffffffffffffff, &(0x7f0000009f80)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) r10 = socket$inet6(0xa, 0x6, 0x2) sendmmsg$unix(r2, &(0x7f000000a140)=[{{&(0x7f0000000240)=@abs={0x1, 0x0, 0x4e24}, 0x6e, &(0x7f0000000400)=[{&(0x7f0000000140)="1a95", 0x2}, {&(0x7f0000000300)="66eee71f470eecd69e6df40fb4db0335a90575ac2198d508ffc3908e8b6641a7745c32632774cf3ce76aef95a40a23e0c034050a0f3019ef36af641c3f1a10f1afbda519fc0592b380fb1b0537b87eecb165a2898ebc4213563570f71fcc934d44ec4ee31514d3fe11ca4dafce3b81fac40d79ae1a35634677206f8b85b235de66c2efce02178100c66e61b4e12daa0cd59ad0d2c260f29ae459c22802887259a37b75e2a07b31f75b60f1e7ef125cd1f986fc9ca3f34530348c968bfebe9572f4707e5a4049d0c04b354ad1c4e13d54d93ddebefb19df2b17abe6", 0xdb}], 0x2, &(0x7f0000005880)=ANY=[@ANYBLOB="20ef80db856848202efc11b40000000055936910214bb2c771735a0b7b3a926d090c85e9c87dd043987a42eef61ddc28ef60521ba15dd3a6c97339f787f13c2e9d6fbfebc9466ff7bba60adbfd67304f3fd3453914c1fdd6e3df0434b9476337bcb0484cb0f177d9eab299b65348b0da1bb2ab25309fbd8eef15082ed9d03355f982a1034133449222d68503d554b294db3317e97445eeecb176125f2be7fd5fa040f70ad613bf0b02062354f943d99ee13539c6b94d41966b90ed27b2f78a70debc36672816e45d092df0213c50d8cb818756ef32a64e3c3cfb344755a958", @ANYRES32, @ANYRES32=r0, @ANYRES32, @ANYRES32, @ANYBLOB="18000000000000000100000001000000", @ANYRES32=r4, @ANYRES32], 0x38, 0x1}}, {{&(0x7f0000005800)=@abs={0x0, 0x0, 0x4e22}, 0x6e, &(0x7f0000005500)=[{&(0x7f0000001080)="027753448e063d513e19c598f6e980c537dd8f30b5290e1efd36835590ce417ef3c633082fde2399b1ef3d60d67afdb3f6e5c5a47a90f032a730cf9e1ee56cd2af89a8c3c841dbe88b21fc00dcc946c0f60810c00fa8604a520a997325951e25744c71cd3afcbc25da3f2105ab7416647975a0c4e189195bd2064b349b76da28351116954a9c97b73f7fbaf73de94dd1b26d8046f4adb34bfc84c884bfc1419404641d8bcd76c2c7eaee9c6a083ddd3174402eb0b18f03e0066145cc33bd81dcab6a13005cfffe0e92401b6a3451db39b976579262d35a927cfdd3fe66c1ce933b89812881514241a8dc17e2845e2c9adfe8ddb10421baa23655e0b3c94bb4842fb0f5ca296bbe8a58c08abeddafce4d546a2a5f471ce67fe06e44fafc6c159a4f268e885f78d59df02990559cbf26ca20dfd36fc91506ce7f03f8b9872339f6a344c07e45cf3c4803eb283a9fc65d2166feae3391f0d95f0c0601ab215cf3c9fe19fb1999ddab709d74a0c77eb973ad72119b5a21ef9a8ea66c756ced477abbefc871d4a1c77807638cc2f09463c51a2f8a35f789db22cc5da1907f05f596269c0f5030a6a39c1936422560cc3c6c2cc54da1eb1bfa419b8aa554bc84cc999f9b49dac78a4cd49ca24767bc659b94643ea5b442fba2e30a416d4b1fb40792026e27bc1b8afe09bd6e8626df35d68862183c6dced0bbc3538a8bfbe234805bf7304762dfd20b720949ea653a02ce3fb417482728fa90826d070f06ba35f7068b8602ecbfd95ec85ead8712fc49cf96b614b8bd29fec92004ca2ed41f06717400e05cbc5a7c55506e861086ad954d3cd4ad59267b5191676d2339d40420e5095f99ba423d39cf411879d19ff795a2222aa78e4ab043a7fca9a620c93196bf386674a61aca3845894c7ee4cd4ce7eafb71a1b56cec6591fa2037322ae0d5013674a4d74efe3964c4aded59a26d494bb58c2eaccf5fd806eeee24d0b64bf6ea62e079361bdce8d71f1bdaabaa00319b3012143b0ebc50a4a7a6a2ed7b033240c4c975553afede9259228afc65890802d8456fef6eb1c83d490642370be6a0766a8cc736c83b449382ad4226f6032011b2cf375ef7146ed6eb796a8eb698f884aaeb1f2a488327f89f15ae227a3b0b1130bf01dd954f9234f0445b808578bd1763d23f95e13f7a410bc8e0e211587e320c53e9bd0ec07b36f886c466c34ff949d26c85a2234fe6101bc02eadf7b1b4ef325dcac3198a59204e2187bdcc9b64ab3d71503516aa281845ecd2367666f0bc8a58454715e4e03e14094f769d557020e19fb66133b2bca2dafe0b606dcaa632229c73520ae0ee13c3d0b3ef04c4ca3d15b3a62ac6683c83778b62c59734056998d4f114903dcc8366c68850189748ac5720db8610b084c9ac0a3264de1066f85af454ab4cc3da015fb6c41a7b6a7e9f287554bf1f1454645780486898d7220ca32fda6822e335862f0d5397e37acfb9b14d191225826043728dc0d24a1c348ce8e990d36c44250a03e083fa422f429e139fe7bef81f4d9cf25ecb8160bb4f467a7b0ead64b1fb3e959554dcc546d9d9293c9b4b9de1cced3f417029a0c61d38fee9b4accb1ddf697e22d034682da8ba7ab860b682f2e8227ffca899ba156bfb61512a0e5f1574491c101aa6567cd765bd6bb502a1913930ad9a19d62433a3adf58ef8dddd8544240ffd37e0658eafaf92bc56b69044af2f2c3da253e79a66ec67bd41f1da0a10382c1dac2cf62ef43dd00c7b0cdfc98255cfe5aa569dff82431df8d5487375417eeae43d5d45b3119c6cffcba2aa86289eae4d0f6688c5b6342c5722231ef81b42527c50ffb38ec285ed1d66f6450bbb55a109b8fd97141600ccc68928ce752707e9147b3cd57d5df9565e3ecbd24bd67f2d8ddce8834b311be4828e556fc05c97a23596d6670132b9d341b2d6e8a8457eebd7bc4ae0e5588ba9619b935f0cb7b767aad027c2984ac8241e13fd30f2167e7e2c454a70743ed97a7c96f5061527d966da7c2e12772dcecda1e70b4ed9567f12fdf22cffd5aee4b9a629c4c31dc832b67100dc251d7c75197a311c2cc4955fe53dab2e91197de20d5c7f6f40e965fe51b3fa6eef4c45a45db8f2589b03235524ff542392e7ea7e96165490f0c008965e1f5c48ab0d2063e3d45a09fa30171b7cf644aa27ece63439df51d583989aec6f623d142a5202cbe8d381e98c5b7c92ceb541e833b9f85a5adf32f733128e221b2a5ad095dfc06d20a74d99d8523fd3121b79594c3c76b8edab0a8b8fac4c3635f1a8585201ea59903842ae69c324b418eb9d2eae8a0ed6e9aeaad4ba1d2e748b3e6e9fc5af9f09d8c373c015bf4f2945277c1b44f72533b2b5f1804155fd195f0126877ab2135178613a8e1454b11938315cdde961bea74adc4f4bbd4917ec1467dab772d8aed82054f2c6a58f0b0874279ba1a343567a5ecd26fc3a0c2d1382b572135b3ad4f89b6e120262290ce4fafa4cb5845a47a7f587c6516e0f4d40653fa5aba06a4ca8ea4c19f5222af1b53177f5807b4eba15f2dcb1388f3e552719b3d6a938d79c78f09096e11a32c7c62911b524ae903e69882ac45cf39c94a9af7ae2381628f6c967d5eb12c0b6675e07c580f8d01723de66f6efc00f1ad029b74f79bf0d5dd9e3b7b84eb412b84bfb834457301e083517b1b35c61a78506773169ea51bd7010fbf34fa4f0df7573d07e433c06b3dcb06bcf61eb41363cc6383ec1635299a1f07b91f081c4cc17d52ba73ce9a9d3abcdf7d407b6aa4f71eb544ece08c4de1c1b92e9fcb237f402c703c3d1b1ba9dca635839bce752d35d4772b3444f5e39ed0c7a9972ca56ef508bab40c800e2889a134f74316319188a0272be77285f2db2291549dc93152bc58e5f3d576ca4804e4e064e1310dc12eb5ca82731541b9df8c4d39024f8defc259e3a64c4e268c3b6baaad47000d6cb7f3019792480a571f4349b227b82605f16f1b9a8049e742001a68de0bb66dbd2c84dc67e640e2c05f07b06b2c1ffeaf127354d20fcf9a1abf39212c2098ed14caca4ba5dc059828220d41eea339ce8bd2317d52d73511e0ab6ca6ada2546d8026e988efbd814d1e5744ad0121cfbc4947610d954b81bb08e0f5ade269c7c1071184e0a1c50953cabbd055e3017b6206e7426043fecfcb64fecf2044093d16c5523765242327077693cd43c1bad7cfd1122868c992f6094555f20be308bf20baced6aebad66507a949cec8cb0afc0786dcaa43aa41a5412c0eb5973f29828505e42b1a3c6180fdf7d2f276f5a41dab66c1ef4d1d0c2d2f75ff47322a1b62133eb293921f0d6d83ea297ae5518e77362ffd7642b13c6d904ffb99b2a23e8ccf16fac5656f94eaf3ede6ca991d9f9b18905c47e7e3d74e4897bc0056ee364f98f29464e4e01f6a53278476b82a258eba9031473cdcc13e50713c18a5d48af8f908451cdc7500fab6846017f323fc538078e69cc9f547cd0e4e90852b0c702dd0ade659fc828ce77280e67f2119675508ec8bc14d24f7480b345e1d4b6118c785da575ec576d2a3db9265fe7e553e583b1e2c8f3f5967e3824541aa7a49d07efb33ad85bc54dfd82f93646dab2afb14fbe2381181128970f23266293c19367590fea591ff208acde322edb7e4370a4cf1c532645757478d2acaae087612b4293ad13b390a7161f200ce56b6e0c956b0d108377d579eaf1b860d8b6e623867c008ced014a22a23b2506b729cee407b7fef8b7fe0c94ae65f32f8d2d73f8a4ead6c374626ca5b0928f82813f949592dc43f6b4c881b313e35e69e832f13ff3a22fb728342decf24cb856fc485cacd8cb0fefa6760a75cbee84cb69ed8e60eda6a00acfdb2f4b0362a8d6d5640f0572c6eccf3214b2bfc4226f221ba07ab51b25469d3b6d767193a8f603d419ffbfe9ad753581bc4a19cabf48486ff1c9c20b9abd851f7a57efcdab4f1d989eebb9c198cb83294ab1b07d68ae10099024014e2bc1c0d7718c3562bdd3bbe12bc0c3d84988c783105d5fdf04632d1f20e0bed642112440c97987a7e5f03ce87e1da30ea83fa5d09a402ad776b4766b062a9e978877bafeee6383df3a6c4dfcc44297d246f46d56913bef3df74ee6f2109cc07d30075c3a68a2d3acbe44705eb49cce397ea043e268333c67828aef76f462354cb30f2f1fede97189eb21010196870a2667052f8f8d6040b3cb51b80f97728095a5bc7f9cfdcd03c47a2c6238127e67599e2fa6cf4d5a6dbfe8ec2496dbd2f26a6b5515168063b3b66a54e86a87231d0e06ce49b2ae3b428578b00ac45e77476e793efa874e839a2976288f4aef23098843a14cefec1aac6b9e903826eb4eb2bb9ea3a9e8c912da7ef491bc78fba2bb769fba8a7ceb44dbaae371189cb5e2d25051a62d3c7068cb891dbe8a8d070633a45af3f3ed34be0f06e00a44568f22baaafd5b797d2c5f8d285970eabc46b9d950e6469b3c17008b1aef5e92af9085d5fe2c55dec67684449b1c297cc270540d654c4d5a8280dd174b7f6aee51e616c710cd2bb4f67210495c888f705ae501f7a15ac492a6f566d363424cfab7e7b90e8626f3f230d9af027cd9d208e1de7c7a37939d737ea8927b69b7aaba8fab0a22523062a4083bf20aff4f6b6e642b7165cead610add9734769615d33c1a5cc716bf3dbef77edf9b2d8f3dcfac52210b4f127e68e57092c44f89ad41917cd84f11af284e71271e381e0e1475659d35f0c079a86ed6bd9a88d6fcee17ac5cf2b1bde1bd3df5f7f35dd784a1e745329b74cc80c58728ea8789338bd2652e7b56c912ce61df136e44238cbb55fea3e24149e353768184c42fdcddf6d66a797ae148080511a71e0dc84c6249edaa3fbe70545e1f86f4d9ef24d56349ff4a489da22f2a4f77718d24fb0885fd3cbb536d6e89246f5072fb4f369ce7c010fefa778484987f1915c3800978460ecf9049bffa7f8c547a944a846cc9edf9cabfc4197e9ff9aa3ff0d8dc207b3f3aad27086e2b7944a0f373440d3c785a8d8a3ee162c660bd19dddd81f7c709bd61b816d4d3a266ee7ec56c4d84de204ef9e0f6df43c4a2a0f4cefd04e23d9588c9b50f7aa4fa40a9b0dfcf1dbe828cf706fb380c406f285b2ccfbd8457204e3f4050d681347f0fbfc3af07efa43336e24f34ababa4a9e3e345bebf0e766e22b3a9b361af1e9f6051566fadcf0088f08f2b4b8e258e31f40582f7206a4dd6095bd18792e2751c9cbfa8bf9c240a51a4f745bb0646f5a042a5afc6b4314958f05e800789d750a4d6d384436b5fc1e30b0e66078011e38f293422cbcaef28afc4c44030fbbb40305ed47fc6b451da819593356c623fda45d07eb9aa595ac008b06409234781356d8c0546f79a7358ba38c7bfa49c79ef84f38a11cca86ab71d85d4e21cfa99c764be0218dd7084775e9b6c00aeb3cebc8db0ec1472b89d2734e19d27cbe9d8bec03fda3492427cad75b9ff3f74709f25ae1d92da1283d759b18c8c4771699d37b1d5f7088ed99b1b8b97e554148df1defb95cffd81a785cf4060c5201fe0fdcdaff9f561aea330a03abdab60ea45de886db10f7aa5e0d5ee38a6ffa3a0b12b5b7ff26daef1cdde05d6ad054ae934eed526da7d7ce5b59417672828982c0039e2696dc26a37ee9fb8d38b7b31e636052e19b6a4356456d9a4e470c66465aa63532d737daba44f8e1f048cbb9aaaaa769c893963e626e5c11a27e3df80dfac20af2ea3ef05ad84497f966cf963546ce5246498db7cb884bf6e614035037af809e778a963da83", 0x1000}, {&(0x7f0000002080)="540445e5e016711e4cfc3e1b2da0f18df0a4a93c90f772c83b1a0567a9bc3c0af022db68e79002565dbae91a246a1e9c29b5f3ac677ddecb9ff3bd864e579113d10b19168553cc63986feed5e60fd1622549f99e6ae9619344e914956acf2c64ef8e59a616fe24c2704fedc45fb3866d36c287617065e9d9c91761ef49c39f577a30adfbdcadf29b83da1f3c6b7524ff5316ee56206b696de4e59e2d83d459c74e", 0xa1}, {&(0x7f0000002140)="44d8a4e3c54db2802a45640dda86342f939654a48e6b0d13e333566194749c12f28a38954733f674cb0e9d6528605e422d8d1f923948e122834aef13be1e299a8726a1c1f2d353b6b9decda16ff4ec01ed2bbc89fa371d1ee71746a3", 0x5c}, {&(0x7f00000021c0)="3c848cdb9911accc2ea473f0a666184476e19c57a17c207b04d07e7b722383da169fd0d1b899b9d3afc1037d45ba552bfeb069c570e26300e0b597c3d8d5f0749849e06c63bf29048a2eb80eae99a6ee35101f1b30229a88cc466a872ffd914aa75139a5ef4431fe864e07f661458db6258fefbde4014b838006db60fb273502fbd1108b98f65cf17473211c51e406771f6579e4a4707ae3ad160791b096386a03e411496403b4e320d509a39a28136a983d41a653dcbaae60235be69fcb85e71f74711fc1569ee5b2f4b8218f0894173dc41de5b787b5e1e742aa1374122eaa47771b62456cb7c4c6d81762563be7b7559ac1090b2eb43e8aa45996a12ceb26d337f259d6409f6d8175c0bb2b1441d30be7e8e0090d8e57717e3292f53321b3ef205738e0dbdf07a2e99299a2560204bac3c080005c89bf80340b8313b1b4b9806b958d2908bedfb865740624190af4ef9053c8e40d22048852255a62b3df8ccf4c813d672d60b6b56d37f877d4a7cedb9fc401e1094999a7438b11e78320f59eb592461a9eeb65a8ea257889b11ae26978b0db2a8bb4e23fcb0435ee5dfd1cfd7231dd7d135e50c9bde769b6f98fd7d5ec46a48e4e174a4def026d932982ba8197610417a3ca7f0e14a9c81d6253e657845d4ae8d8b78d2f7694109cbfb590f4eab6b86891a6f24c5d67a9678a0184cbb2e088472b0ae4489a32dfb0a0b443fb2e3fa4ce58e13469d009677128611ab96a8c96e8414db250b5cc22509fb054c595207d273c040323801c97ba569163e07c3fe97129bc028aecd8a557c07f9c8ce1648172d4af3f785f02acf2089eb5a6ac271e886125ddc7cfab188094bf47797b6cecda91da51a8fb42ccc07bf7556d6ba323ba88a8658734e8aa1bfaafbe6dab717d9b9bddf95aabc1d0cc3caf1fa5077a03297e9fcc1b3fadfe4d7a25b22c4ae4139a54903e10f8dab3cf944b332d1c8e62ff189b2b9633441767484337290e9235e9c04d9d9855e663b320dfa7497054460662274a86e974a5ef53654eb8670ff64044ca2c015192e5f4a236d4f56ece5a28e375540854ee1740a0f50468dcfb458cfb0e2aba513ecc07c30a4c813cd4938189074257c4b7a932f70f808f2a894eed862700a708d75b2ae5b6ed18e27bd804dd1deb45cd9390aae800d9dbfcde855628ee82daa24f2fe13f77d4374dea6fb026133ae4d2f6a3d9dd2e71ed9805fd5e27cea752888bd62cc267cb2e615b75fa68e94bcfdb8e37ffe12fe775c4a484fe9a8f4a4e19cd8a011eff69812e2c71d9245a5d2d662ed48180f52f8a3b95a40ce75d57318f45d217586f14437f13c921bd59199035523d66ae201b7fae5af58f60ce5198ce2bbcec0f161ed6ee10733e3359f5e02366cde6d4167e5ddcb66fe5f1c8cf35ab61fe560a36cec768433a81f42609f805868142f2bf3347274b4c6e87333e12f0bda410d077caf0ae818a93a3465b1abcbfd1f5897d8be3e341eb374b081556018dd50b85dd6605ed757227a51457763b19731ae075abd7ce9be36aabcf6a49ac77fb1bac6dcb8bbb8525b0610d361c0c82ffcf9583720377f2b8c7925b7c0bee3967cb3af7e8dc792fee3facda1e5c1faadb75dc162d614fde83b2fe6b0dcceb73488d91451063b5ae16adba9c1a3727bf254b80ba8b4ae6b09f468963d3bc301221dd1f369cdbb2591d0531c52527dda8c666d79fe890af6ced5bfc0e0214d30213b95e038d8623d2157d38c55685817847b79bce84ca476bab0e1c2db4a0a1f3330995f3bc85d7dfdfed84bee30fe3aaaf797cbc6219ac7cdd8f12333602d2b955168e26ec50d5894b6409b3ca72560825ed5407a0d882e46a4ae041deb1001f72f2d531c7fc3729474d5f968effcba67d2970d496ce15e3b5b7f1d115a809210e1651b56a19a629c3c7dfffd7be37c4b89b10b0d6a887001121bf8cc8885ad98ac3dae104afd70b7342cfd5b341c3976b5edbbb871266c81c7466ac8127347ad5c02cca2e10dc27e260cfeab0da5f7c1e318e6b200c423a053f9c3d77bc8657a064c355f2d8345560c659c448a5b2d3ecfe0c912434e1afb845d4d918adb3b4d489cda2ce49eb2566554448dddda30b02f5e84579522ba8d1af0c821470530c7a65b60450b2f6b944cf69795b1acf7675b4ffc57ef71b7cebc74adcf07255b5c207e891ffe22c769d9be92bc46c550f1f0436aaa59baacb18ac335b4b989d13f4350472de8ee8f6239ea3d6220218cd064608538ea4b3a60f39152fcc3a61c9fd875f3f9cfe114f65aadefbc91b2f8a6401d585fc9164f2974bfb1d11c87cdcd48813dba185291194b5671aa784472cce144166c5e7f1c342bf4ae42bb4ce98a3f13c41c07487d8efc188be22bd41a795b536d7a1fdabc0918e2f39335d525b98ca9e5af6dc9168eb664dd25a843f862736e7365869caed1df321d5cf36de1a9f27f6f46d9d64cfef641ff23637588e29b19ffb031d276fd765c15214c950eb99933bf9a92f0041568c4c27ba3b307958fa20414f366296ffce333c368b2df05495ea9ba0305138811d8d7004cd1b1c1b99a6d022af4e1ad199a9eb40976e68c87e08c430c96dbf48507189e0cd11e5ca9003883d26fa94053fcb5877c4f64bd79b3ac5d96683939394f7f83eafe510427a43c259487aefdf77de15fd9cd485a0f327c2d5d21bb056a1fec58f68d0a1c92990b4b32469935c75f646cca7a3ba1ea3450863fc113811a155d9e4f65b4bc114c5d20fd5573d8fe0939e662bdf4fbee76ba0f048266f87708e07f86b210af6a97a74027edda389aaf3155ab55dc9490118ece630743d2fecc8d41793ce4a787ae27d07d46680445610a11a6ab22d4f567bce0bdf440acfa74f722d74456f1d28ff5c05eb6a0580f2c9c4e44193d1de1b501319838bc35c59927be2e95e19ef60260ed082e0097e56f7a51db781efa5e93c751a0dd5b57016e187c8e3a3705db1c382165c713e6f55d385f934d98b4b8094533b33e03f646eb92672463a6bffd660b8bcf4e26f5bde70e76b9464a7182b0b43a486be178ac8a3a28152abf489d79dcc5d809d335c89fc4a5e2d7cc4d6ce9c6f439c1a8c31ff4b1848e475aa0027f7d4ad16a3207127d0221445c058d2215461d12125bce86edb5cb995b64350946c6832553bbeba838ea0cf7447f6930a841cfa2b907158f1c59a99a2e12bdd8a68ddd3d7f3b7fc7ad1f489e52b723bb5bca3f18eac5542cd14335f5b1247e3852d1dccb79fd699ffe183cf7fcfdd39bc82f5389753556ccdc4234823c7ba07c552a87de370a9b77d2f62b2c003fe40e55494ac3451cf6d9e482ddc7546aba145e43f92427dad1b3168f55019cf3c0498aa6db1179dc7cabb7c8ec12aad31856cc1e48a9ecae00d97abefb19f378f00e97201e80e2d648de84e75b487b08041bffc2ef2f3a090b134b3e43af0ba7472929cce96cb40e684ce13dd176f134654da57d9953d3120ccfd57c2dd3e2f4c453becd03a30a937b469200fd1f95603d316e3aeaa4b100534c683d8f88e1b57367856423a4d06915fb9491d099f15111f24be384063bfece64e3891423d5cffcf2393cbdae40f04585253b5ebe530ed860188cc7948cc3c35d66b7a5f3eabd02f4e261e65f32627462706d9eef18ac686b3318574153addff5fe31fd8a6ed10bc20b238d9f121a0957f5246f5800a7c7823635c6912b595257d3f63988ea295021c14f01fd74d4c546ba3956a9688ed6403f4b0591b1c1eb9947f60cf54fb8b4cd57fdb67166226399f138dd910b926ef27f84283c917abba848d6c2d367655697d34163cc8a810a693bb7cc8dd6118263614b32a070aaf3b58530d11f0fa5ec7e92e920d757c958f8523ca0917aa2f23a6f3a9c41ca0041525508ca336a16e2edf59883469639bced868042ba483a52ed345b4c2d881621b5b03a74b8564ecdfbb9301d45bf0f1ec31678175b7e75d27c6f740e27d04812c297568fbab3e030edb6259ed9f05b5aa113325101581fc659bb65874a0b1e1abd4c8d64d36e71dd00bd02bb1048693cfc4fa7cc2bad2cb9b24fd850fcca91e1a6773dc2b20f2453234c754ea1667f8623ab19fbeaad6861a3039e0a8bfade64c36ee73153974c1a9e7f92d48ad7188ec7eb7c884960e02519f7efcbfd8bf19a46801c64edd0efa0c44bca477d598844903b169e173e2179b4ebdc658b975c4420e890c96981a66b1d1a3c6cac8ced46ab8e61537bf2180cb88ceb831d755892d3a74d56a40a6ab1896a8dcb7f1812dec649b051353b6e22d2a0d4c7bd4f914cf81bca2f5e519f537cba2db7f02be06312e391b165eccb9c63795293f067bbcee43f444c0a4042d98139732718bb4b9ea4c38466251af1119f2890da4fda4397b2eea2cb32c6db874bcddf1a67a32109bf4f2d176634807418e43108f71f16de108553cba1ebaa1ee2ff0d76a1fd101716e1d5fc15c0d7946ba00409db7529dceceb510dd6a7b05d4404e9ed3cee6f30d530fdd649ffffb75da6d6e42838b70e8cf9e906e71a7cb2204d757eee0795599f7aef646585a871d6fa025b72c6bbe02896649f88408e434af3fdc9da506ca2fe5a4f3a31e857f6aa682fce2e7e68869ea19b66a324b6e554b6435cf94fd8f2941c84ee6236696d311d92ca5ce9c3bb17ad1c83c8aa920606240491424e59fa88bfe848056fe402c4b7ecce28ab1f95e843c4b0b11bd93a3f5c9a29ebb9b0a42120efd5c6ad428d48cbd5b4e1190cade3bd8db7c03bfddf0737abd7607987311e43315d136d19b8cb970a0c928dd4d6c9e9b3e57db5028c3d590176b7f62dd9f4989cbf4a17ce168e66fd3556fa1fe2be6d6180aff5f1c55a913eee0a26cfdaf01f3c5265f66e0a18b99c23f85b092c8d62a5d144cbdcf0645061e73c9165a35e34c604a403c42f02089e72497ff93bc0dd3da17399e8cbce4c38b3b1f24cdf8b32825f4cf0b23146d8fe79b4a8b52001d59b92c17e02e6664d3cba95370d30720b29d4c79359d0ed447230e8eada1f72a07172bf41d73db8fb650013e53e63f63e4b33b1ea2446e1d2899028ae827ae3197941c9abdaf12cf114894b15f1cb1459a730a2d91881b71aefb79f445c945b7e7783d0315ecbe7c68744cd03e7d2f7940eb2f33e6ed08fdbff6926f1c68f4ce8728fbeb2c08662e94f0a2872f0e7ca5bab29c2394175f58fecf1ee73c5120938e4970f8cf14f5ff18e15f0a288c4a632d3869ba10790edeb7b8eb85dce82b992da7f29318da9c7f7c403d71954b86bba7a0c15c54ff5e4956958f6436f8638b1f067f04e22b71e0f8f407f6997101d96c943625b3e547bd2561438ebdf39caec4068f70d5df64630c63b6823e99a610fabe582c125609d4d2164e34c358a2a5b0210ff34457a1e62c360487e44798a6214e6f857c3be27cb56d7d6cfd5670a5acdc374403d6f3aef9c63f0854180d53253ab3a119275594ccf4307b3ac807cafb04a5569ce6d37fa77d8f77846f0a0e05cd9ca49ae9fe97a80e43e90cf0f700427c75d853464f4947d41b770fc4f3f352077ff92b5854e5fa777a54818d93b8f1c6c35ab6380c29fa9d8bb9f27e632f90ebb44420a3a1b25b67f3efd407c8223faa3c299701ec899c2dc084f8eecd5faeffdec32fa4940d1f45691abe02ea22f9fe7b118417d4ef61c215f241d542ec5614a8fce54b11e1b34d63a9f4c457d8f277949641088f5bab0503b08c6cf48f74ea66f550766afd264be966140770d06e0e0b16fc199c10f245e0658ff93bef06fb614c3634772bcd50ce", 0x1000}, {&(0x7f00000031c0)="546c8138870e11381fa507f18da23af50a98caa1ac4368174483969511cb5b5535670c515294d0808b295f7647a04e41e8ba68487edaf3abbb1ba3b60c3d187c99112530c2ba177579b4e8a94c97d04b53dcb37e9b171dc26378e2495e049fbef68a876fa23ca83d28662e8f28da7133d32d2cfcf454e2d2a9ba257492d18238354ba8cdeeca31df1f0a27a837326d0381080e6fdd22179fffac802e9ddcecedbc5487a9ea0acc95d328fec2cc98283ba8a4d496211028e470d2bf7faa52436269d036c60c7710da4a29c212578c363f2884105c31a50f50e74713978ae099b8052236667d7ed0edf5e63e63bc7eb19bc217702f6b5f155a62f3a582a9175ef2845bf586ff4377a815701fd54767751c7bc101b85d3bf459f545074b804a95d6a4ce9f5a118122cc7b50e74c18506501653025657d65eada545d3faeaa0bf8f1e699db773cc2329491e752a73df085b122bb5f95b53ef5f9f12e2265164aee40f000b9ebc29eee11715d3f2152b31cac121bc53b11bc63fed2f45a5e0a62a279fdcf32d152913bb6515137b4eb16408d473b19447288b32f76c8186b9143226503c3858448316967e846809ca6ada1dfe00f5c06a21563217bcea079174e26bbf4996a98f0d748350d6b704a399cd0a791f9bbea0a2d1bb28da590b6022c94fe62682e4d85c9a6fcd98475d31b82ce6617b321142aac2364fb152ca77d7b819cbdbc16eb41f077e94ac4b5ba74eaeca0dfda6f9e82e58e8889c8bd837e3c2cccf46d39954f9f4484b4a04a0afb0db68a6518b9065062f78dcaa19cd0b32d57d5d2d43f307b7a7e87ea47a320133a0434e0ed953dc372f7aabf5f3820ab5891da1da4f3e7a4c777159ff920b0075040f8d9bba1652e2ab6329407f251edae0852131f6d17cfe23cef27316aa2fe59a38b336617b0ac453cf6d2f50743f20492da9e6d6bdbff8afe2ce45f726502628e7541b641219c65f3ccdfcb90dfa0466c986a687efe434b538b88a95dc8538881f9e820955eecd3a9f2ef32df021cbcd506f239c7aab43b0c3bbcb44ec8e86f2f150770d70c709d69a6a85ab312b0086f8bbb9f5d0b1ff642f68df9d7f83fa6b62940925238fc69d4e7bc09435f0cb84d567115a07c1593c0d9b14cdb150fb57b555105c96a3a5eef2ccbc737d4eb94c6bbad9c7e37852050ed740805584f64c81aed4203ab8f91d5e07a90c94d37712c8890d67394803b1a0c1adf347f8820750c9b1e5c512398206d5aa645a1fa9d26e4c77815b3e651f731827c530aa152b06e833984eb7cb9bc914d67e015adf74a8a250fde5373dfdacddd249c453478b6b595fd03211af584f05b07c588aff0a27f75faa104bf8a7665291fede392bdf27eb330a38fbba64a257fe307672bf5027fc81bf2e8ef2889fb4327e7cb185c491c420c7e3933676b8303d51fdf0b0ad533d88cf51f3dd90452ec29f659c052e84f9a17a500218218bdc52d73ef466561aac3aa2a4310449ee2522c547dfcdd5fde4f2dffabaa30454d7f4202de41a3b3ddbd80534f34e15bc9b0409b5357bafadd6fcfb0a8e3a8844b03a0af83d4d10086d7032e449b067a1fa42f4b3e3824120c630074f6790fc3a4d5d862b3bbb4ed6a79d5b4abf0671cd40ea5b140aeb0278cfc807e6515dedec1d31e4d0638f9288242c2690065fa41a7d9f087f44fb22c2a78ba4ca2c66a899a2c1544489ec552d35989e5a7e9920a23ea7bb7cdd9efe97b3a1760d02f76bc0b6c1c70da919b10069d20477272f7957257ea8506c0cf8035e5e0cc9e2e2b1e5cf14b6bdacfab37e789ade77dc432934fe2763b22429a8016ea1aae918531a5e41d7d08979f2dea53b71916e94b740da06722f6c678c85f4acb59091716ba368e14322e7039d1e4521816d7b4e7b66b0101cd0aea4e71b9ba4e958cc3ec9d87032363524b5cc646b67ccddbd09f269f1145db99ef298bfb41182a3b2aae6fee3728e88f57f6857a8321047c898939e975f1b1ee716837093e704340ef0adf93e89c467a9dd5746cd5297ab7038665cc53c9d8779c6b001415c5466df9913adbbb37a33ebf657c3abc00ec4ecddde076a4796195cc6914d2eef2b5da084009ff65ca2f1db16a00d3b0f450ca472126a73f87bf26122d420a933f220cc42c2e89e3da37ff32fd0b5aa644c3343f7e08f9fc808e919f528560cce58ccf02724822ee56a7feea13e419f6118c1e6e1bfb96cf030b609b5592ab9e835ba9d18f969a8d836e8a21bc7a472865bd41f940a0b67ab6fcfd47cd82ee265e97500b1b523a6fd721ad16f523a5914743b5ca9cf1ef742c1abc139e4416e0cd22cdfc52b7e4643eb8cae0558b36beec436d4c6f4d5140637d658c355664c9b021af27bace8769b8f38f2f151b14c7bfc39274d165a843283799d157d052dca4da229bac0ab1cff4795c4c6d6c86ec18f38b09000c5980eb83e176e377889ebc75e2c8dda0854b7cdb145081567f4bc3a761ca705dde0d0b7c70cc62928dcf3173b6e02600e77b5ed4c65f0c55c44d55a92371bf6dd662d3612b4ee42936d2609065faa907a22512c5d62f65a459ba55cb34b8957d6c0d6a0d74d7dafc5f530d715c4ee4d70702eb74e5f237659949bfcbcd1bc92508f17709744bf13daf2c08325c6f255efda7c621d6cdf2046a78d44614143dafa11de51243efb0753a90acf5d43afc41d60df135b15c408997cefae40b19715f584b87347e42a8b4d50117f55a8406a5db667392ed9e5d1aa87ce088d596dd26d08836c2dedda1ced5625c4c867f115969cca67b83f5989d86cfa97faac2c24c1cf6aa8e6985d768ad9f16541e3978ee4482697bdbd8fb5dfbaaa239fe6b02c61676fc6a4d7d878b95ef8f03966ba903457a5385194541cf67b64ae8763c46f253b153d671325f206a8a93c3a3b5ac9b290e05112191cb1fe636beae5d43db1fac1b86a792404437924c6f30d374c294e3363c88bfdfd8aeac54a4d8b97d748c178fc21287133441f8d96ccb90f94a5308e229763b72564be3f4f03c71da781e5b7d3557c1295353d14f05a348875c609df8c5e4fd56d4c96b4b1ccb63ef359211da1852d107efec271b29a3b69baf0cecdcba11563bbcefdc3bbe59ef9b25bc20916370dabb214c4106133193f0e81896a7a9e4d8d40147601ca61117227001cd96e6638e213aae7e54f2777cfc7aa6b15bae756ebe100d279ae284a08d86ca2fa8ffcf07102e5f27accb5260b93a892fce6a8c9a62999c5255b2217767d152476db2ed56711593ab0b906d842347f7c2482bb022df9ee60d837d1ecca3c1051c1491e788040953bda3aba0773be4606b29f69bf81496c38355f3d1fa43d2a0a2eeb3ad542171657edec75ab9df7e5c07756489719368f98e4e828f3d4f6720b5dc4455c5209c8c1e438556371ae21a446d430c8727cdac0d271a3a5cdd05c86d080639bcd752341d79bd791947c73c95fc4efd44086c8835e7e6f6bf80c1b7fe64e52e5c47786c1ce56d1ac914fa2263e6b33a3eccbf8bc4154d2845d1a08a357cb9ecd489493bd70c127a4b1364460ebfcb98c0cfabd27c7838fd90ee5cd2f238902db71772e60e3f8f3d09a6336231a23aed6d652bd6dc0734a0e83ee00a12669149693c316effafa139a189c03b1eeee835e3ee0f9b63558b3a2f466f64ed6dd69535f9474c8523d89c584592068885906cbf836104fd60dcaa0c7a01fad768934419809f2cb212588a3da447171bf673cdf295f0d91bc8c73e97ffd1d20e5a4bd5bbd1b4d38322122544e9eb902fbbee65e7904082c3ddf1e399123a8e36cb15d64ccb5e60f97d57eeae1e72e8ffaa90c5199486ff88c15277f78ed3decb580fd511794a6561a1b376f009d3ca9927da21a1b3935b610d21def4413355a0983d7563911f91dbcab996afa2323e83fa60b643a852b587f3d7756a81a5762126119c9fafbbd2eda51cef9940fa49afac49e76873074f22cd987fd82e6353f4941314a88fb16cddf038c891d15676b2bb4b6a1d6a83928ba5c1b85c118b8ed1055177571e9d8df055cc0836a9ed21c09ce2445346076ee767a87829de10c2ae8854977dede389b0c9b23d64460331c941f42ea7b21cf2816534d0f20ef78e85cee3ca3f08289ce5ab354b61dff6941a3a0a6db45ab7c1560141dfc906ef07a5c0a27669f0e4fe266f7e691e7d73a6b72c670deae38fe2b6ed4e523181bf14d6b358e5e78bf904dd4f1c0b5675eada532fe180697972d9b4e431f0c6572a89a6dd7da0413d3fb29ee66358f9d65b77c3e3a5c59c313e2cb8f5041673b56ba04689341c8e95dc6f2f456cf0bd31be3a726f2455a50c38f1bad49cdb6f5bf8f8ad94dba62fe0e023348fe76193d250c639a7ce51e1681a76822a187e9a315c8cf26ca81ff367a65b9e9d200dcbc058994d9d9d124603f0190628535df6927cdf5950c9995cc52d16ae77a4b11f5d414164e976c2fca8c4c090e56a9b7c445016985a8b5e6bd8211ca1239fd559b249167c6d03c7b84ea48bf170e56592d143e301f0cf4067fca73ce42e9e99245b0c778c352d62facbf5e25e021a8ae320784a0e4b71808d890f42f40f778bf77898db0b4a804a7ad76415cda48db40a2847f9359f059d511d4df6fbc60975d9b1e859449543643082c0038f90cafd6b34659143d9baf191fb9137a910e4b334e69d6b4bd74e4db11495643181bc647e91108a92824535ceef7199936d4b8ce54225912088b57c59c23c4130556edca3c627f15f771d32e201faf5403cc1c821cc70df875223ebc8451d2d4f76138b8e713679c05e393dc202d6debf2318ec9ef1db2b8ca338310d63154fe346f67cdf83b035d678fe1e51ae15a2b0c9aefb6dd3ba03d1e3c4a9c9ef6aacc162dbfbe7e5411b1bcee55be556dc94e1be781c0f7ff2037fe43522876f6b8ea48da7c878351dba00e1cdaa50de54a6ab11407ed0e751418c037a1832aa7b91a729df699aee071da9ee14c053a37449c003f0ef9300bc6133400db9f809dfa3f83da6d37bc8b88e1ae70bac541580e6720df9e97bdedb1cbeaae6a4d420de4824f8631534f4fb731fa3bc36d9ab1973b44d8c12d9696c64ba7402afaf41c8257ec45d11e40fcbcc6f9e28f7ba9974da2894ae68b3fe3eebd4043db963202db2eb4552357d8d6cb669bb6fb281a4b54c72bc67d1bd4daca9e9e5b4df49faf490b35bff874796e989bf674a6712ed8749dfcba8894f3049eadca5c9df876c2497cdc947482dc95fad6f7a03b8106f4a094ae270a7bc407e8eb8b9e02c5ed66fe3bd341c6faf8b5f4c54497e91e8b4851905483ec725b97782a476a3ca53149ee58b15acbcc321fdea9c1761e5f053c61db447fe391ce404848badb6cd0ef72f65baa66882c0d7e4bd51038174b69f45c4d296d7cb2f884045c4484a06784af7dfe98d98dd09f328e9682f2a742ee362d3579b845a8ecdcf06be9fee360d3dc0e6184101973a2063a203bf1154cdfc38c4ec873a37c2cd691061b30259797a9d036bf2911a9c189081c48ef5ceb5f558d7c3cff8871b1bf8b78eb80921c61709e6ce2e20e663cdd73f2b2f1b82ceba9488fdfee8e4ca6d280a1175e4a4294e2fb79f4da74b507721a962fad8ace0816265d38e9169159da9e6009366cbfe2e9d99805e6dff19f3b93fedf2f6a32f34b52f06d521ba608ab6ebef8c7b8cf4fd046860fcc51d4ad5ee4efaa295f57868b64fae3a11198f7e25cfce60c02ad45b0088809042e51e5dff1f5271099b23ea8c102433c37702b3da64a2872608e3212eea517a", 0x1000}, {&(0x7f00000041c0)="4d43402791f29ae4cdf0a2f0290b68c45b34b4ece2475d1fa9740afc36051e4896eb78f5d26041da818681e908319598f68296e31079095eaca03001925bb6007b5b83f86d5f576efa610f1165dc0cf878354f2bab33caef933d7ccf26e52d7b178f175a4aeee2cce08abd345a41f950cf3191b32edecbc496e0124d5b0fcdf4953997a9396d9e3d9e29574c4eb65a4a8e62f6ad9fb33bcc0e344dab25c30ff6815412a27045e770b37b0f56e82f2a4cc59ca324a1d13f9d23c5688b065c69504a14765239f38d7a7c46e3340985144d94bfcbf4c4821c619d008318f6823fe3ef2b9549d119d1991f654b6bf037fe259decb8d9339d677293cd494440a2720261ff2fad20180ebd693a34328f42830978cfe7b6cb5b46ae83b27cb89de6ce8ac145d0cc4ec738b0e5c72851fa7021034d1a7725ab9f6e3909e74127528bf26c7cb4d49a64852fa9a47073c6d95d8a3e40c11fcb4373d8a265d94a9da942e5ff21619d7f562061ad52669418548074fa4a1d4db74881fb1f8cc6a3ff36f27b1ab3713551c583abc7fc5bcd9a8792d29a5ea69b4aab92e719dba2944add685373db102784a36e693125e6f81da4acde2aee39e3caab910cff799a493e76cf92f82404c8d340249ffa32abc26673eb26d6785525ec37dd1ddca933e631db54d68b6f3d22c6cc70639ec303d312aa5f97dc8cd52b28af9d17ff36b9e6a9d8f051f1dfdcd9aacfd6cc9c27c2d41e65fa03fdb94cefbc28ac0d0cc2d29b30f8ac8d59f8c6ca894bc0d4ae65d261b6c9b7754caf9113318c789c94b06e47b994e08e7f036d6de82e47c259c5190b74ebca8da547e0565bc06d6951d88ec1ed25285ed78181e8b0bedd58a69208c973a812074034d64e80c7b33f0b225c62cb1e72c90ae5c3131f178a5c7da60eb0ac30cc8a729c4a5446cacfe158682d5d5ff53d924ef5e29f09aa0300e17aeab3f926ea61cba92a3cd2b86d5dfc6ea2b61f03d128f5b906942eb88e5dec8a37cfa47f701f6229b6b8f7b10be836da44f91d7641dfbc1010fe5e59d61bbb05008034e7369f64ee65ebc179083c71d311aef9d5b95619319f779b6d970ecb7a460fced9033c168e83017a7b0f74f0618f4dda7bce4b4e11309f28afb6268953a506a4b60dfa2119c4ba8e0c682271aee9eb5739099a647844dae54b5d11bcfafbd938f192052b6bbb46a08596b955260e5e4c175dcdefa5768d7774cf2bd28c0dc0512fa932d6a76838b30c058cdb580ec1675a779dc98605a29d48006425d24bae5d3b3f7616255ce9bebe86c36565e83602372238062770e4b9ccfa7985c8dbf436bd807cd30f14aee27c83a566bac5885d3c0bea832d47a992f2191baf6303ba0a9f77cc721306bedcafb4aeeab22d360696fb8ad3d45f077e7b5dd2e591a8df81b048db3d63ab5baaf141eff65d994b5d9c3aaa7a7515e98e2fe3396158cc2f52a6b4e444521469232d79978765c384869d6cfb611b5756419e1b09a69c24f6c1c5a2a5c4a3361cd706cd92cfbd39d6e2f98c99695f3b8a86fe6f07e67482fb95b7d1e5273aa46d8a83625d4875e0a5b1284284e508446515775233e118fa2dc3471a5a863c9433b62381dbeda5273db9fdbd022b9c71f28374e0b3f1adbac58b1ecfc44d5a9a372f15e59414931a04423dcabe79839245180681df887e715c21ccc5c880e77ecba527354b51138ac8195f1c57fd54f7c56cc0d429386f8439306f434c1f597bc7704632243d0cc6cfd97d6982b1362625d5670b3255f863d967d2206e261d29a5d24d5cb53a12ef07d5be4397d01f02b406adf2226ae111937148fd0553a4b1e8a2fc8ce0a8030eeb3224ceaa9d4be74222b18a6521bf356704f6bdcf2517d44e084c8751e4eb95426c02a55eb5d5a19575ad218897d03d6dbe1898f187ce4afc048e3be1daf8237cd14f0dea17c6b13fda22912dd78e85af7fb5655913680abee124ec42957065d5a89293686bb6dbbde26c4a0b2f93abcbf4c6f8df1cf057fffeec965262db9812fe94b9343d913480828d27a18f106c52f5d543f62934c933cbaebfd70596dcbe747e99b46ef675f53f745208d85ed4dbf8c391f2ff668dabd2714cb0824630eb93a80c0cd324fc191070aa57f789ba230a19f37fa70e1fe5e45b2a71983d2f66118a0b27959602e272cdc6e27e160625c5553b16a6e5cde5318a5359dd2f696ecf7d3280329a4e44dabb173c43acbe198ba9f041bda409c4f2d65f75184ef53bfe008090a3841f52c9661f6ce38cca16f2b5dde3c161314b87b69d18e6311c9b0af8c212679db8d92ce8c89d39a72775228533523d2b30d46c54b919939b130b4debb0c6746abe4b5dfc2e92dfb966279a4a37570ca1d2b3c3b0fe1ac969698dc58160623e577addfe6df37dc7e5d72ecacf7ae06ee1ffbf04e5ea6f1670b61e7b385a28fe6e9adfab1de2a1ef00c4a0058ed820f0022a2b19c1503fadff9c8ed9b6c5bd8f7059101fb3253e5d3c0bbb0a626d59666e5c2b2ef505beea118efd60d5d76c033a5437eb663ab2f009995033d6528b0e1362a709a71918f608de2084e2ad396b9eab3aa506b48bc862689ade12ca51daae62bf8a0de055480a7b9896f42ca277e4cadf2bfe09b46e7c285d0e1e6ea7aecc2af1a0261b5a7fd2949fd5354cae02c41537f979d907faf7c58ee408fe16b718855ad5b9c870a148925999f130d19d246e5286f7b9dad8c80318010abad5de49b9c798e54e127e74fcd32a3fa9ed2dad374860e53896eb06d728a65d73e83089547f6c394fce75ea61a87dd7b991a72020d9e19512c1fe9b1f35d4e0916e90082d7c049760771155d56c3398f744d7ccbf0c9764cc7fd259cb9155d195e1ade67057fdb6068819f64f0950c397aaeb9aeedfb8559694cf576484d3a3cb01a1cc6d1fe5ab3d4049cdc70dcfcc8ac0828409a11b5cb0f176cbe3d7e316d5ac9ff8497dacf1b636d2f84efc43ea1e9e76d7c772303464d7de032d86b18a74d3b096c9af3a556fa1f19de239e71946033db0af9cbf67099a7085f85af4104cf393d0aa47c24cd2b7376365940b168930b0065c6016ecf50c1c60621d038932ed75a7e86029e56cd229ce040118829b5e5afd9c832db852329f488bef8807226b4e5ef9befffdfe1ec807a2e1206870da85e962806734d688759d60832eb12af7bcd7f58d2d9aafa65d12a66d2184a706d84f548a79322a3f31787d70b76bf003e6a97f83bc967e95e93ce79012b533d33928c46ec5f033cd6df12519d9caa3058bea59f2c4a3c5ad058576dfbc2eccca703cac183cc84c2d410d6dcd9ca7ed7bc3acaf23636c9c5ef11259bc8da8d3641cf8096931d2301473ddb4585eb044850cd302f66735f34fe86d018e5b89f7770e05cdb51575085fab8bed150f39a45517a058b944d87f00a24fa57c3ca249b7913f0b4f4d76d89b19a0fe43a7d66863df12c5e66df6423e1697f8f8112f2ca9d24086135e329adb4e512b12208729492b85ef3caa4912d10533e86024d4b6252f6496f338d905f8168d9586ea1e7f28f30b4438392fa478d108f6fa745e83c81c2a2a7b85e775886e602ba878dc5a854f9216ec70c745a8b42d4ba7b060581db11df2df69f52d699cc0648dee869d645d8da730a814bfa9b8ce99a2f1935b4a26acc43b88d764c44824bb4ac04d9c5cd39db8b0b09d3f5e82177aa16694ecc44783b947872feb6fb8bca4ae8e228a804b8d50061f375b4a0ac2e7041bf65b3020fbb2bb4bfecac3a74cf1d432268b99447b24b36053b6522c7299bde29afa27d920427415f5c9f5cb86278892114ee9b0dbbdb84104adaa94689c412ec674df3aa785f51bd2cd2042441ea9838503dc409befc169ced48b78318a122c668a67fadb22aea4b4e38356fd8edd7171c84af6daab58400a903d5c7c22a19d734f2f2e4f6b5a242f3cc1d83325fa84a74cf96f048b5461f2ba9e567361442b133ab582eb1643a4c2fae4f13f1cd3afd3cba77cabdbf2dd6714f5703ea285f65e60234ebf0e0f647f9d35471852c8541b8a18221b3af2d5387dc2d7ef92dccf675474ab272831e3dadd71d6ff87310c5698d26ec70676dd05c5d5ab9f4db664c2f6c4a90ffc16f75305c83b2fdcc0cfbffbe71b7aee765e11abcf491d2cad02fef1fbd5f094617bad80f7609a403665cf15bed38843a5e0b253ba082543b43165766ae2b945ee8b7218208849c0fbf2734b81b23d9dec2b0e21b68d43d279327afd11e20d510537722d7f1766469a4cd1bba2085294668623b486d2fc79ca7fbb295a890229f9cf18a6aadd5ac0ca7706d72f42f436d951666d5259d02c3729b0501e39f618e987fbcd09ef828582cb555d663a7128c08cb793ff18daa041a865f9fb0b129e13cbe25f2a8305c58ca47587542e92f7483f09f76e3d3d13c726d7e4a6434d96bfd94bc0eb2203980ab82aeca307c21498f92883929e22a63891657449ef61a6706b0a6e6195102c3b3d012753515140a42bb7fdbd97d5d2cd542a0a2193dfb5764ec3d6f3f40468ecfb9f5bc4988ea144febb0b030fda3ba6ca51945d418cd0cad4cc210c77acd4d1d7bce6c2f833c06426e6bc22e36f4ddbf14da36b7d65f9e9ebf6d2c8037f1805a0bd13418d06c1b158edc55af2b023283447f895c24ac7aa5b5019800df9850cdccda5d93646bb6bfd7cc23a127a9bee91ece511d6c7e951ab1e87af967779afbd2c8d91ba28b782b85b87453a7a94b2e856bc57415c20cc74703aeafda6b712b271b0efd5b76bde1e5c20bba7a6a763fff3a5b5a39aed1c777bcbd0a26337976e73d053abcea1f8b194e9165f8447c31df3df6f8f1d05b95af30d74d2bbf6560b5d0cf1f5cb5384d78000dfa0379522999e2575136060a524c9ec44d6ea9d26e9de422c3dced18bafcb85aee387e138534f1306ebc0c0841fdc2ce202970c48fd632302244803add09aa1ccabc4633994ce8090d1f44ab8b82baff752bf301c9bed34bee56bdc58fa96c51be62f2d1b0391b9e93122673d5fd8e525f432e788f84a05cc1d06efa75caf0b22a550aeb771523888937b3546dd159c4a83d3758e62dd6e984f73b41560cdd415f369f1ac29ba3e6f9e0b2eeef4e5da9eac8114e183a4f8c4aad5c3a7f028f60de7767137cedccb39f2ffb13af6c407fd1667701e69d623e7a9da733e83e5cd24a0ce9a6147bf92094ac3b828f37f9dd999e50612187a5919e1b8dd9270eef3254e72fc9ebb0458180493df1f6737ab83e566c4399720f253080ba89fae1c372982e9b1c4fecd85857ad48dabd66fb7a8b17b919a623ff31bc90059b9aca26ecb04a9cf9ead72ac1363cbb86eb83efb37ddd7ffa03bbb22d2e11299756fb5e846cc258d8447a50fc89e9be22a1bd18aba1f4f1b28ba5e565177d26666f96adcf40030d8b2da8ca84658edd1c4747dbc82ce7a228673581530bb54e05b2c993880bad1af67db0549ebfd485c9f0b3296d7950b6e916a3dfccc7560bd86dcb93fcc4fcfaa49287b39bb0f71801ff709a803076c834d0473b60180ad6baeb7b9ff1977b156010b4fe8f9af932c1f5d0b95649c1a7d588ed4504c32014570837bc4d8542e97ef69d5d29a7601855202abd8f0cc0685af0f6cf42ed06f72fe7b87f352298cc9c42d3cd696edf6281f1a7aecda8cba801f38ce2130541bcc3f3fbf86162cf83faf8d41ae8338ceb9b3adb9164086fa00dbfbba63a2dfb64f8fefb91e9c6f73fa993e6031353241b7bd3e5cfabf316a4b76638ad24c966f2691f5a17f6d4100876f78ce654112", 0x1000}, {&(0x7f00000051c0)="43254cde8b0c78d615fd8fcd8e5b9ba25e154a674732b3b654f4e8e624060d9887dc918b40ebee4a5410c42f56daa15736d14e7d07c227712323262eeedd9d1d5fc1df34ff3758a2942d4757c2fe18dccf032b4e54b623f4a03dfb497cb6f348c4530382eced3fb8df7ae7386c64a88dec322188cd8dc6a712cd44ef5860f03a555e19715969", 0x86}, {&(0x7f0000005280)="619a7c7039a8757bf9b9bf673d3d538bdba5e62d81aa68c3838509b99aab329b502480706034ab05e89e8ca8271bc7decad86bf40c44c0bedd991ffb320b582ae75b903b16602aa1a1df65b38399bbe054d36735bfd6b7c79a3d030233ac92b931b33941dae166da76867ca8e22f4a43e80f4c20241afc00ac4930e9d39ae9af6ce92e426cf10328b1f151885bab2648c211f2", 0x93}, {&(0x7f0000005340)="54e0594c283f46d3ee7277c6c9f9be7b7c4e70235eb0cd6f35ef63d862ca3904bd28c08b6dcc23eae1d079759d00554396873bb5df64d8e9322f3c73a04594c28c5a8b85fac9763c974db56db79e5d1220e2fdd4bd549b541bbd2865e581c904b3c0830ab6943b1e31e40e99b94f16e7ccf3952b694103b33796cd1da9edf058a07f24fdc02cea8a42c742dc269398306121c29cfdba0f9cb782844ad4139c8092b69a4d3aa7257fa99c2e160b6d3a7cc83b83b5ed4d9222752efc82d191c06863d57a92ab6b3832a927", 0xca}, {&(0x7f0000005440)="d7a7bd523ebaec668fccf7dace90c7a03069fafce0c65013362801671964196468ec635abb86c376292982282b5eef22fdfb1f9fbd3ff2774b8836a6e1ab64f0a9e8d6b90efef6bb9b39df124ea3acf90bb07bbad9482f54c8fb43d3bfc1b06fd2f0caf95ea72dcd6e549263b036bb87d558db86bcd41a41ecddaefe30be0a02fce13620a2a5f2cc2d7c2d918c369c92bdabf69afc748814a842e5a92c8257bcc02220", 0xa3}], 0xa, 0x0, 0x0, 0x810}}, {{&(0x7f00000055c0)=@abs={0x0, 0x0, 0x4e22}, 0x6e, &(0x7f00000057c0)=[{&(0x7f0000005640)="06cd27a3aa72517650df2b7fc28c59dd87e1f4b5254589eafac87b316abcb738bc2a6cc4d8231ac76ecc9276e01d6f6b5d74d22655f40e565cadb5d6c979f20a3a36e35c8f39fae8a88cbe84cdbab024811080d5c3c3a6013aff932bf3103701651400e47f53f93a51f0e031f1cf0d70acad223755a6bea93581ad0f86ee2b395e26c1409ca4a5fae54416fab41399b0809f9e544b02f8ef48cb994301ddedd4ec1756315fc5d736", 0xa8}, {&(0x7f0000005700)="bccf0ed093edeccaa6a8d817a0093e41cf9964fdf3c75b0338ad26a39c9703f6c041b1a249c736177aefcd3113006ba00853ff95503928440a1fd238e21878d50d05e421f5c4df49fa107bcd34639d7dbbc9a73ddddb84bb8143b22e0389ccd584d87f69736a9328b229a53cc8b3e72de1ec7a2ab6efa7c4f18ae39a253f1685a3964f3e803c6f", 0x87}], 0x2, &(0x7f00000059c0)=[@rights={{0x20, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, r4, r6]}}, @cred={{0x1c, 0x1, 0x2, {r5}}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0x0, 0xffffffffffffffff}}}, @cred={{0x1c, 0x1, 0x2, {r5}}}], 0x80, 0xc885}}, {{&(0x7f0000005a40)=@file={0x1, './bus\x00'}, 0x6e, &(0x7f0000007e40)=[{&(0x7f0000005ac0)="aaab01a2cb7a013e3f07d6b208c3874f32e634d405c2b50de8b0467d1477ea617d62fac07beaaa1880a9974ac11eb532866152c84e53d16490f44313e38d898a499c0b16a9ee4e4101ab855fc7bbdc2443c91891a09a78ed09fa8623c9b5a610fdb69b1615125b68fedf442934e7ab944943fb23380e4e9a97cff096", 0x7c}, {&(0x7f0000005b40)="0b4115598ef529e1e24436b2867011614832cbc7f4a1585615b1929250f726856af66f3fe1f84d76a8717653858dc2b5bf2875faa34279723316a848c296c928bbc2df1e9f2424362e3b83eb08892b317c1d9fc272b242a4292da17b4378ff8c9cc8fcc72e5078f81758f766fd44b4b910bc18dbfab3903c65bdf88a685621c1cfd39eeeeb19cd1d3ae530741e8977efcffb72d9fdf0dcdbefe7b036ea326d3c879f17", 0xa3}, {&(0x7f0000005c00)="adbfdf3a39dae5809e8491cae8491038d1d97b8a6581ecf5440afbbc37cfff6c95cc8847b7b07758b228d5e1c1117eb65423a98148676e4044a0a541a40c382a166fc8d302695cb84977dff8e101564eb9cde462ab037a4348d6d0c68df7a97db6eeb7692bcc9960562e313513f2e52265f60df3988590ef3a8e66a9d985f4b495d71985b3e9554916dcfd191dc78420215b9be08a9c0c557808a978a2619cb78dbe363a45d8b302424815e9b18b8f921c6c5f5c25f314de86cf165de0d082b54dc799f376b0115c042a8632394f328bf6bd337a4e7606509dc845f7738db67626e1e185ae51f63777000e9c49dc180f6a3d6b7aa6bada92d4013c5f3b8924930bc88775db63c43c7bde0f143c2e6edc273607cd07dd3d2fca1cfbc8785d522120870519632eebefc59b9945a3b373310eaa677f500c28de572ed281e364ddf8b79363b158fa6f32c894d28c757811fbe023587919807ed4a2abf542f3a17d41f8d14d8df9f5c499f97a5c31185645fd4e1a7eabad3faf26e9e178ce41299cd370a6f7b878f84d4ccc5fd230c16a258f2d83e0130cd7b30bf026dab4b434dc967c8a5a7a24b3d0f4010d51ed74c69aaa062855052bdcb758a64d892b423f81b974ffb0960fac63263fcf01e124d572da0b63792c86c6a738e26f20f5711b477f019f2fa9cdd303c9065cf1baf116cf30e959f789ce71e8bf6033c2eebae9003d459978ee65af4405c4501edb22ae3c673834f529f01fdcc3c818a70bdc6a7ee7d53f8fff340521f1e9dbd913a47211e25e8545fea3cc840db0956f38338ecd404e488f97f46e969fcd262a445ae155b9d3a77a13e7432ddd6f4f34e9227087bfbbbf5e9154ff001c583375de8b03da4e1a735cb30ee5eb09a3f537940118c2dbc9d762365b2497614fbfc239e0bfdff0f71a283f20e73891ec72a1763dfa943cfef556e37c688ffd83cf1fbbb50b83966461ec057e9ff719cbd1d3dfe41e435098bd9280d2c43c0e87d7839c1d2761e6af81f2491b9f9b9eb4a678da67198a08b224e82c15db10be15e0883ebcf53b69db9c7fb946da297cd1afd5941c8ece5dee1f943d6281742a07761c73794a7c1da9a5f59ee2798dcbd5daadffaca563892ed2286cda027ce0ee4e4ae05b0ef574a408b9dd753b56beb92ed24da15be937c43f0bf44f9903fc0dbf31b8154c9e387eb9c23652ce016aa1098666ce7f7460815b1c5577ab7fa8bb7e647017914daef6c28d656f912ecb3953fced3bde24fad6208dc0e1fad5b0a53d3adb477449d0863057b3428403ef902140a69ebdb796835bcb803a8f1a0026befe17ef4ff67560576f7063fb3c32a87812125d324c7c68b1eee6fb4338f0932803ec352a1b916b176840bf81eb26f0ffa5c4c5bafbd28da73a6a4169eb68fe87d73a458da9b78c9237f404c9e700e5ef943d72998cb8f43517a36c16ce2b89239c4a5ab738d4854325bf191ada1a7891a15fb3fb03f01c5a3b044a459fcd9ad6bcd2d51f806feda8feae33823a5e500e44bbfba28ef713d3b287b179045c1babe9c463708bd291bcc9d9653859642fd0adeca11689e3d1f6a827e696d4c5bbc0e5a9140ae6ad9577840c75536f48c1638a41db967822ee85c1c16b908217a61367a15f4dc1837f1c1e318c6608864614756e6915b5981916c84b22d824d116ba669b87f3768a3dfd6fb3c3676c89505aa82188760eb134bee9c36f641894651d569e15378166f0c465fdcce64cdce5cbbc0404f706e469ce4dc46457e33be5b2398583a5abf3ecb5e75a5279fad7da9ffe1535dac9a8ade276b45d93c66ad004ab4a48f52ff019e03a9543642f99fd5c0281689d08d19217c4f784562962f1fb2ebf8615e2b3720fa357a4e6e4547412b123ec5f283294d6d4148a4340503fd94c00b0370c6993938df861dbf5d60bf03f055231cd79f125f92c5bda6361da4c4427361e333388c7948aa17461a9a069c0924e7894157fbde45e0ff1345d970b44e550d00b1d2ba76236fcc14f3c46796008fc488485c38b106eca8f62164577cd8bba074d3351db4c1a192343c6db9d21341bfc53f8e55a53e65f43102808b5cac0b2d5250474c12458559e2f51e8620a927c3a3257877d8446f8a197f21920a604794ec78c14c0818f486847745c2659d8423a3b2f4eb73621ea6c7a2196d8b7ed642b4f29ff1d52daaf99c66ee3e216087c947197a208c735d87c54c3c2004938ac832f73e8fb578479707c196297c0f47982e76f5aac7ae5c08f4ee2db4c4df6b09517b4c5cbcad9dd7244253fd316bf9a3def009eab37f90e30067ffaa83a99bc8b0653bd17e5134736f4dbf27babf7223a0e508dc4cbdfd04041fc7f5d3b95b1cee781bd7d6c17e14a50846cdbc73f88dec71ff1dd2e13b0011d6ae72f3ec479871b16418d6476a724f492e6f3646fa144eb1e29fa0332b1ede9fe86c046353f01a9e8706a67c93ace8cd28b92f6a5562bf7138a35838fe8d8b5d5654f0369df3ebeb273a5ae10ac0028dd068f8f10192ee7e0a2dc0ba3686d395e2fc3c1e0cbb9c5792dbd6bfa8957f6ca7b3efa3f6473dd84e8e8e1c23ec72e2b8b3a802c40fdfb615b0706931c25583a8e7e054d2fb267984235bfbcdc5cab62cc9c1c44992575d3254207cc5ebb672882d96182d07a3ec5973b80286da3dc1429ea1d5eb4ca2d09e1d9407a5d3eca03dcfd29a237c45d996b810e6a697098e5d7213a320c04ee805f311b70c6b495b60f318128f5da017b579292f75b219a8f5db9dc787794485bb27ed590eea6d7295b273491f647010c3b3bb9c0500a85cede2a1a9b8dd47774e5be84a4a713968a67475394add31728a654c976ba6f2b23ddcf774776614823baec6c7f513815fc4fc65800b264c3813d841479a00f176d55d31a4918676139bceff725c7ab3315fb50f7dcdd1fb1abd381a4ca3e9a7ffe7f46fead14897751450c4036606e19178e96cdfd67725582dee04efe34b317725b35827e9cf63e7c58c4c5082523d1088825745f7fd454c48b5b63f239d9dcfe0139c7c5ae20a43de2e91630c23312c0f740f39af32661d011a80f19f7b2018c032535d52566384694c30688dae58afb7c9815b4b4f474482cd916dcff149671025c2732be0d8ec647226b6f699f47d962747876b56795e606e978e3c1f525d1d195c1f11cfc9abe24214e01f644e6784a89223dd59b240438b19e54e5e80f16e7a2dc04639555d4a6126baac00af497fea40f00253e813900e9001c806ea3fd2b8d8ad188cd7a050ea2fbbb9d94a1fd61b942bb8d03858b33c022a913b1a9b9d6428537de860821153a4adf98ca6c0b9176eb55d80c9d0187c89c290f16447f6692ffad3b2525c9288df0fbff5d901e01ea459cac84d7e15964682e755f8100cb4a064018444e8182f656ed492fa3583cfc782b388ba48c25c4ac55f7f05e9efa776d3398ee88bdd8173b2b3e4fed900b097364878dff7b7b5380e2e48648569799dcaed92ac8998a34a57598673d194a63def8acfcd32502c74ad81345b471c380d22d40e37076c04764d5228cf802cefa38f8b67a95063f328bb7728f2abe9984bb2f42c31b8435542164087b9f1e4768cbd2de6411ac673909c7cb5a995250da1c87956d9933b7d57aefc25898fe245f1e801989dab640c8624cc522637f287b54cf9004776b4ab865c9bcaa3b100029d7330af6afaf76deb0044ec4ed4adb09bd62b7212f57eef448ed6224129345bf92b211ffa6624e3d06910a16cae5f21c345d030dbd93d0508a2fd9a8747d51c327e45fcaef210226c19487c92e239e3ba98cb5b0ddea9966fa0cc31107ed34c775d4a6ed71679d261670de56c148c58e87105bc609573f415ba505b68fd07c0cf85b832eef54f5ee26de4e74653f5212298d18503ab50f18f70c0b2605abb1b61bc554a2b3821fd0615b882419fc2804d05e5fefc02ac945ba669dfc8ba756ae397023b60c485d4c3121799feca17b6f9a89e06d2b58cfd2a973661233fcc6c951d2ee2a54a01d30b93be4e8296994e5513b7db347fed88ec95891ac9aad094ab92a6bb509b01ce80c4ab2ccc022b3dd2e3ac95fca56c2e188700e425bebefeb09e3a0385b2f41ee10c85c05213d20d0911b808c04b50449f9a425ab142b9f34d7c1608999f053f2f99de083624ac0d7fa066b68ec055c4c06595ef4d4bf998a91829952b264b23590092307916e7f3474b0f9cbb79af48e2215cd6f74c3330a2a349432a762bca76fd10587b75a1a834c10a0d1af714a4bdb700ef2cca23bca3e6119bddd6079bb6deffd6ac400231eeab3b4dc5f8c995afba0ab75b424059b6858eb5e6a3c7d49279fede5532240335d139beb50977c03c2c989b7b836055a684786b3922d2019abbdb81a83f77c99f692b55fa115e88206dbc7dceaf864cdde07b513ba873164453be8bb6a3431c479fbee86393f053e4d15c551eb088a7fb00d9fdb0c328fcca854cba894acc60b729e513a6c1304bbded321f404459d3e50aaa45a43457d6796bfc6882b3ca7f40467c6d8f4e3a8b9bcb6481b936373970b05fc1a1762e30c51541d4b3eb0c957ec48a4c8aaa058fb23f22e359bd72e12e686b0a02e05d8fb1f2c2b985566df67682d4252c678b346d649797905081e4268acdb90f2b2980bdf63393d156bdee557f312f6a776c674c831010557f9c898f390a12643fdb3afcbdaf66dbe7ab28dacc31ff5b6a97dd9ef2d567cb5d02f388fe0418a404685a3e1103deff60a492ee78097c069a2461826b7e3bec535ad975f4a3469e1c0e549de8effe0d812fc352b3ef7753d83cceccae2387362c1e26b359cb2face968b3660c6b4b2f366782509907aca34db04393f0f67fea45b7618de61c9a6db8a43bdf6c2bb4a5d992bee79ce5eeb591bd346c0276b61353486611e6f1dcf8911cbb5036e82083e4741a2d2d464c771d9436c7d5f9779362d9bd23a8d81fff8eb8f69c47ff84f73bba7bf2d6712b455334fd19f45d840c4f49bb729c9b7db421a6aace4b7ccdcc4c5df1848d314c7954fff9e653d570dfdaff56f68f145c45b5aab567eeb389273d72d3d49ed5c58c0378bd5c5984a6b30f185dcc141f5c6587350edabf4b50dd7d0547b492fb2f1fc8a916113f0030a9232d58790003e7520e35eb4082421a8bfe854984b132694f57a1ae1e98a04b405deae658d179c61b1bacdf48bb7c78b96a3f4407ed18803914b994dffe97e6de9f8c0e06c8f440df854f5b0f6f72aebf521f46caa93c06abbc30d4999be9fa643c2660af62fe118728a7f1982a8e3d69567f9005d0cf6560f8e4f18cbc9bf6e11c8c6f1af71af71f901a5ecc048082b26fd390e718bc7ee12fda66d3de574fc9510faf86ad2c156f9d29ae69066cd037c6ce9a01fefa1abbeebd326632cd3603f385dea1e44ee2c29785b50f2838995bec606e1b80cbaf065b455ce49ac21d36aa2ea14c3f98d8a5e9833ab01f0319fd21058ed0a0393bc3e0bba2737256ebb15f512bc2824bfa5a3949671c54c2e187570172d7aa3f7e5ebe75726e5092979a187814829ec396a92a82ae5bce0f7c22eb76b5a28ac0c530b2f94bd22e2347d5cc5db8421c05cc84917ef7b5e3dd874783227a8600450adaf3e6d1b67d9b6ef21a3b953b7dffca12aa10decd7989f77b940f79248eda41e9c3f764afcba1b469778d32f9d1007c5ec9ac4b0df807bb3d589eecf82293be44cfd3ae4fc2847ac869c15176f3a31a37855bb9d30f830d296c1ff74c6c8be1a71cd195a0dfbc7033703cd07103cbf2abc8a", 0x1000}, {&(0x7f0000006c00)}, {&(0x7f0000006c40)="a880da2fbe830b5f056de5d9b089fdbfc35a99416f390bb2dbf41e194e41fc948f1161177bd6aee2bdae6ad2f0da30f5946ec781b6c1dfd6d6a9b89edf04013280f40e5a8f3cec54f4a332fcaf1c5a2bc76be0801ec067533f973dd6121e9c9d51cfc4ca358545faa11e7def7e064c28b4b3942c9b1e7364c65c1d3fb2d8ef0b4eb04125b3d3b15853db79036c62486aa74eb9b8a89f7970900ef2753f898175d8753b0466de74f21c4582f776dc4da45567a584a9e54f56d96a340201c445b2e98cb951002513991086e8c4995eed64ac95695a5fc636333941ae30dc26133dcd7b09bfab2fa4ed66869e545ccf9f7394fdcbf5a3a8e131a4f1e69b02f1d15d6b30032a140692ceb90ca36ca1555447da6f7289a16ef40461aa5aa622b8b523bdfc680acd36271db082625bfec23e92a58a0acbe93d2ca8b55894fa38bdddad617d0ee671586d9dc1a9d01bcbb264406adede2c9f7d6815cd4ff4257f38b219f2ce4d988cd8b0cd089466868333f2063f3be488c4c210a493d4c97fe0afa61e380ca19f302edab26f8183546420930401606c694a727854edea4d3e4f9a7abedbbe7b345ba0846457e834d87f690323fd59be64f1a048069a462b3fd76e9e7b5cc1c2ce31b5385a866e2857e43641a177c510da115cee5db10001470272d26597d33dca5eaf74e672a65d150a931634e086cec09fa7d1cf8e747276edfc4658b48c8f13e348c67e701b3be3551e3769d63e60a03b1ccb7e697dbc82ec1d0829d1c83ef4b2dd5340029b8f56ce69653cc0d214d844ffdaa0726b2092542e94d453a4fed194a7589e76ceb2a2f500c115b02f851f2231832a276380650101c30dc1440d9dafaadd6e82b329a4af7cf875738b0fbcd2978b8cc127aeb4c780c88218a153605e72a5ce53fda7b95911a53b8cff8e58601005b15b281f6359665214f90fbbfca636c76cf81fe6fc5baac64229bb3e9af5c3f4c4fb95bf46f61b0654f3c124f3ea379bea241836aa452396522ff0ee5eeda41affb6a4adda2fd3419052b9eac4adc3b542382a036da94add7ab4518ce669d81f05f4651c9d9f8c09eeaa1c8b359f139aed14116be9523aa09cc0591038f9329f9fe8a51d3ca79bd121f68f9060c64eb5dc05524256e1da82b4bf3a239ebbe9118c82b0cc6b7ce2a732b7c992bf08e9ec402611c07c61f3a229d11e9aa27975d8fd8f5d6ab593c75e2c46b35a9a25b5ff3c36cad021ba56489e7c33ceae0ca3af3e19dc594b5d65a0b572dc95ddf3fab53b0e2382ac7706126d0c236c3c9d8b1b5b26e7f8e07737be06b99be6ffb0ceadc65a2c43eb15bda6bdf2d73b5b7a0f4b95bcec4566340ec3b8117654cb73a690fc58621c427ae822468fd749e8b6fadc2fbfee981659ec42cf5fd1901e8dc8578a803af912fac2d842f1bf2235372618a22c856953082409b8382f86e887ee3c77ed293d9b06a2b0064868807cd6e71a343440504357f1b6fd5d832842ee318c250d11fc0273e93d48e60669a2bcb4ac66dd069a44c8b3401988fd05814d2fd08332e0c6d6ff931787b9868a3166d9b87bb59987ae78a84c56b561327eeb40f34918ca40bfd4ca30346ba65395b6f13469b9f34dbc3ec27f1966ba27818c5fe4b1daa83328b5c2a2618886b4dadccd9a27a72fb6d7db0cda65110bf501e4f529912ad989ede0384c6f353eba093133f8d52adb9245ecd9ca68020075eb05577dce48e691f5e32d83374421332762fe3252240716e3c3426a3be7e237a85b5bc92f2d66a7f128fe27cfcfee29f12e9279b2b2a09d52784dd6d152adbbc96bfe9210c11382c4fdce67327477c97bac7bb2380cad7033b70df6a3c76c5c6bb471d23e4d6aea9667ed44e6ee4be215e7093143c9bbeb2cd6b4798f02d1cb176571f7e591e074448fa52ef46a14e46f596d34c5e84e7d65630881c1a444bb2a4501c7cd8c2082d9e919450db0c69a2bb08ae0dcef3607e75ba5ec26c4fb061ae36cce39bbfc492e97c0773f548958e36a9deb6762a614b00a5cf5592b1a45bcc3c80ec13868ac17cb7e35ac84acad6e76bdf2b9ee948e1db53e65932290d9e0be306f2fa0fafd4c9b3577469bd0af818fb59696aba231ee5a83e2f613dafe2621173a4176a6b48ee9d5af775f541fd43377b7ef1625461f29e605e06ab5edd9bfdc59d4dff68cb20f1f0bc9a98e0836d8b7944ffc0779b7d2c18778a9c9433c223d780b9b28f0eb1cda54867a1155126590a1912ce5814482a9bda3b77e6a6fde3e93b27dc2cee6eeaef76a4e2406023d7d13246bfa337c68985e6623f0fd6b5d96e422ef25e98407130eca2a25c191115f36fb0edc64d9cb9f16a391d808885d3db0eeedec387ad098eed22d2e9dc3cf90d3ab3f564012e2d7daff3c590ba6123b201e47287d134321e4afdfb54cac967c43c35ac01624bf17d4ea0db72a99ae6a070b832e5463e7e673d039762590d2f39a2922eeb73c0f1b4fdd01c3513be17366703fdecae6b1fce46a7dc8b4daf3bb3fe2712c7d8f9ac43bc182545504ca5d08e1c8a013275776553b1f25bf1e0db7b284af713b788bda880dc91f790e8d5585dc358dfc5ce456f9cc99ddf0a53b548f9c12b10cb32d87153c69b1b9b06e2fc0cef8d4d7a943a9788c91e06f990257f146521a144734c58049170aed7201d08dd538edbf314bcfcbd2deed6ca9e710cff1cf5f59a192feb6d63686907603e49e8365f872ccc70f8505ef73eef0928e807aa9d9180e2f4a28f0a4f9450235c675648cb49ad0b810cb451420c965134701086cc48ee01bc5e388f49bdf91ad5d4acfe4dc9aff3e042585b1a7e3db248f46f6418b16af08d40d38cc409009fca12c56266c1d4efd865aa3675aa7bcd8cddac816538ed443a7561084c28478a2017c784a1d44480dd070c06e30c3ccc2bd16f77557bdc866bd0978cbf8057e4f7de6527eadbed7ae032123de78a108c323ec307e677c56e0c64d0da6980311bd75960643c640f688ddfe75918886ed27251ed6f43ff3008f4889e3427fba2e765c2bd03cdecd24673f8f29d81f40c629951f8addb1a492f3d348759c212a8ee7601c6a19bf4b757be68430e78b98f607a475cb69e73cf47684b33d8359e3cc2e2641fd3d78bf07bc27b47715aafb828049ebe05fbf3002681677ef36128c27fcf769f02e564895f32a8f0dadb62cf1f1e35858ac48b6659f55a8b65eba304018d47d34e27905e748f6a63a6669046099d04c6cac677f0025d78696fd7200b9f8f8eb22f19367d2f6275736c5d16f1bf5e6c5d73861410360e2bb7d7798c97237c9c89a26c9baa5aeda8e43eff088d871eaa7094035e9cdf2fde123e72fb4827c29932b0f494e2e53c531cad55b72f7cdfd580732c156dbbac49f80c9e78d504a3006e77707664b76e583a808019ec8e628e0db42785758ffef4d5848512dce1baf725518d90e88e8ed9fe2528cc765e376fd2e1c267278fc9123ede1a13c0625c7736d9f4090809eee11441df3f3e524206c931852bff4cd3d71cb81031cfc520e1f23cd1ff17cd233e956dda2bc7337cce8395087f7db93aa00c5933d2c30d58f67be511f147d74255a972a4caac2cf994e270dfb88353170e74a33ac6c39260e35d82046373711f11c9bb6c6d81400f90157e67f748397d9af4bd1a5631d7840b6a9b3d260800886676c245a73ed017ec009253d79c379bb125a8380f985799d40cd765e84e6544ca0487d8eec8c4f57f2aa7f9e1d91d5aad5b68d5ad415f94975a225760a64ab2b840db18cb34f0d61277c3f34cfcd09805e4fa10e7fee45cd7a5e88004f065c21132bd1e95af1f207e0f1bc9430ef4f35fa457a569d85db7a7d41f55d1cfb56fb06b476688e632c439e67ac934120c827d253c4d821694250f0a972e57726345c6649ebc2c946927298fcd572b1e44f1ba985780730a3d4533602f89bfd73c118dae8512c3333d54b5bd0a58e148a022762def00d19d8e810978c9fcd02445ce5e7fcf52f2eed8312ee949850499f4e88e152ad42edd40b6aea30ae2f1568ad26e75c01fe975401d19863f26a3800d5b03dc526549b8cc27eb2a3822b24c1ba20f679c388e09255c509ec34f55eaabedbe29dbb7e48e4853a79e43ee67014b82ce09b87fc75c9fbbe21ae03677a6b4666a9fca67bfeea19d5fb4e46f9da7ea797c34d3f29e6f0d8edd6bb9471ce41033d44fa5b856cd71b8633ef3a0ac384b58000cfa0ec4d6a823382af024c38d7bff57ccf9b03b8d994332b156f13deb8054cd0da5463a00891222c3321ca3e761581b5af9b1990e5f505c7b1d6e4fa99d1eefdfb11406c141ad18253296b14f904e505bc898d3359fb48b9fb10360eb279136c7fd1e4f33ef855a4afde5ec2cf82cdb169ff122c81fba335bcb489cd1bd337dfbef569b625a0f4a33bb7a60ba912adec7b9a2e2e6de4688fea8206e7ac2530476712d0176b2611a5c09e0a615531a16a2a2530c207a18a9e29336c2c6f9bda769964949249de87926063b26908ed6778b241ea19ed09b267d58164e783f1aed2cd561a68ff68dadf218bbfbd543abaf147cd39af5f8e18bb4d191958228da486c2894712bb2e0d30b28e589b992e8b368d29740246b4f8d6a7260cb0e30344032d5c4f53c63abcaf6a4a3fe0e738649b71e8d451e6d50c81b43370d09a9828ad8699f50a83edd6f6834506d349cfcc347852afc5488e971378b045676af50a997b2418f1609d99b0668e5256d6d94c663157f34d368ee9fe16955585f62ce8179c2bc858bff4949f0a2e656e1c377dbd58c5260d8b79d7f79cd6b419cdc1ed953ea7ce6203b8403835789691e9d4870e38752ca9ff7bbd9d448ea14fbd3b189d605a541d45198f1f367a7c0b7af87c2d24dc52689eb3c8b74190781a172fd4c47ab1d93f1abea215593fb965bd342e74f822f2a72b7e1b7e614daf8077743033b5cfadcc05249705f04277c316fe70424241d22b97f6a8f26e98ff6c54c60f26bd899e3efd05d5a7da0ea178f649ac40a9a85b396d9b360af56425bd877efcb1db9bcfc52ad3acc7162601b1d3d8dd23080c06cd250920c6318e098a89cacf9bd4649f19487b104715c4e91d276071da347fddf18593c8af20796d0a5c23aa27bb94f8fbdf58ba1d1fe0d3cc9b77e198b2b6bcad4ec4bb4575ef29ff400b3479cf98313a275dfb2b2008ebae1db2c6a91fcbdb275d4c723b496b86480bfd4107e01d696ba255206d7ba35071d18bec819d7286d619e84e4bd4c04798dfb2d73a228e9377099357036fe79b212dc51b4f5fa8df4623834e8c976026668aee7c9687c93a5dcd3c23db1c6cae05b118df5b58e591b46d90c3c1385c6fe65ff1750aa6d6d41b0a1e8908552102075abb3ec168a8a38c48b06cab283ff62569a51c7a97c3115ba2477a5895b42179f74170447e154a2e53428ff9e02f7f243f775fa0ad4f1ec2fb333ad2548929a2b914005cc44967e6ce4152b86e2274cc216b639f3783d2a32c414232f95f5a5443c0bf1b0f90e6ded0ebda6f508fb06e64c4246832a8c03f9b24bb3f8b7cc272ce0c3faccb7e5e7ac9be7074db666f55a3284b42ce37bd3bc4f7fdd8c99bc25d225764725fd36a9ff98c533602d128469dbaa289ad65cb45caad88597a392f64cf5c703000499b1ef0e08af4da230168e31a5b59f72e0ae3ff63bb83042ef2103a12fcb50bb37339d98ad9686abebc6b40cab63fb5ac03d7cdfdb0fa3bb468eadfdc1e99e6f83f73cfd2d6ca99ce3c1a362f80b87241e7be4bebc5c6eae1a4b3599819159d", 0x1000}, {&(0x7f0000007c40)="d9bec5dca5453598ed287525132ce24f53ea487f3c58f39522afb9a2e1807bb6b8a425a96b53f67d68c83abee6638864eba3e82cc60f9a6b16cdac0d", 0x3c}, {&(0x7f0000007c80)="3f3f634c38971e1ce2d33f719bb6de5510b27cb3f0965241844742e82c743875e549bbeaeccd94074b3d9ea813116a98a7f5da058538c58497b615037fc1ac2942ce8da61d5136a61e81cc7e200758ce4af7b4a97217d69ec4be7f53543f6913190a85f2fe48a3386f6f04d53fc93284c27bec0babfcc5d21f1aa9c47a25d2556830719e05ef8b77fd0e7c1addd2751e158ff9f7550cba308ef72d4c53b23b831cc01c4984ba834c479db71741277a70480627d645b234f069df527fe0", 0xbd}, {&(0x7f0000007d40)="0b4299785d2711482fa1d52ea0ded7e73879fd9ae249534ae7b1cc83cd0ba5e150df16ab80dbac3f528797b96078b69b85d542ad7bca6e5b5039a68aa2668af0d115584f116bbc340410324844d159ee6086babbe2edb89714234483f0b1000da85241769420167680fba6e2957c93fa7119838e3f76f736c05f3dfb6d5d785166e9479273a8ac91", 0x88}, {&(0x7f0000007e00)="b43a039350568411c0a07cab8be9df40e88eb0ed369f35d124", 0x19}], 0x9, &(0x7f0000007f00)=[@rights={{0x24, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, r1, 0xffffffffffffffff, 0xffffffffffffffff]}}], 0x28, 0x20008006}}, {{0x0, 0x0, &(0x7f0000008140)=[{&(0x7f0000007f40)="3aa17a5fe6441fcf9e9fc69e01af490ba7f914874516a4fb058226cbacfe577bd83273448af2ed3967cb6759ee1d6b8524579884ebad2a6d5555d3ec0b8587cb1cb851fa795a835a2540cb5ca1eb67ec19cdebca186b3f7f3daddba8e36a37bfc61b6f4176329cf01a45cdd234e344929d7c900fdd23ab8b313831f271e1fd57eb00baf1df987777cce5190a3339c77ab882435fe4307420d55c08ddc83f2649a2382efb915e7ab34806a87a833937a5717c30887a6b65257abb7dd796de20377ad09707cd26513787c2a368423d04287d2cc0fa05ef42", 0xd7}, {&(0x7f0000008040)="dbcbd7980a5f7344e64ffde9502b8ca96ba102bd1b746a761b8c112888774124e30f642e01cebd639963bcf7479bb7fefa0c55f8b1d67c82bbff8627dfd976ec523d9e5e0336ee35d9320376f6e1b43835550b40ca68477cc6e8276ba447090b48d1b2ab6fd76e21eeb672ca59cb74faec4e7ecc436aedc6de74967887e26ab61c58c0718c386d8722af9f56a8320fbe96926ec19ec9590aacf8c831d6b198a49694f8852f9f01a83cfe7907f040e206a5bc981cbe050033fae6c0cc24ace2a26f09a38616e85c977512037d62f3cd5b5eaa8cac5a7d1137ee0372f00478feee6957c4", 0xe3}], 0x2, &(0x7f0000008180)=[@rights={{0x2c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, r1, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, r4]}}], 0x30}}, {{&(0x7f00000081c0)=@file={0x0, './file0\x00'}, 0x6e, &(0x7f0000009680)=[{&(0x7f0000008240)="5230472629645c2a83bf49daf9a2eb4d24fa6591f37d205f3f4684d8674379ccfec41ddc2fa43dc3d73a825174420c9894e70ff98df704a9a9c2335db8efad9b7d2fa7fe8c4295351456", 0x4a}, {&(0x7f00000082c0)="42c7b67244b28701a620f51508503c7517ab924034c8c0f2ce3504b30149e3680afd56c9799e8e77ef6301ffd5b0814cb16175c6dd37daf792b8de6a1e0e8c099a520327447f3ac1ed356cdaf078652d51fc14f4952f", 0x56}, {&(0x7f0000008340)="5126fc44c251566681ab77cfbd7349b1e3ca11eec60598bc007e2312ba4fb71b0a6b9ea333160d86697d3063000fbebb7c44", 0x32}, {&(0x7f0000008380)="d7fbe62dbb02af7aa987a94556eb049ec8e1763932411784e96ab24dc8ac374a5cc0e889eb9dec56c1252c66820b129c3320080fa94b353c8eb18b60c38a7969aeab8dc46d17eb539fd3fb77fc46abdecb3fcd3119b8694ae44b7a25b4d7832f28146936ea1e3936ce018fee8e21cc4c0b5bdfedd93dd0b6070f3c32ef57e8f06a24144d9e3ddbf4061a73e81ad5df1f8b822372d33cb3ee5ffd3c5bef35474ab7c7abcb475a9d2d8c521ddbb4a8e2ada1f738dff6d6ccb44bc8d6b5acbb16ba5127052570b187209d14fbb4e7ae51c645c8ae00942af52f6028f8ed5e70050f5e968b2296398e4294259bc3af8ff0b11c8c8e7c293386004abb35e85fdd36fd72f5f7cb89441a93f5cf726f68a4396d708573435292acc570be3f81e94a69d1ac4b36fbedf93857c628a6742413bb5a6d26d5d2eeb965654ee66dba11e8ee67421bd63fc9d7b3d5b2910fcabc89d8513c6a22d4b023e45ca1aee29a8afa78399f7f40e069efa86a6795ce997ffb425f7a17160da766fa6cfa4e6055bffb5307bc74742a3f0984f6e06b6c66b6afa0c3e90c10627199a26de7843bd328615ab886cefbf0709759901e033a00322ab798bffad3435f2e6a96bb8457c68476db3f6691a5d35d257dca408d5e0cc90230081193efbc97b4640e224334f1caf0fe8d3b5d734040c9f3b6222f5efca15fb9e9776993e2eb10d81cba83889cc3844072fecdee0442066b60f7dc7314527debc3070d48faf3cdc35554e304de49591c9f9bc2828738e8c111c2a30f667d2d0dba2713cce173bdb6aca0780b718612d9c0f2292754f50073b41d69f1d858b41c0575c884546f2dd8c2936d0e54a59339af4d2297ded65f9d8de34af338868f99401a16b97321817491d41ae39645b6459f2062a101ab94bdbb9226b5e261d2988728c4831d76754612a76bcc2ff030184f6e77d17d7a5cec4140e3fc3719d33f26f754ff14a8dae23edb9828efd7b65adfac2930bd62996438984a72e5e851c2e79b457e7e102ddc84da7dc04e63b1f39b2d25e08ef973a96a29962c4ec7a90f89105ecf477cf4b852b35f8a4d31e8a971b02235da3d893e656fd85e3c45a532e16936ade4da0fbbb629ce911fcf68383ceb0d32b8ab7bee60694f97eb8c9b1f626749c316b22d18223abb916ed6833c6b50b335631a02ff4ad13b3bba0177c4f64c81a551887c01be6f535150b58eb28ffa6d940d988ac0cd9105dc77f9de01a935c066ea7183250e4c23cbdc83ef61458b5012a66d5ad83ab97b8f07a90110b2c6f5348fbb10fa0ba2ffe0c7cb5039daa2fe044df4294af8a4b73688b8c88155b9914b81a15fb98df0227d8632910cdfa53835690451444ad4a932a7ea1a16d4f7c337d8245c065e87f9a032e13b587e5c0f6fbe889523bdef46e476fd0474dca83d8852279ce090ee656955af216295580b4e3fded684d656ee5fbd78e981696b84669409a720f9e9c69ee3b220e498720f0a0a0a58d9fb4387da5a22007149cfdac9ca6d0f8a10a49e4162db8a295bbfdb8a03e0a6e43b5198b832cd906cb4d5e4962173f21ebace5ad8ff3f41e9c2c43b86e857f3ddf99ae367a4cea151b99c436787da5be015b095e426d0157e9d6cb7489ed33295e7b15b89490a90a9885858318563230679b3c5ed151983c103dced492a902fc5177593d8387be855afa32752747accebde65b30cdb1cf278cf77517022e13fed9dd8e35b0416cbd226f55fac56ea78e21864b740775e30b9363798c5e26ce11799853ddc01047ac28143df2de533cea8cb29bb76d5a61653e35379bb03af13de2173ea9c8328ef475aea5820f71ac115606f7ede3773d2c92e929b42c82e6de0b9445cac8635750880def18d1b37e6dcb37903d53e0c159c9e6fb068c33d167ab4a7d0ed080ceb1439b98e2307f898f9989adbe6ea1b77021dd70abfd3abb2578e922d961da4722353f9711f61f812a906c72b03370c06dd3cc6cffb1303c8bc4a64488171c1f078e5e72fcefaccec54cfa342c960cd47fcfa3c8dbc4c87636ed8b5ef7fee8cdd790e85823ed2a691ed356ac7e38ec72e78501d3734ebff3b9a7de4422a05ba1d9cad8fde3be1a6064e39c0a4c0dff377105e7707051ab1c2b39c93f3beea796ee37f2c6c2781f366edba986604a7513e54657f482d220f7ec64c835f442f9d286b0d759ffb5d6268a0ce44f171cf1435ceed931fc124485e0be90aa126c85189a6c0f1c973662434cc68b2e48e8dc28df3648f4db015b15ba3ccfa5d7ad24381f245dcf8038f601ea7691910259d296e806c4408ce02dd7d6f4f87f9985ed39ce06da13d9fc87bcbab41543111493e890a9662037b2ab9d10eed8da28625377e50ad16909969238ed960e9a6aa5dfcea4b38c17133aea0b027a6685b7597f139fcd1ded2af2f3ea61e3c328deebf30759f3d490b6b96c5848a8718d16bb12f19e8149384bf0f46e0504b13c969fb1b38ba0864d77c0f143beeff954aedcb6f9d0069b6a88d693db83b66618109d76d3a72bf6d7696b8b0b97d624d719f8090a7edf88cd2bda8effb5d2cff8f3a612116f8e35ee5c1dd9c500578b2a0f6889ae65cc44c4076ab9d2b7770a04b1984f90bc0dd59b7ace0483ccd52a58ee59208850f3744bc33e4e45927cc88703221e9976545bf97fbb2a23e401b54b5934e8c70c86bc56400e8c3f3dddfce65310c309cca7209e405cd355b85f09d01b846bf4609e988f01fb310968588f163e0933bd41cc05e7f53d77f9d428030d6aeb648102405c6e4782b479949c1814e45900ef357d3db9ea55ae29634b06ac9ab933254c898ae696d63a96f8a52b31b0878b80c56aee38f98c2d8022ab594953a2aec931ea13733d248fb680a92425fabba126c973cf772f514ccab90f056e16f95b5e748f742ac483d499eeee82a31ff67ae08f70a2fc1bdbce38978416f2a94f57ebec387c19ac767e4ea89c61c737fe9ffab44d3cc515a276e51c80b645f3592f3dc8bec4981389f4736f766b8a93637d05dea8f7f72de4362aaa6aa2ccc9fd04a54a4dae4baf55e1b430d840dc585a8845b5e5c8a86894947cfdce880f42d8396d75dbc3c7d4a2a0202c437d52b8f7ad4b3ab99373805d10eb4627fe66b3624142d19f9b8610eb3f627075b915673d725c97d680e95e656a9b6e9d0bb1aad192cef61f8107b6621268ed889e27b13e91c3dea2b9c2a932635b85c18f43a4140f708b96d3f7df8bb50b162145b3ef2361537cbe0136ae173f9230f72edb7f69cf40f3d760fa6a234bbeae8c37e44a1a00b54249103ad430dc1d42507ba96e32e80961d8b8feed0049c34d58c0ad826af2e39c6285f3ea9dba2d3ea1e100a3eef870014fb7c59ba97dfaab82a8c6d37a3cd669cf962e039e858c59945d75829c6debe5577613c1acd3ec0d7a639662dc0e7423702bfa69891ae21bcc025034e1f8ee01faa9c00322674be407d339a79268e56b5b673e85d9367d05469c5bbbe9700e3eaf0566a1ce92a3681eaf0198d1fbb7973d891b413b1f236425b1124a40048ee3442cd0e7daa498695b735ec27deb5f7626add16489c7cab7e758a9ac1d2302626731bbcdea4bdbb414d7bd5cd7d1413c817ec92547859933293ea09f53a46393d92c48b96290d43e490c1334705904be21914b50185caef9b528d29d7d3f4d3edd3fb7111ed7d4c26d923c20e9c3bd645011b27b1a907c7ea6921450212434ddbfe5c3287a544ad652d7dbbc5515b1f3c0c6e716e8743709b0e0bfb03ec8a155edea5ab1e838647adc376d7bfd8cfd6c984381ff9fe57b60246d0ce5cac7fabcaf99d870e7c7c38e7d933a4ed4dcbd3b4ebfcf628a1783dc9a4dd682d6d031942ff38ab88a5c95f370d13fcf28ef4ea726a6235ae7f94d0e0adb78fead7735f54589386132ff400bb502196cc285ba64abfc95657c479266f16ac636fbdb512b39ee727414b9e41e253a119159585dcc05dab218dec591f3b27b9b2f9e2ab2e0d8179fa464b9f60eec3e95ee11b04c3a24b27abe23fe0f613a0ab6f4c74f4f144f2957bd62713a3797dcda012f410dfff8afe8e9846a6d9641a13650305a4f544847e14e2025a6adc45a8137b184a0e2dee693ea581c8532053e57458b96099954cb211a529712b341952ad9c0e41afa7618ce9b9e057ac4f67595a053f6eec615873092496332c430c1ef77e8be645d42a374662b1506756f8e37294744ee0cf3145b78e084b30675512140cfad39f13a5df7194e16a62a40f653cc2d04d4962d4a77d03ec3f6c761a14e550d119ab6214ff2c17c150b1c0e0536fb65b097b51e6c0fc7dcc83b9a3a2b1258afe136ac9278645bba91bf3aba80f60b1157970cc16c8c80bb823da092b4046d2b45c1e069e358cac3981e2bbffe88e5f2a0938066f5aa5552bc676ad498cd34d016b565b2109de1753d2911904188f73431b36521a46dc335502e727e0efe1e218196d0d3017d38c3c958dfec64f9e4ec25288a0f27aff67b2c4ace4e2862c79e80542b3aa01b49670190d7dc1422a8090e22f83a2d39ed7362d7d86732a68f64116b4ed7c8024b22b5e1d9664512109c1d8c144305cbeeca65fb594d4b4a8c3f0938bec3ea2b33ed178e63e735115019710317eb951fef41b2818251ae6241592a616ce9bf3a07b5aa341b247e97191cf7ce4a4ff9b0ea894f9388af38541bd812fbd674ddde89df50a4c5e800bdf928d18566901d30eeb85085301bea501efa500ebda2f4b7648a0890388c0ba2b1d4614b0779a2448bca0393c32dd96b5b7bad053f7d0c5b26acf51358d59acfc9003141ff443494b29b694b5e5bb1e2d25f91fdb94fd3cd4c98c743d0fe092e8c38e4626ef862b5e1e2c9c8351e72531b95286f4d4c89e5c3f47a9d84c9051d2a16ed94a354925d7dba913938a4b62551f916fe1b981316be47d0f919899d82e6d9b365a396c9063270d953a633f78cd3a54d005b0ad6e013fb4fa7f0879480c62238a29d79f4f48dcb0fcad009120ee234346b7930aa20adf4cc778807f74ec64847e086f41a41837ae87e64ed13f67fc7815500edc46fdbff9fb50306e6519b60b61ffefac046bf0e92671a2709517da652c2bfc497367ef55e7ac6266fb67d23cef62bf82ac4e62880c001e9ca60bfc37f176c476c63c0a0c52f91d864c4c11c0362139b7cc427eed89f5d83e7f37faa36ede477b8905f445aa3f5ef41bcf439e69ecf15cc6478cec667e685027649d1fad4dc52413d797a00f58833976845bc28b8c632e6df48805bd5621d9639fd40dc4356b3f273d2aae3b2d97a2dad6993ac8c1fc005e64c0e6653772877bbb468708438a50401d9fbc9b9301b2ddc78f8cdc70f82badd5b40361de618fa6c1f567663ed4d853e6b9f6bd7a6f43bba07e0572ca5a66a879400cc94debaae76b2d7a386c85ef66574395cc1e4ba0f24828d43a59806b9a32a41eae9024e416290a4a964e3d9160433c69d064e4f48596aeea97aae44d486882186e0dc7498b10f97952bdfdb32228a906c9be47070d38da791c96765f856fd00444dceda2c809cd407e9d6f17a06a388839e776e41e11c513fad8df1a8a748afd98abfd03f60a754389441b3dd30ee715f0ef3f237b44aab1d024e8e96dcf78d0dd42351aef2e3f2c15835c29e0d7c3da3b4ab0ced6f3a2e82db979b58a50f4bf6321e8b6d0ffcfb8155cbf38d427f13524741704703e498daef8c9b6ae5e4a3b40ec7b26e4961a1580b1399688ec1d5ddbae6eb3614730ceb29c87fab02e90cd8948c5d299da32ede62b4c8c", 0x1000}, {&(0x7f0000009380)="4f9e61e7c3d9550663d571d816528d65d9cf2f5dc36e2d9df8d9ea06ef6ddae69e9eb7096df1794d94736eed8dda3df33917d0f604e2a8d9f5a22ab5875728b44a90ee8c3c35ef947881c1fea2cc5ad731ec188f866e09b0efca2a72bc5d4468cc55754a52bc7e152f3f6d4a738290535efadc570bfbf877f23ef622538179c971aafb12f96bc84664a649c6c88c3696f4150e8be52e787c9c28949bae2678dbcacafac9816600ee754e4f3b296c5fc54cd014892f05d09711c7743502ba7e969efec2150385139d38a507b98680611458b38cc43e690e5ef6db731cdc8d46ff5993c425f2ab3f59a5a2e4dfa78a11f2dab4fd88d15236", 0xf7}, {&(0x7f0000009480)="1edbae38", 0x4}, {&(0x7f00000094c0)="fa21ea9fa83215faafe22caaf092745c8710e9627f1fdd0fa760c21833f24a006dd1e23a8bfdb97a69d115b3c421dd487d0046b02fe6e1b3d2484641749433b1b38613b1a560ae4bbffd905e0197357e987c9974a7636acde407b165fa0fefa34f37b982cf97ddea484b950def0263175c7959617bc6c8ac7d7dffaab7bffa23c3ded0dda2aae30e9d23436abb0492387f71449d0965429921a4fde9f0363c60b25d15991d08f198339ef4201ef77c20a7b79c918b34416d13bd66db93a4e8ff3446f8a741cbe491e9a68ebf", 0xcc}, {&(0x7f00000095c0)="2e4afcc60c0efb56277cc0458d9467760447f2b0408314bf2e1bc35d8aab0617dc9bc9de1520ea6b6f29fe0dc07f4deb2e2564cb5ec5f51f82af7dd366ff2c9941ede2d7ba9f77eb2b576f1b00d2e2c798d19e155aa1c8ad8b07701671777e2d8bece9f7c6d1a5123a2ba3689ea0e17eb9f6ebb4a8f85fb593505a42", 0x7c}, {&(0x7f0000009640)="61bdf978", 0x4}], 0x9, &(0x7f0000009900)=[@cred={{0x1c, 0x1, 0x2, {0x0, 0xee01, 0xee00}}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0x0, 0xffffffffffffffff}}}, @rights={{0x34, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, r2, r2, 0xffffffffffffffff, r3, 0xffffffffffffffff, 0xffffffffffffffff]}}, @rights={{0x14, 0x1, 0x1, [0xffffffffffffffff]}}, @cred={{0x1c, 0x1, 0x2, {0xffffffffffffffff, 0xffffffffffffffff}}}], 0xb0, 0x4004040}}, {{&(0x7f00000099c0)=@file={0x0, './file0\x00'}, 0x6e, &(0x7f0000009b40)=[{&(0x7f0000009a40)="86ec966bec18af884aee9d10683a00f752643935ddc234bc4f0d68661fbe39805a08323df00da135876acda8d9b5551944d056699d36d65dea108eb3f29bd87464a5bebfa4aa5711570d8a84a7f662d76da465647794ce294e50d6bcd90becd664c372a47a9d7830bf7e50797b0fa23d291b0a017cae2a9ef6afc9e781ecc6332d4958e467003fd6d870d486759b4c9ed9e9503f8667ff13bf2209638fee37e9a9ed00aa00cc78c11633a6d91662c47c8916eefa81db3fbdebd2cb29f43597ebd7d5608804b61fd1edd396c47fd5194edce40b609fbbdfd2ef34125a263fc7113896aa1ec8c524274b749b91711389ae97a7", 0xf2}], 0x1, &(0x7f000000a000)=[@cred={{0x1c, 0x1, 0x2, {0x0, 0x0, 0xee01}}}, @cred={{0x1c, 0x1, 0x2, {r5, 0xffffffffffffffff, 0xee00}}}, @cred={{0x1c}}, @cred={{0x1c, 0x1, 0x2, {r5, 0x0, 0xffffffffffffffff}}}, @rights={{0x2c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, r3, r2, 0xffffffffffffffff, r3, r4]}}, @cred={{0x1c, 0x1, 0x2, {r5}}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0x0, r8}}}, @cred={{0x1c, 0x1, 0x2, {r5, r7, r9}}}, @rights={{0x18, 0x1, 0x1, [r10, r6]}}], 0x128, 0x20004080}}], 0x7, 0x4000000) bind$bt_l2cap(r4, &(0x7f0000000080)={0x1f, 0x8, @fixed={'\xaa\xaa\xaa\xaa\xaa', 0x11}}, 0xe) sendfile(0xffffffffffffffff, r6, 0x0, 0x10000) 05:11:54 executing program 4: r0 = fsopen(&(0x7f0000000040)='afs\x00', 0x0) fsconfig$FSCONFIG_SET_STRING(r0, 0x1, &(0x7f0000000000)='source', &(0x7f00000000c0)='%(,:', 0x0) fsconfig$FSCONFIG_CMD_CREATE(r0, 0x6, 0xffffff7f00000000, 0x0, 0x0) 05:11:54 executing program 0: unshare(0x6c060000) mmap(&(0x7f0000fff000/0x1000)=nil, 0x1000, 0x3, 0x48031, 0xffffffffffffffff, 0x0) unshare(0x40000) (async) r0 = socket$inet6_tcp(0xa, 0x1, 0x0) ioctl$sock_SIOCGIFINDEX(r0, 0x8933, &(0x7f0000001500)={'ip6tnl0\x00'}) (async) getsockopt$IP6T_SO_GET_ENTRIES(r0, 0x29, 0x41, &(0x7f0000000380)=ANY=[@ANYBLOB="6e61740000000000000000000000000000000000000000000000000018000000dfffffff"], &(0x7f00000001c0)=0x24) r1 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r1, &(0x7f0000000000)={0xa, 0x8000002}, 0x1c) (async) sendto$inet6(r1, 0x0, 0x0, 0x2204c001, &(0x7f0000000340)={0xa, 0x2, 0x0, @empty}, 0x1c) (async) getsockopt$inet6_tcp_TCP_ZEROCOPY_RECEIVE(r1, 0x6, 0x23, 0x0, &(0x7f0000000300)) (async) r2 = socket$inet_tcp(0x2, 0x1, 0x0) (async) ioctl$sock_ipv6_tunnel_SIOCGET6RD(0xffffffffffffffff, 0x89f8, &(0x7f00000002c0)={'syztnl1\x00', &(0x7f0000000280)={'syztnl2\x00', 0x0, 0x7800, 0x8000, 0x5, 0x7, {{0x8, 0x4, 0x3, 0x24, 0x20, 0x67, 0x0, 0x5, 0x2f, 0x0, @multicast1, @multicast1, {[@ra={0x94, 0x4, 0x1}, @ra={0x94, 0x4, 0x1}, @noop, @noop]}}}}}) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f0000000c00)={&(0x7f0000000200)={0x10, 0x0, 0x0, 0x42c00180}, 0xc, &(0x7f0000000440)={&(0x7f00000003c0)=@deltclass={0x7c, 0x29, 0x10, 0x70bd28, 0x25dfdbfd, {0x0, 0x0, 0x0, r3, {0x1, 0xb}, {0x9, 0xffff}, {0xc, 0x8}}, [@TCA_RATE={0x6, 0x5, {0x1, 0x1}}, @TCA_RATE={0x6, 0x5, {0x1, 0x8}}, @TCA_RATE={0x6, 0x5, {0x31, 0x93}}, @tclass_kind_options=@c_prio={0x9}, @tclass_kind_options=@c_mqprio={0xb}, @tclass_kind_options=@c_tbf={0x8}, @tclass_kind_options=@c_multiq={0xb}, @tclass_kind_options=@c_prio={0x9}, @TCA_RATE={0x6, 0x5, {0x1, 0x5}}]}, 0x7c}, 0x1, 0x0, 0x0, 0x4}, 0x40001) (async) setsockopt$inet_MCAST_MSFILTER(r2, 0x0, 0x30, &(0x7f0000000040)={0x0, {{0x2, 0x0, @multicast1}}, 0x0, 0xa, [{{0x2, 0x0, @loopback}}]}, 0x590) (async) listen(r2, 0x80000000) (async) setsockopt$SO_TIMESTAMPING(r1, 0x1, 0x41, &(0x7f0000000040)=0x104, 0x4) (async) sendto$inet6(r1, &(0x7f0000000480)="2dc35292b13628ac4e69aed5eaaf763a7a3120e199a9ec93426b6b27ff154b9a649da680eb0fbdb093189ff34273e9b976d9bad907fdc75c5de2bddd25069444be6c9a62fd5c8a1785e3e735eeb50d4ee25a69da3009cbb52bdd406352bd91f0ee0247408b2cb755ae831cfd0235ecd5d18d1f88203ae902ab1e5a8460ebb0168dca53af4f880d66074263c6c59f67e855fef72c81a33904f48c0e96e03e2e6d6aed9bf7fce248cb0a3236775704770c85d9d6f275ca1605e6e2e387703c0c21f2a27580806bb6e60a4230bd0a6f0932210275bb3772eecbab26dfc7b7036060293e1244ea431bd132817db84872b283bbc49b90de5f2629a1c5354f3d36086418d019ed8f94a393911041edaae9cc1bff02233c1f5bf547042408d587bdcdd0ed00521a3b6787738b3478c048cd068b1e71350a8b7d7319e88b4593f055f7d6b2788961c9158a41171fdc542ab2cab4464ac1d2a45bf447e4a5f363cfad04414d1f17be3dc27722846f97b33e72d5a358b659e69a7ea23ee3200aa79a7ff9ad7459dadf98c37cebb094a673500a82aff0350fe9b7c612024e753f344c5b3e20acdd40d5a3fa45d21aa0c045d47bab2b2aeabf0c533a519ff0db6082d1d591790e2a589ef19df3ed99c078dc16fee291b9e2efbcf7dbae604b0f25cf047ad6cee6dd87a60fee53624bf4b20c8cec40c61d7e6e9358347ecf5640ff145cfec5328e280c712b9c69f2dede62f7a6d18770b47e15c5616a1d68bcc6dfb2de88a073d90b2bfbd23e0af0bdf67be77c8552a7b65b9aa2fb4debf858dfa2695c7f8f59fea36f717d7d5c4867e0007eda62bd178697a0773e8aeb633f7ab7d074f142f77899dc7208cc0842b0927bde1346e87e736d00b1672a56b98eef9797c8890d3941ff3644f6572e355682134d1b84396f872e32e1dc5f20d9ce6d71cc79e54f401b8b980d4641dd98e636ab2dea59a9207a16b871df6fb070b05a041202666c9a2d722a4a390a8f00220dd962b8bdaa62072db278d8db9f9e0bf344d8c7c714705b0d923f450541b6a3afd5ea6f6b622cccdd09084949f348ee598b924bba59abb3b8766a75a10089018db75618d30b4a0b651b823c42a150d5c165d333b3f37a1329fe9530185127abec84e922e8bac2764ec6636ec009b5179cbe33eadce57be6c89f84e5161e1e7ad598ebdb0e034a1d99334dd0a3a6fe0e9d2f3eb5e2c6d5e89f842f0ce21e7c74806761ba400c41fa9bd6fccefe140c67b868029be016d57ec5873c19ef9ee2ee07afdf64cf142cab7609c2c2697017c19b1504a3125aece71190fcf767a138f9aac29c7e4499968adc5d3c693a89c13eda997bdaee9bf63f92d4f633569134df470d4285d809c4508759c5c9db4973202db474e2b16b1fbce20c4b3b55c64f32b26795e3497705a66bf749055808902be2e42246ad8c0f090db3ad038f1b0de9af9f5f0ef7e5849573c5c9a5c740f065620f882caa4d197563030c1f302f3b104e9d7cd11644ad5c02e6f671df789d37d1bc8863f8b6a19ffdf5d652c22254aac9a94a202ba303fa545cf8b964e5755e79eaf4eaa04192732a0b5fea3a9685dc7194d6103c537b54fe64e69a2a4bda43533245ea5ab4e64c2696a83ad8efd103e2a0e487ee88cd311868828a05e7f6c291700c5ef42813cf1ae8863f1eb2d8f7c21aef66602ae0838889cf87e2cbe0b2b07a368dc03c122f674f6609717d3954b9b8acc1c26c0e6340443c218a10202477ded6cc92114bc387cc4f1cf8119ff5347ad0f81c20f24eefc3e9ab5c2e94bda47ee17a328a92903e783d8ae3f0efc6d60fce7befce0725c17e921cb3ffcb68edc1a1c57b9213f6c0bdfed435c763fd3fc5c746d60d554728dbdce7bfcf3b2e55276543e6869fbbee412bfbb2951b4c0dbb2bf4c625827ea9063f1f450a11ae355cf40579d757bc71bfd299b9ede70215d003c8f5eb4cf78eac48a18b8a6c474144c88903b666a4529395feeb52f6c7c73c542da51d2a3413890568438e076ec1168bc16d696e96d19d4e99a82361cc5b7c4b1a613f46ac0268b92ae61cc1752700cfd22d35138008b795b1a65f3f601a1234779a0236ad05631d641d7ee4f2bcbc548cd898ebd4eb7c5d2cbf6dfe27d35643a5e1bebcc1cd498eb98d0fd23b0b381de253080803deecba514c94283f7f40fd2514c8146fed7ae27813a52fca5f51eabd16e60d99f9b7b2e8aee8df1375304779cf40e39b508587d91da8e890b2b3a778b2f6c93753731731ae0f02ee96ea0aafbaeb2c0ab23747830443c0fe312f02d880d52e8f31560ace3b53f3c04d946bebebfe6cca813b6499d9aa5349119efcad150f60b0fa9bcc79d1c79bbbe5bd15decdb113688a480574768889c7834fa04de446bd282ae9dcc78b9839d1170b36b6647064c3f2c956b27f1d81dbb65066ec5bf4b270b86152f3c16bf9320afd100c25a88911e4ee52c0fd80a2939360fc8f2c804f5c44ad9df654ee81c792a1444214a5c9033d6e066214b52f8f98dfb438cef48dd7a95488ad6c65079556fa9f7d0d348b908cae739d1c2d47d8bab5cebe6126f77cbf548353f64df9e8820c12ad29254a4edd36d83cf8ce0c56f24bfcd98b1a046a679fa27feb", 0x746, 0x0, 0x0, 0x0) (async) setsockopt$sock_int(r1, 0x1, 0x29, &(0x7f0000000240)=0x8f, 0x4) (async) setsockopt$SO_TIMESTAMP(r1, 0x1, 0x1d, &(0x7f00000000c0)=0x401, 0x4) (async) recvfrom$inet6(r1, 0x0, 0x0, 0x2040, 0x0, 0x0) 05:11:54 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', 0x40, 0x0) ioctl$FS_IOC_ENABLE_VERITY(r0, 0x40806685, &(0x7f00000001c0)={0x1, 0x2, 0x1000, 0x0, 0x0, 0x0, 0x0, 0x0}) (async) getsockopt$inet_IP_XFRM_POLICY(0xffffffffffffffff, 0x0, 0x11, &(0x7f0000000e40)={{{@in6=@mcast2, @in6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, {{@in6=@mcast2}, 0x0, @in6=@empty}}, &(0x7f0000000280)=0x11) r2 = syz_mount_image$ext4(&(0x7f0000000000)='ext2\x00', &(0x7f0000000100)='./file0\x00', 0x40000, 0x10, &(0x7f0000000200)=[{&(0x7f0000010000)="200000008000000006000000600000000f000000000000000100000001000000004000000040000020000000d8f4655fd8f4655f0100ffff53ef010001000000d8f4655f000000000000000001000000000000000b0000008000000008000000524700006201", 0x66, 0x400}, {&(0x7f0000010200)="01000000000005000c", 0x9, 0x560}, {&(0x7f0000010300)="0300000004", 0x5, 0x641}, {&(0x7f0000010400)="0200000012000000220000006000", 0xe, 0x800}, {&(0x7f0000010500)="ffff0f00ff0f00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020000000c0001022e000000020000000c0002022e2e00000b00000014000a026c6f73742b666f756e6400000c0000001000050266696c6530", 0x839, 0x1000}, {&(0x7f0000011600)="504d4d00504d4dff", 0x8, 0x6000}, {&(0x7f0000011700)="111fc0d901000000803a0900803a09000000000006", 0x15, 0x6800}, {&(0x7f0000011d00)="2719c0d901000000803a0900803a09000000000002", 0x15, 0x8000}, {&(0x7f0000011e00)="02", 0x1, 0x8400}, {&(0x7f0000012000)="04", 0x1, 0x8c00}, {&(0x7f0000012100)="ffff0100ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff05", 0x801, 0x9000}, {&(0x7f0000012a00)="0000000000000000010000000000000000000000000000000000000000000000000000000000000008", 0x29, 0x9c03}, {&(0x7f0000012e00)="ed41000000080000d8f4655fd8f4655fd8f4655f000000001000040004000032bce2cf00050000000af301000400000000000000000000000100000003", 0x3d, 0x11080}, {&(0x7f0000012f00)="8081000000180000d8f4655fd8f4655fd8f4655f00000000000001000c00000010000800000000000af30100040000000000000000000000030000000d", 0x3d, 0x11100}, {&(0x7f0000013000)="8081000000180000d8f4655fd8f4655fd8f4655f00000000000001000c00000010000800000000000af302000400000000000000000000000200000010000000020000000100000013", 0x49, 0x11180}, {&(0x7f00000003c0)="ed41000000080000d8f4655fd8f4655fd8f4655f00000000000002", 0x1b, 0x11580}], 0x0, &(0x7f0000000180)=ANY=[@ANYBLOB="d14360068ed42507f7abc0a80d410e37410000000000000000"], 0x0) (async, rerun: 64) r3 = socket(0x10, 0x2, 0x0) (rerun: 64) getsockopt$sock_cred(r3, 0x1, 0x11, &(0x7f0000caaffb)={0x0, 0x0, 0x0}, &(0x7f0000cab000)=0xc) fchownat(r2, &(0x7f0000000080)='./file0\x00', 0xffffffffffffffff, r4, 0x0) chown(&(0x7f0000000040)='./file0\x00', 0xee01, r4) (async) mount$fuse(0x0, &(0x7f0000000140)='.\x00', &(0x7f0000000400), 0x80002, &(0x7f0000000f40)=ANY=[@ANYBLOB="7c0010aa50612de109179c6f3a48cf26fe810e9dd0b6b4c425f4d18d6cbe63dc2a27f832041d3791ac85cd24cc19a452656ef25dad88a96ba774968de7b29faa0a378429b40bee139f6fa21f95ffce2f3e3be0697c54f83fd0072bb0b2de22c3d1acb414a21f1108b25750c4086cdbc2817a1073b1245661e9624150a694e3b8663293eb75d0e84a8cc55999933c8b01f8df5194e570d7e4f8d9", @ANYRESHEX=r0, @ANYBLOB=',rootmode=00000000000000000120000,user_id=', @ANYRESDEC=r1, @ANYBLOB=',group_id=', @ANYRESDEC=r4, @ANYBLOB=',max_read=0xfffffffffffffde9,max_read=0x0000000000000005,max_read=0xfffffffffffffffa,\x00']) (async) syz_mount_image$tmpfs(0x0, &(0x7f0000000080)='./file0\x00', 0x0, 0x0, &(0x7f0000000000), 0x4, &(0x7f00000000c0)={[{@huge_never}]}, 0x0) (async, rerun: 64) mount(0x0, &(0x7f0000000000)='./file0\x00', &(0x7f0000000040)='hugetlbfs\x00', 0x0, &(0x7f0000000280)) (async, rerun: 64) umount2(&(0x7f0000000100)='./file0/../file0\x00', 0x0) 05:11:54 executing program 1: prlimit64(0x0, 0xe, &(0x7f0000000000)={0x9, 0x8b}, 0x0) sched_setscheduler(0x0, 0x6, &(0x7f0000000080)=0x8) (async) r0 = fsopen(&(0x7f0000000040)='afs\x00', 0x0) syz_mount_image$ntfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x123004, 0x90, &(0x7f0000000200)=[{&(0x7f0000010000)="eb52904e5446532020202000100100000000000000f8000027000000000600000000000080008000ff010000000000000400000000000000ff000000000000000100000001000000aa1cb4684d356101000000000e1fbe717cac22c0740b56b40ebb0700cd105eebf032e4cd16cd19ebfe54686973206973206e6f74206120626f6f7461626c65206469736b2e20506c6561736520696e73657274206120626f6f7461626c6520666c6f70707920616e640d0a707265737320616e79206b657920746f2074727920616761696e202e2e2e200d0a00"/224, 0xe0}, {&(0x7f00000100e0)="00000000000000000000000000000000000000000000000000000000000055aa", 0x20, 0x1e0}, {&(0x7f0000010100)="ffff0007000000003f00"/32, 0x20, 0x2000}, {&(0x7f0000010120)="46494c453000090000000000000000000100010048000100a80100000010000000000000000000000400000000000000080000000000000000000000000000000000000000000000100000006000000000001800000000004800000018000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000300000006800000000001800000002004a0000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100b001000000000000b00100000000000600000000000000040324004d00460054000000000000008000000048000000010040000000010000000000000000004a00000000000000400000000000000000b004000000000000600400000000000060040000000000113f04210c3f0100b00000004800000001004000000003000000000000000000000000000000000040000000000000000010000000000000100000000001000010000004000000001101020000000000ffffffff00"/448, 0x1c0, 0x4000}, {&(0x7f00000102e0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x41e0}, {&(0x7f0000010300)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x43e0}, {&(0x7f0000010320)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x45e0}, {&(0x7f0000010340)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x47e0}, {&(0x7f0000010360)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x49e0}, {&(0x7f0000010380)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x4be0}, {&(0x7f00000103a0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0x4de0}, {&(0x7f0000000f80)="000000000000000000000000000000000000000000000000000000000000080046494c4530000900000000000000000001000100480001006801000000100000000000000000000003000000010000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d800000000000000000000000000000100000000000000000000000000000000000030000000700000000000180000000200520000001800010005000000000005008041214be3108cb08041214b9fc6d8018041214b9fc6d8018041214b9fc6d801004000000000000000400000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000030000000000000040000000000000000040000000000000004000000000000000400000000000002104ff0000000000ff302c202cd77f9293c5eae9cfffffff00000000000000000000000000000000000000000000000000000000e93ca3b6fc0527168621252914d5d05df9aed933fdd2f2228e89900b35e7f45300e092f02c40efe06ea6cc475d615798a56c0713742fcfde2e838de95ef972570c416c379b629f154c06ef9c0b5cfee6638fab932d4871871913170dfef006147e2e1add", 0x200, 0x4fe0}, {&(0x7f0000010560)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x51e0}, {&(0x7f0000010580)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x53e0}, {&(0x7f00000105a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x55e0}, {&(0x7f00000105c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x57e0}, {&(0x7f00000105e0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x59e0}, {&(0x7f0000010600)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x5be0}, {&(0x7f0000010620)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x5de0}, {&(0x7f0000010640)="000000000000000000000000000000000000000000000000000000000000020046494c4530000900000000000000000002000100480001006801000000100000000000000000000003000000020000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000700000000000180000000200520000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f0000000000000040000000000000000000040000000000000004000000000000000400000000002140030100000000ffffffff00"/416, 0x1a0, 0x5fe0}, {&(0x7f00000107e0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x61e0}, {&(0x7f0000010800)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x63e0}, {&(0x7f0000010820)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x65e0}, {&(0x7f0000010840)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x67e0}, {&(0x7f0000010860)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x69e0}, {&(0x7f0000010880)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x6be0}, {&(0x7f00000108a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x6de0}, {&(0x7f00000108c0)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000300010048000100f001000000100000000000000000000006000000030000000200000000000000000000000000000000000000000000001000000048000000000018000000000030000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000030000000680000000000180000000100500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff0000000000000000000000000000000000000200", 0x220, 0x6fe0}, {&(0x7f0000010ae0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x73e0}, {&(0x7f0000010b00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x75e0}, {&(0x7f0000010b20)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x77e0}, {&(0x7f0000010b40)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x79e0}, {&(0x7f0000010b60)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x7be0}, {&(0x7f0000010b80)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x7de0}, {&(0x7f0000010ba0)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000400010048000100a00b000000100000000000000000000004000000040000000200000000005400000000000000000000000000000000001000000048000000000018000000000030000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000030000000700000000000180000000200520000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000a000000000000000a0000000000000600000000000000080324004100740074007200440065006600000000000000500000008000000000001800000003006400000018000000010004804800000054000000000000001400000002003400020000000000140089001200010100000000000512000000000018008900120001020000000000052000000020020000010100000000000512000000010200000000000520000000200200000000000080000000180a00000000180000000100000a00001800000024005300540041004e0044004100520044005f0049004e0046004f0052004d004100540049004f004e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000100000000000000000000000400000003000000000000000480000000000000024004100540054005200490042005500540045005f004c00490053005400"/640, 0x280, 0x7fe0}, {&(0x7f0000010e20)="000000000000000000000000000000000000000000000000200000000000000000000000800000000000000000000000ffffffffffffffff2400460049004c0045005f004e0041004d004500"/96, 0x60, 0x82a0}, {&(0x7f0000010e80)="000000000000000000000000000000000000000000000000300000000000000000000000420000004400000000000000420200000000000024004f0042004a004500430054005f0049004400"/96, 0x60, 0x8340}, {&(0x7f0000010ee0)="00000000000000000000000000000000000000000000000040000000000002000000000040000000000000000000000000010000000000002400530045004300550052004900540059005f00440045005300430052004900500054004f005200", 0x60, 0x83e0}, {&(0x7f0000010f40)="000000000000000000000000000000000000000000000000500000000000000000000000800000000000000000000000ffffffffffffffff240056004f004c0055004d0045005f004e0041004d004500"/96, 0x60, 0x8480}, {&(0x7f0000010fa0)="0000000000000000000000000000000000000000000000006000000000000000000000004000000002000000000000000001000000000000240056004f004c0055004d0045005f0049004e0046004f0052004d004100540049004f004e000000", 0x60, 0x8520}, {&(0x7f0000011000)="000000000000000000000000000000000000000000000000700000000000000000000000400000000c000000000000000c0000000000000024004400410002004100"/96, 0x60, 0x85c0}, {&(0x7f0000011060)="000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000ffffffffffffffff240049004e004400450058005f0052004f004f005400"/96, 0x60, 0x8660}, {&(0x7f00000110c0)="000000000000000000000000000000000000000000000000900000000000000000000000400000000000000000000000ffffffffffffffff240049004e004400450058005f0041004c004c004f0043004100540049004f004e00000000000000", 0x60, 0x86fd}, {&(0x7f0000011120)="000000000000000000000000000000000000000000000000a00000000000000000000000800000000000000000000000ffffffffffffffff24004200490054004d00410050000000000000000000000000000000000000000000000000000200", 0x60, 0x87a0}, {&(0x7f0000011180)="000000000000000000000000000000000000000000000000b00000000000000000000000800000000000000000000000ffffffffffffffff240052004500500041005200530045005f0050004f0049004e005400"/96, 0x60, 0x8840}, {&(0x7f00000111e0)="000000000000000000000000000000000000000000000000c0000000000000000000000080000000000000000000000000400000000000002400450041005f0049004e0046004f0052004d004100540049004f004e00"/96, 0x60, 0x88e0}, {&(0x7f0000011240)="000000000000000000000000000000000000000000000000d0000000000000000000000040000000080000000000000008000000000000002400450041000000", 0x40, 0x8980}, {&(0x7f0000011280)="00000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000001000000000024004c004f0047004700450044005f005500540049004c004900540059005f00530054005200450041004d00"/192, 0xc0, 0x89e0}, {&(0x7f0000011340)="00000000000000000000000000000000000000000000000000010000000000000000000080000000000000000000000000000100"/64, 0x40, 0x8ac0}, {&(0x7f0000000080)="000000000000000000000000000000000000000000000000ffffffff00000000", 0x20, 0x8b80}, {&(0x7f00000113a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x8be0}, {&(0x7f00000113c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x8de0}, {&(0x7f00000113e0)="000000000000000000000000000000000000000000000000000000000000020046494c4530000900000000000000000005000100480003001002000000100000000000000000000006000000050000000700300000000000000000000000000000000000000000001000000048000000000018000000000030000000180000008041214b9fc6d801abc4234c9fc6d801abc4234c9fc6d8018041214b9fc6d8012620000000000000000000000000000030000000600000000000180000000100440000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100000000000000000000000000000000060000100000000001032e00000000005000000048000000010040000000020000000000000000000100000000000000400000000000000000200000000000002c100000000000002c10000000000000110243000000000090000000580000000004180000000300380000002000000024004900330030003000000001000000001000000100000010000000280000002800000001000000000000000000000018000000030000000000000000000000a000000050000000010440000000050000000000000000000000000000000000480000000000000000100000000000000010000000000000001000000000000024004900330030001101450000000000b0000000280000000004180000000400080000002000000024004900330007000100000000000000ffffffff00"/576, 0x240, 0x8fe0}, {&(0x7f0000011620)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x93e0}, {&(0x7f0000011640)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x95e0}, {&(0x7f0000011660)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x97e0}, {&(0x7f0000011680)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x99e0}, {&(0x7f00000116a0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x9be0}, {&(0x7f00000116c0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00', 0x20, 0x9de0}, {&(0x7f00000116e0)="000000000000000000000000000000000000000000000000000000000000070046494c4530000900000000000000000006000100480001006001000000100000000000000000000003000000060000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000680000000000180000000200500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801001000000000000040000000000000000600000000000000070324004200690074006d0061007000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000400000000000000040000000000000001101460000000000ffffffff00000000", 0x180, 0x9fe0}, {&(0x7f0000011860)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xa1e0}, {&(0x7f0000011880)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xa3e0}, {&(0x7f00000118a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xa5e0}, {&(0x7f00000118c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xa7e0}, {&(0x7f00000118e0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xa9e0}, {&(0x7f0000011900)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xabe0}, {&(0x7f0000011920)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xade0}, {&(0x7f0000011940)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000700010048000100c801000000100000000000000000000004000000070000000200000000000000000000000000000000000000000000001000000048000000000018000000000030000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80106000000000000000000000000000000300000006800000000001800000002004c0000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010020000000000000002000000000000006000000000000000503240042006f006f007400000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000010000000000000040000000000000000020000000000000002000000000000000200000000000001102000000000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200", 0x220, 0xafe0}, {&(0x7f0000011b60)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xb3e0}, {&(0x7f0000011b80)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xb5e0}, {&(0x7f0000011ba0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xb7e0}, {&(0x7f0000011bc0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xb9e0}, {&(0x7f0000011be0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xbbe0}, {&(0x7f0000011c00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xbde0}, {&(0x7f0000011c20)="000000000000000000000000000000000000000000000000000000000000020046494c4530000900000000000000000008000100480001008801000000100000000000000000000004000000080000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000700000000000180000000300520000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000000000000000803240042006100640043006c0075007300ffff00000000800000001800000000001800000002000000000018000000800000005000000001044000000001000000000000000000fe01000000000000480000000000000000f01f000000000000f01f00000000000000000000000000240042006100640002ff010000000000ffffffff00"/448, 0x1c0, 0xbfe0}, {&(0x7f0000011de0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xc1e0}, {&(0x7f0000011e00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xc3e0}, {&(0x7f0000011e20)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xc5e0}, {&(0x7f0000011e40)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xc7e0}, {&(0x7f0000011e60)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xc9e0}, {&(0x7f0000011e80)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xcbe0}, {&(0x7f0000011ea0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xcde0}, {&(0x7f0000011ec0)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000900010048000900b802000000100000000000000000000005000000090000000200490000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600002000000000000000000000000000000000010100000000000000000000000000000000000030000000680000000000180000000100500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100000000000000000000000000000000060000200000000007032400530065006300750072006500800000005000000001044000000002000000000000000000400000000000000048000000000000000010040000000000fc00040000000000fc000400000000002400530044005300114147000000000090000000b00000000004180000000300900000002000000024005300440048000000000012000000001000000100000010000000800000008000000000000000180014000000000030000800000000005124b300010100005124b3000101000080000000000000007c0000004900490018001400000000003000080000000000f01203f800010000f01203f80001000000000000000000007c000000490002000000000000000000100000000200000090000000a000000000041800000004008000000020000000240053004900490000000000100000000010000001000000100000007000000070000000000000001400140000000000280004000000000000010000f01203f80001000000000000000000007c00000014001400000000002800040000000000010100005124b3000101000080000000000000007c00000000000000000000001000000002000000ffffffff00"/736, 0x2e0, 0xcfe0}, {&(0x7f00000121a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xd3e0}, {&(0x7f00000121c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xd5e0}, {&(0x7f00000121e0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xd7e0}, {&(0x7f0000012200)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xd9e0}, {&(0x7f0000012220)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xdbe0}, {&(0x7f0000012240)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xdde0}, {&(0x7f0000012260)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000a00010048000100a8010000001000000000000000000000040000000a0000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000680000000000180000000300500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000002000000000000000200000000000600000000000000070324005500700043006100730065008000000048000000010040000000010000000000000000001f0000000000000040000000000000000000020000000000000002000000000000000200000000002120880000000000800000004800000000051800000002002000000028000000240049006e0066006f0000000000000020000000000000000c691b6b777edcda00000000000000000000000000000000ffffffff00"/480, 0x1e0, 0xdfe0}, {&(0x7f0000012440)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xe1e0}, {&(0x7f0000012460)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xe3e0}, {&(0x7f0000012480)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xe5e0}, {&(0x7f00000124a0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xe7e0}, {&(0x7f00000124c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xe9e0}, {&(0x7f00000124e0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xebe0}, {&(0x7f0000012500)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xede0}, {&(0x7f0000012520)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000b0001004800030090020000001000000000000000000000030000000b0000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000010100000000000000000000000000000000000030000000680000000000180000000100500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000010000000000703240045007800740065006e00640090000000780100000004180000000200580100002000000024004900330030003000000001000000001000000100000010000000480100004801000000000000190000000000010060004e00000000000b00000000000b008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000000000000000000000000000000002600002000000000060324004f0062006a00490064000000180000000000010060004e00000000000b00000000000b008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100000000000000000000000000000000260000200000020006032400510075006f007400610000001a0000000000010068005200000000000b00000000000b008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100000000000000000000000000000000260000200000000008032400520065007000610072007300650000000000000000000000000000001000000002000000ffffffff00"/704, 0x2c0, 0xefe0}, {&(0x7f00000127e0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xf3e0}, {&(0x7f0000012800)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xf5e0}, {&(0x7f0000012820)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xf7e0}, {&(0x7f0000012840)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xf9e0}, {&(0x7f0000012860)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xfbe0}, {&(0x7f0000012880)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xfde0}, {&(0x7f00000128a0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0xffe0}, {&(0x7f00000179c0)="494e4458280009000000000000000000000000000000000028000000b8060000e80f0000000000001800d80100000000000000000000000000000000000000000400000000000400680052000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000a000000000000000a00000000000006000000000000000803240041007400740072004400650066000000000001000800000000000800680052000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000000000000000803240042006100640043006c00750073000000000007000600000000000600600050000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801001000000000000040000000000000000600000000000000070324004200690074006d0061007000070000000000070060004c000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010020000000000000002000000000000006000000000000000503240042006f006f00740069006c000b00000000000b00600050000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc618008041214b9fc6d8010000000000000000000000000000000006000010000000000703240045007800740065006e0064000200000000000200680052000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c006500000000000100000000000000010060004a000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100b001000000000000b00100000000000600000000000000040324004d00460054000000000000000100000000000100680052000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801004000000000000000400000000000000600000000000000080324004d00460054004d006900720072000000020000000900000000000900600050000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000000000000000000000000000000000600002000000000070324005300650063007500720065000a00000000000a00600050000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000002000000180000000200000000000600000000000000070324005500700043006100730065000300000000000300600050000000000005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d0065000500000000000500580044000000000005000000000005008041214b9fc6d801abc4234c9fc6d801abc4234c9fc6d8018041214b9fc6d80100000000000000000000000000000000262000100000000001032e00000000004500000000000100680054000000000005000000000005005cc4234c9fc6d801fbc9234c9fc6d801fbc9234c9fc6d8015cc4234c9fc6d8016800000000000000640000000000000020000000000000000900660069006c0065002e0063006f006c00640000000000400000000000010060004c00000000000500000000000500c375234c9fc6d8014792234c9fc6d8014792234c9fc6d801c375234c9fc6d8010000000000000000000000000000000020000010000000000500660069006c006500300000000000430000000000010060004c00000000000500000000000500c29c234c9fc6d8011ca3234c9fc6d801fca8234c9fc6d801c29c234c9fc6d80110000000000000000a0000000000000020000000000000000500660069006c0065003100000018", 0x5ff, 0x45000}, {&(0x7f00000180a0)="00000000000000000000000000000000000000000000000000000000000018", 0x1f, 0x457e0}, {&(0x7f00000180c0)="00000000000000000000000000000000000000000000000000000000000018", 0x1f, 0x459e0}, {&(0x7f00000180e0)="00000000000000000000000000000000000000000000000000000000000018", 0x1f, 0x45be0}, {&(0x7f0000018100)="00000000000000000000000000000000000000000000000000000000000018", 0x1f, 0x45de0}, {&(0x7f0000018120)="00000000000000000000000000000000000000000000000000000000000018", 0x1f, 0x45fe0}, {&(0x7f0000018380)="00000100020003000400050006000700080009000a000b000c000d000e000f0010001100120013001400150016001700180019001a001b001c001d001e001f0020002100220023002400250026002700280029002a002b002c002d002e002f0030003100320033003400350036003700380039003a003b003c003d003e003f0040004100420043004400450046004700480049004a004b004c004d004e004f", 0x9f, 0x88000}, {&(0x7f0000038380)="46494c453000090000000000000000000100010048000100a80100000010000000000000000000000400000000000000080000000000000000000000000000000000000000000000100000006000000000001800000000004800000018000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000300000006800000000001800000002004a0000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d80100b001000000000000b00100000000000600000000000000040324004d00460054000000000000008000000048000000010040000000010000000000000000004a00000000000000400000000000000000b004000000000000600400000000000060040000000000113f04210c3f0100b00000004800000001004000000003000000000000000000000000000000000040000000000000000010000000000000100000000000000010000000000000001101020000000000ffffffff", 0x1a4, 0xff000}, {&(0x7f0000038540)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xff1e0}, {&(0x7f0000038560)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xff3e0}, {&(0x7f0000038580)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xff5e0}, {&(0x7f00000385a0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xff7e0}, {&(0x7f00000385c0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0xff9e0}, {&(0x7f00000385e0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xffbe0}, {&(0x7f0000038600)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b', 0x1f, 0xffde0}, {&(0x7f0000038620)="000000000000000000000000000000000000000000000000000000000000080046494c4530000900000000000000000001000100480001006801000000100000000000000000000003000000010000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000700000000000180000000200520000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801004000000000000000400000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000030000000000000040000000000000000040000000000000004000000000000000400000000000002104ff0000000000ffffffff0000", 0x186, 0xfffe0}, {&(0x7f00000387c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1001e0}, {&(0x7f00000387e0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1003e0}, {&(0x7f0000038800)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1005e0}, {&(0x7f0000038820)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1007e0}, {&(0x7f0000038840)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1009e0}, {&(0x7f0000038860)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x100be0}, {&(0x7f0000038880)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x100de0}, {&(0x7f00000388a0)="000000000000000000000000000000000000000000000000000000000000020046494c4530000900000000000000000002000100480001006801000000100000000000000000000003000000020000000200000000000000000000000000000000000000000000001000000060000000000018000000000048000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000000000000000100000000000000000000000000000000000030000000700000000000180000000200520000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f0000000000000040000000000000000000040000000000000004000000000000000400000000002140030100000000ffffffff", 0x184, 0x100fe0}, {&(0x7f0000038a40)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1011e0}, {&(0x7f0000038a60)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1013e0}, {&(0x7f0000038a80)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1015e0}, {&(0x7f0000038aa0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1017e0}, {&(0x7f0000038ac0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1019e0}, {&(0x7f0000038ae0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x101be0}, {&(0x7f0000038b00)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x101de0}, {&(0x7f0000038b20)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000300010048000100f001000000100000000000000000000006000000030000000200000000000000000000000000000000000000000000001000000048000000000018000000000030000000180000008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010600000000000000000000000000000030000000680000000000180000000100500000001800010005000000000005008041214b9fc6d8018041214b9fc6d8018041214b9fc6d8018041214b9fc6d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff00000000000000000000000000000000000002", 0x21f, 0x101fe0}, {&(0x7f0000038d40)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1023e0}, {&(0x7f0000038d60)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1025e0}, {&(0x7f0000038d80)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1027e0}, {&(0x7f0000038da0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x1029e0}, {&(0x7f0000038dc0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x102be0}, {&(0x7f0000038de0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x102de0}, {&(0x7f0000038e00)="0000000000000000000000000000000000000000000000000000000000000200ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x20024, 0x102fe0}], 0x0, &(0x7f000007a5e0)=ANY=[@ANYBLOB='\x00'], 0x1) fsconfig$FSCONFIG_SET_STRING(r0, 0x1, &(0x7f0000000000)='source', &(0x7f00000000c0)='%(,:', 0x0) 05:11:54 executing program 3: r0 = syz_mount_image$vfat(&(0x7f0000000000), &(0x7f00000000c0)='./file0\x00', 0x8100000, 0x1, &(0x7f0000000200)=[{&(0x7f00000002c0)="eb3c906d6b66732e66617400020101000240008000f801", 0x17}], 0x10, &(0x7f0000000180)=ANY=[], 0x10) connect$unix(0xffffffffffffffff, &(0x7f000057eff8)=@abs, 0x6e) r1 = creat(&(0x7f0000000040)='./bus\x00', 0x0) r2 = openat$vcs(0xffffffffffffff9c, &(0x7f00000001c0), 0x101000, 0x0) write$P9_RREADLINK(r2, &(0x7f0000000100)={0x10, 0x17, 0x2, {0x7, './file0'}}, 0x10) ftruncate(r1, 0x800) r3 = syz_init_net_socket$bt_l2cap(0x1f, 0x3, 0x3) bind$bt_l2cap(r3, 0x0, 0x0) lseek(r1, 0x200, 0x0) r4 = syz_clone(0x0, &(0x7f0000000300), 0x0, 0x0, 0x0, 0x0) r5 = open(&(0x7f0000000440)='./bus\x00', 0x24080, 0x0) lstat(&(0x7f0000009ec0)='./file1\x00', &(0x7f0000009f00)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) fstat(r1, &(0x7f0000009f80)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) sendmmsg$unix(0xffffffffffffffff, &(0x7f000000a140)=[{{&(0x7f0000000240)=@abs={0x1, 0x0, 0x4e24}, 0x6e, &(0x7f0000000400)=[{&(0x7f0000000140)="1a95", 0x2}, {&(0x7f0000000300)="66eee71f470eecd69e6df40fb4db0335a90575ac2198d508ffc3908e8b6641a7745c32632774cf3ce76aef95a40a23e0c034050a0f3019ef36af641c3f1a10f1afbda519fc0592b380fb1b0537b87eecb165a2898ebc4213563570f71fcc934d44ec4ee31514d3fe11ca4dafce3b81fac40d79ae1a35634677206f8b85b235de66c2efce02178100c66e61b4e12daa0cd59ad0d2c260f29ae459c22802887259a37b75e2a07b31f75b60f1e7ef125cd1f986fc9ca3f34530348c968bfebe9572f4707e5a4049d0c04b354ad1c4e13d54d93ddebefb19df2b17abe6", 0xdb}], 0x2, &(0x7f0000005880)=ANY=[@ANYBLOB="20ef80db856848202efc11b40000000055936910214bb2c771735a0b7b3a926d090c85e9c87dd043987a42eef61ddc28ef60521ba15dd3a6c97339f787f13c2e9d6fbfebc9466ff7bba60adbfd67304f3fd3453914c1fdd6e3df0434b9476337bcb0484cb0f177d9eab299b65348b0da1bb2ab25309fbd8eef15082ed9d03355f982a1034133449222d68503d554b294db3317e97445eeecb176125f2be7fd5fa040f70ad613bf0b02062354f943d99ee13539c6b94d41966b90ed27b2f78a70debc36672816e45d092df0213c50d8cb818756ef32a64e3c3cfb344755a958", @ANYRES32, @ANYRES32=r0, @ANYRES32, @ANYRES32, @ANYBLOB="18000000000000000100000001000000", @ANYRES32=r3, @ANYRES32], 0x38, 0x1}}, {{&(0x7f0000005800)=@abs={0x0, 0x0, 0x4e22}, 0x6e, &(0x7f0000005500)=[{&(0x7f0000001080)="027753448e063d513e19c598f6e980c537dd8f30b5290e1efd36835590ce417ef3c633082fde2399b1ef3d60d67afdb3f6e5c5a47a90f032a730cf9e1ee56cd2af89a8c3c841dbe88b21fc00dcc946c0f60810c00fa8604a520a997325951e25744c71cd3afcbc25da3f2105ab7416647975a0c4e189195bd2064b349b76da28351116954a9c97b73f7fbaf73de94dd1b26d8046f4adb34bfc84c884bfc1419404641d8bcd76c2c7eaee9c6a083ddd3174402eb0b18f03e0066145cc33bd81dcab6a13005cfffe0e92401b6a3451db39b976579262d35a927cfdd3fe66c1ce933b89812881514241a8dc17e2845e2c9adfe8ddb10421baa23655e0b3c94bb4842fb0f5ca296bbe8a58c08abeddafce4d546a2a5f471ce67fe06e44fafc6c159a4f268e885f78d59df02990559cbf26ca20dfd36fc91506ce7f03f8b9872339f6a344c07e45cf3c4803eb283a9fc65d2166feae3391f0d95f0c0601ab215cf3c9fe19fb1999ddab709d74a0c77eb973ad72119b5a21ef9a8ea66c756ced477abbefc871d4a1c77807638cc2f09463c51a2f8a35f789db22cc5da1907f05f596269c0f5030a6a39c1936422560cc3c6c2cc54da1eb1bfa419b8aa554bc84cc999f9b49dac78a4cd49ca24767bc659b94643ea5b442fba2e30a416d4b1fb40792026e27bc1b8afe09bd6e8626df35d68862183c6dced0bbc3538a8bfbe234805bf7304762dfd20b720949ea653a02ce3fb417482728fa90826d070f06ba35f7068b8602ecbfd95ec85ead8712fc49cf96b614b8bd29fec92004ca2ed41f06717400e05cbc5a7c55506e861086ad954d3cd4ad59267b5191676d2339d40420e5095f99ba423d39cf411879d19ff795a2222aa78e4ab043a7fca9a620c93196bf386674a61aca3845894c7ee4cd4ce7eafb71a1b56cec6591fa2037322ae0d5013674a4d74efe3964c4aded59a26d494bb58c2eaccf5fd806eeee24d0b64bf6ea62e079361bdce8d71f1bdaabaa00319b3012143b0ebc50a4a7a6a2ed7b033240c4c975553afede9259228afc65890802d8456fef6eb1c83d490642370be6a0766a8cc736c83b449382ad4226f6032011b2cf375ef7146ed6eb796a8eb698f884aaeb1f2a488327f89f15ae227a3b0b1130bf01dd954f9234f0445b808578bd1763d23f95e13f7a410bc8e0e211587e320c53e9bd0ec07b36f886c466c34ff949d26c85a2234fe6101bc02eadf7b1b4ef325dcac3198a59204e2187bdcc9b64ab3d71503516aa281845ecd2367666f0bc8a58454715e4e03e14094f769d557020e19fb66133b2bca2dafe0b606dcaa632229c73520ae0ee13c3d0b3ef04c4ca3d15b3a62ac6683c83778b62c59734056998d4f114903dcc8366c68850189748ac5720db8610b084c9ac0a3264de1066f85af454ab4cc3da015fb6c41a7b6a7e9f287554bf1f1454645780486898d7220ca32fda6822e335862f0d5397e37acfb9b14d191225826043728dc0d24a1c348ce8e990d36c44250a03e083fa422f429e139fe7bef81f4d9cf25ecb8160bb4f467a7b0ead64b1fb3e959554dcc546d9d9293c9b4b9de1cced3f417029a0c61d38fee9b4accb1ddf697e22d034682da8ba7ab860b682f2e8227ffca899ba156bfb61512a0e5f1574491c101aa6567cd765bd6bb502a1913930ad9a19d62433a3adf58ef8dddd8544240ffd37e0658eafaf92bc56b69044af2f2c3da253e79a66ec67bd41f1da0a10382c1dac2cf62ef43dd00c7b0cdfc98255cfe5aa569dff82431df8d5487375417eeae43d5d45b3119c6cffcba2aa86289eae4d0f6688c5b6342c5722231ef81b42527c50ffb38ec285ed1d66f6450bbb55a109b8fd97141600ccc68928ce752707e9147b3cd57d5df9565e3ecbd24bd67f2d8ddce8834b311be4828e556fc05c97a23596d6670132b9d341b2d6e8a8457eebd7bc4ae0e5588ba9619b935f0cb7b767aad027c2984ac8241e13fd30f2167e7e2c454a70743ed97a7c96f5061527d966da7c2e12772dcecda1e70b4ed9567f12fdf22cffd5aee4b9a629c4c31dc832b67100dc251d7c75197a311c2cc4955fe53dab2e91197de20d5c7f6f40e965fe51b3fa6eef4c45a45db8f2589b03235524ff542392e7ea7e96165490f0c008965e1f5c48ab0d2063e3d45a09fa30171b7cf644aa27ece63439df51d583989aec6f623d142a5202cbe8d381e98c5b7c92ceb541e833b9f85a5adf32f733128e221b2a5ad095dfc06d20a74d99d8523fd3121b79594c3c76b8edab0a8b8fac4c3635f1a8585201ea59903842ae69c324b418eb9d2eae8a0ed6e9aeaad4ba1d2e748b3e6e9fc5af9f09d8c373c015bf4f2945277c1b44f72533b2b5f1804155fd195f0126877ab2135178613a8e1454b11938315cdde961bea74adc4f4bbd4917ec1467dab772d8aed82054f2c6a58f0b0874279ba1a343567a5ecd26fc3a0c2d1382b572135b3ad4f89b6e120262290ce4fafa4cb5845a47a7f587c6516e0f4d40653fa5aba06a4ca8ea4c19f5222af1b53177f5807b4eba15f2dcb1388f3e552719b3d6a938d79c78f09096e11a32c7c62911b524ae903e69882ac45cf39c94a9af7ae2381628f6c967d5eb12c0b6675e07c580f8d01723de66f6efc00f1ad029b74f79bf0d5dd9e3b7b84eb412b84bfb834457301e083517b1b35c61a78506773169ea51bd7010fbf34fa4f0df7573d07e433c06b3dcb06bcf61eb41363cc6383ec1635299a1f07b91f081c4cc17d52ba73ce9a9d3abcdf7d407b6aa4f71eb544ece08c4de1c1b92e9fcb237f402c703c3d1b1ba9dca635839bce752d35d4772b3444f5e39ed0c7a9972ca56ef508bab40c800e2889a134f74316319188a0272be77285f2db2291549dc93152bc58e5f3d576ca4804e4e064e1310dc12eb5ca82731541b9df8c4d39024f8defc259e3a64c4e268c3b6baaad47000d6cb7f3019792480a571f4349b227b82605f16f1b9a8049e742001a68de0bb66dbd2c84dc67e640e2c05f07b06b2c1ffeaf127354d20fcf9a1abf39212c2098ed14caca4ba5dc059828220d41eea339ce8bd2317d52d73511e0ab6ca6ada2546d8026e988efbd814d1e5744ad0121cfbc4947610d954b81bb08e0f5ade269c7c1071184e0a1c50953cabbd055e3017b6206e7426043fecfcb64fecf2044093d16c5523765242327077693cd43c1bad7cfd1122868c992f6094555f20be308bf20baced6aebad66507a949cec8cb0afc0786dcaa43aa41a5412c0eb5973f29828505e42b1a3c6180fdf7d2f276f5a41dab66c1ef4d1d0c2d2f75ff47322a1b62133eb293921f0d6d83ea297ae5518e77362ffd7642b13c6d904ffb99b2a23e8ccf16fac5656f94eaf3ede6ca991d9f9b18905c47e7e3d74e4897bc0056ee364f98f29464e4e01f6a53278476b82a258eba9031473cdcc13e50713c18a5d48af8f908451cdc7500fab6846017f323fc538078e69cc9f547cd0e4e90852b0c702dd0ade659fc828ce77280e67f2119675508ec8bc14d24f7480b345e1d4b6118c785da575ec576d2a3db9265fe7e553e583b1e2c8f3f5967e3824541aa7a49d07efb33ad85bc54dfd82f93646dab2afb14fbe2381181128970f23266293c19367590fea591ff208acde322edb7e4370a4cf1c532645757478d2acaae087612b4293ad13b390a7161f200ce56b6e0c956b0d108377d579eaf1b860d8b6e623867c008ced014a22a23b2506b729cee407b7fef8b7fe0c94ae65f32f8d2d73f8a4ead6c374626ca5b0928f82813f949592dc43f6b4c881b313e35e69e832f13ff3a22fb728342decf24cb856fc485cacd8cb0fefa6760a75cbee84cb69ed8e60eda6a00acfdb2f4b0362a8d6d5640f0572c6eccf3214b2bfc4226f221ba07ab51b25469d3b6d767193a8f603d419ffbfe9ad753581bc4a19cabf48486ff1c9c20b9abd851f7a57efcdab4f1d989eebb9c198cb83294ab1b07d68ae10099024014e2bc1c0d7718c3562bdd3bbe12bc0c3d84988c783105d5fdf04632d1f20e0bed642112440c97987a7e5f03ce87e1da30ea83fa5d09a402ad776b4766b062a9e978877bafeee6383df3a6c4dfcc44297d246f46d56913bef3df74ee6f2109cc07d30075c3a68a2d3acbe44705eb49cce397ea043e268333c67828aef76f462354cb30f2f1fede97189eb21010196870a2667052f8f8d6040b3cb51b80f97728095a5bc7f9cfdcd03c47a2c6238127e67599e2fa6cf4d5a6dbfe8ec2496dbd2f26a6b5515168063b3b66a54e86a87231d0e06ce49b2ae3b428578b00ac45e77476e793efa874e839a2976288f4aef23098843a14cefec1aac6b9e903826eb4eb2bb9ea3a9e8c912da7ef491bc78fba2bb769fba8a7ceb44dbaae371189cb5e2d25051a62d3c7068cb891dbe8a8d070633a45af3f3ed34be0f06e00a44568f22baaafd5b797d2c5f8d285970eabc46b9d950e6469b3c17008b1aef5e92af9085d5fe2c55dec67684449b1c297cc270540d654c4d5a8280dd174b7f6aee51e616c710cd2bb4f67210495c888f705ae501f7a15ac492a6f566d363424cfab7e7b90e8626f3f230d9af027cd9d208e1de7c7a37939d737ea8927b69b7aaba8fab0a22523062a4083bf20aff4f6b6e642b7165cead610add9734769615d33c1a5cc716bf3dbef77edf9b2d8f3dcfac52210b4f127e68e57092c44f89ad41917cd84f11af284e71271e381e0e1475659d35f0c079a86ed6bd9a88d6fcee17ac5cf2b1bde1bd3df5f7f35dd784a1e745329b74cc80c58728ea8789338bd2652e7b56c912ce61df136e44238cbb55fea3e24149e353768184c42fdcddf6d66a797ae148080511a71e0dc84c6249edaa3fbe70545e1f86f4d9ef24d56349ff4a489da22f2a4f77718d24fb0885fd3cbb536d6e89246f5072fb4f369ce7c010fefa778484987f1915c3800978460ecf9049bffa7f8c547a944a846cc9edf9cabfc4197e9ff9aa3ff0d8dc207b3f3aad27086e2b7944a0f373440d3c785a8d8a3ee162c660bd19dddd81f7c709bd61b816d4d3a266ee7ec56c4d84de204ef9e0f6df43c4a2a0f4cefd04e23d9588c9b50f7aa4fa40a9b0dfcf1dbe828cf706fb380c406f285b2ccfbd8457204e3f4050d681347f0fbfc3af07efa43336e24f34ababa4a9e3e345bebf0e766e22b3a9b361af1e9f6051566fadcf0088f08f2b4b8e258e31f40582f7206a4dd6095bd18792e2751c9cbfa8bf9c240a51a4f745bb0646f5a042a5afc6b4314958f05e800789d750a4d6d384436b5fc1e30b0e66078011e38f293422cbcaef28afc4c44030fbbb40305ed47fc6b451da819593356c623fda45d07eb9aa595ac008b06409234781356d8c0546f79a7358ba38c7bfa49c79ef84f38a11cca86ab71d85d4e21cfa99c764be0218dd7084775e9b6c00aeb3cebc8db0ec1472b89d2734e19d27cbe9d8bec03fda3492427cad75b9ff3f74709f25ae1d92da1283d759b18c8c4771699d37b1d5f7088ed99b1b8b97e554148df1defb95cffd81a785cf4060c5201fe0fdcdaff9f561aea330a03abdab60ea45de886db10f7aa5e0d5ee38a6ffa3a0b12b5b7ff26daef1cdde05d6ad054ae934eed526da7d7ce5b59417672828982c0039e2696dc26a37ee9fb8d38b7b31e636052e19b6a4356456d9a4e470c66465aa63532d737daba44f8e1f048cbb9aaaaa769c893963e626e5c11a27e3df80dfac20af2ea3ef05ad84497f966cf963546ce5246498db7cb884bf6e614035037af809e778a963da83", 0x1000}, {&(0x7f0000002080)="540445e5e016711e4cfc3e1b2da0f18df0a4a93c90f772c83b1a0567a9bc3c0af022db68e79002565dbae91a246a1e9c29b5f3ac677ddecb9ff3bd864e579113d10b19168553cc63986feed5e60fd1622549f99e6ae9619344e914956acf2c64ef8e59a616fe24c2704fedc45fb3866d36c287617065e9d9c91761ef49c39f577a30adfbdcadf29b83da1f3c6b7524ff5316ee56206b696de4e59e2d83d459c74e", 0xa1}, {&(0x7f0000002140)="44d8a4e3c54db2802a45640dda86342f939654a48e6b0d13e333566194749c12f28a38954733f674cb0e9d6528605e422d8d1f923948e122834aef13be1e299a8726a1c1f2d353b6b9decda16ff4ec01ed2bbc89fa371d1ee71746a3", 0x5c}, {&(0x7f00000021c0)="3c848cdb9911accc2ea473f0a666184476e19c57a17c207b04d07e7b722383da169fd0d1b899b9d3afc1037d45ba552bfeb069c570e26300e0b597c3d8d5f0749849e06c63bf29048a2eb80eae99a6ee35101f1b30229a88cc466a872ffd914aa75139a5ef4431fe864e07f661458db6258fefbde4014b838006db60fb273502fbd1108b98f65cf17473211c51e406771f6579e4a4707ae3ad160791b096386a03e411496403b4e320d509a39a28136a983d41a653dcbaae60235be69fcb85e71f74711fc1569ee5b2f4b8218f0894173dc41de5b787b5e1e742aa1374122eaa47771b62456cb7c4c6d81762563be7b7559ac1090b2eb43e8aa45996a12ceb26d337f259d6409f6d8175c0bb2b1441d30be7e8e0090d8e57717e3292f53321b3ef205738e0dbdf07a2e99299a2560204bac3c080005c89bf80340b8313b1b4b9806b958d2908bedfb865740624190af4ef9053c8e40d22048852255a62b3df8ccf4c813d672d60b6b56d37f877d4a7cedb9fc401e1094999a7438b11e78320f59eb592461a9eeb65a8ea257889b11ae26978b0db2a8bb4e23fcb0435ee5dfd1cfd7231dd7d135e50c9bde769b6f98fd7d5ec46a48e4e174a4def026d932982ba8197610417a3ca7f0e14a9c81d6253e657845d4ae8d8b78d2f7694109cbfb590f4eab6b86891a6f24c5d67a9678a0184cbb2e088472b0ae4489a32dfb0a0b443fb2e3fa4ce58e13469d009677128611ab96a8c96e8414db250b5cc22509fb054c595207d273c040323801c97ba569163e07c3fe97129bc028aecd8a557c07f9c8ce1648172d4af3f785f02acf2089eb5a6ac271e886125ddc7cfab188094bf47797b6cecda91da51a8fb42ccc07bf7556d6ba323ba88a8658734e8aa1bfaafbe6dab717d9b9bddf95aabc1d0cc3caf1fa5077a03297e9fcc1b3fadfe4d7a25b22c4ae4139a54903e10f8dab3cf944b332d1c8e62ff189b2b9633441767484337290e9235e9c04d9d9855e663b320dfa7497054460662274a86e974a5ef53654eb8670ff64044ca2c015192e5f4a236d4f56ece5a28e375540854ee1740a0f50468dcfb458cfb0e2aba513ecc07c30a4c813cd4938189074257c4b7a932f70f808f2a894eed862700a708d75b2ae5b6ed18e27bd804dd1deb45cd9390aae800d9dbfcde855628ee82daa24f2fe13f77d4374dea6fb026133ae4d2f6a3d9dd2e71ed9805fd5e27cea752888bd62cc267cb2e615b75fa68e94bcfdb8e37ffe12fe775c4a484fe9a8f4a4e19cd8a011eff69812e2c71d9245a5d2d662ed48180f52f8a3b95a40ce75d57318f45d217586f14437f13c921bd59199035523d66ae201b7fae5af58f60ce5198ce2bbcec0f161ed6ee10733e3359f5e02366cde6d4167e5ddcb66fe5f1c8cf35ab61fe560a36cec768433a81f42609f805868142f2bf3347274b4c6e87333e12f0bda410d077caf0ae818a93a3465b1abcbfd1f5897d8be3e341eb374b081556018dd50b85dd6605ed757227a51457763b19731ae075abd7ce9be36aabcf6a49ac77fb1bac6dcb8bbb8525b0610d361c0c82ffcf9583720377f2b8c7925b7c0bee3967cb3af7e8dc792fee3facda1e5c1faadb75dc162d614fde83b2fe6b0dcceb73488d91451063b5ae16adba9c1a3727bf254b80ba8b4ae6b09f468963d3bc301221dd1f369cdbb2591d0531c52527dda8c666d79fe890af6ced5bfc0e0214d30213b95e038d8623d2157d38c55685817847b79bce84ca476bab0e1c2db4a0a1f3330995f3bc85d7dfdfed84bee30fe3aaaf797cbc6219ac7cdd8f12333602d2b955168e26ec50d5894b6409b3ca72560825ed5407a0d882e46a4ae041deb1001f72f2d531c7fc3729474d5f968effcba67d2970d496ce15e3b5b7f1d115a809210e1651b56a19a629c3c7dfffd7be37c4b89b10b0d6a887001121bf8cc8885ad98ac3dae104afd70b7342cfd5b341c3976b5edbbb871266c81c7466ac8127347ad5c02cca2e10dc27e260cfeab0da5f7c1e318e6b200c423a053f9c3d77bc8657a064c355f2d8345560c659c448a5b2d3ecfe0c912434e1afb845d4d918adb3b4d489cda2ce49eb2566554448dddda30b02f5e84579522ba8d1af0c821470530c7a65b60450b2f6b944cf69795b1acf7675b4ffc57ef71b7cebc74adcf07255b5c207e891ffe22c769d9be92bc46c550f1f0436aaa59baacb18ac335b4b989d13f4350472de8ee8f6239ea3d6220218cd064608538ea4b3a60f39152fcc3a61c9fd875f3f9cfe114f65aadefbc91b2f8a6401d585fc9164f2974bfb1d11c87cdcd48813dba185291194b5671aa784472cce144166c5e7f1c342bf4ae42bb4ce98a3f13c41c07487d8efc188be22bd41a795b536d7a1fdabc0918e2f39335d525b98ca9e5af6dc9168eb664dd25a843f862736e7365869caed1df321d5cf36de1a9f27f6f46d9d64cfef641ff23637588e29b19ffb031d276fd765c15214c950eb99933bf9a92f0041568c4c27ba3b307958fa20414f366296ffce333c368b2df05495ea9ba0305138811d8d7004cd1b1c1b99a6d022af4e1ad199a9eb40976e68c87e08c430c96dbf48507189e0cd11e5ca9003883d26fa94053fcb5877c4f64bd79b3ac5d96683939394f7f83eafe510427a43c259487aefdf77de15fd9cd485a0f327c2d5d21bb056a1fec58f68d0a1c92990b4b32469935c75f646cca7a3ba1ea3450863fc113811a155d9e4f65b4bc114c5d20fd5573d8fe0939e662bdf4fbee76ba0f048266f87708e07f86b210af6a97a74027edda389aaf3155ab55dc9490118ece630743d2fecc8d41793ce4a787ae27d07d46680445610a11a6ab22d4f567bce0bdf440acfa74f722d74456f1d28ff5c05eb6a0580f2c9c4e44193d1de1b501319838bc35c59927be2e95e19ef60260ed082e0097e56f7a51db781efa5e93c751a0dd5b57016e187c8e3a3705db1c382165c713e6f55d385f934d98b4b8094533b33e03f646eb92672463a6bffd660b8bcf4e26f5bde70e76b9464a7182b0b43a486be178ac8a3a28152abf489d79dcc5d809d335c89fc4a5e2d7cc4d6ce9c6f439c1a8c31ff4b1848e475aa0027f7d4ad16a3207127d0221445c058d2215461d12125bce86edb5cb995b64350946c6832553bbeba838ea0cf7447f6930a841cfa2b907158f1c59a99a2e12bdd8a68ddd3d7f3b7fc7ad1f489e52b723bb5bca3f18eac5542cd14335f5b1247e3852d1dccb79fd699ffe183cf7fcfdd39bc82f5389753556ccdc4234823c7ba07c552a87de370a9b77d2f62b2c003fe40e55494ac3451cf6d9e482ddc7546aba145e43f92427dad1b3168f55019cf3c0498aa6db1179dc7cabb7c8ec12aad31856cc1e48a9ecae00d97abefb19f378f00e97201e80e2d648de84e75b487b08041bffc2ef2f3a090b134b3e43af0ba7472929cce96cb40e684ce13dd176f134654da57d9953d3120ccfd57c2dd3e2f4c453becd03a30a937b469200fd1f95603d316e3aeaa4b100534c683d8f88e1b57367856423a4d06915fb9491d099f15111f24be384063bfece64e3891423d5cffcf2393cbdae40f04585253b5ebe530ed860188cc7948cc3c35d66b7a5f3eabd02f4e261e65f32627462706d9eef18ac686b3318574153addff5fe31fd8a6ed10bc20b238d9f121a0957f5246f5800a7c7823635c6912b595257d3f63988ea295021c14f01fd74d4c546ba3956a9688ed6403f4b0591b1c1eb9947f60cf54fb8b4cd57fdb67166226399f138dd910b926ef27f84283c917abba848d6c2d367655697d34163cc8a810a693bb7cc8dd6118263614b32a070aaf3b58530d11f0fa5ec7e92e920d757c958f8523ca0917aa2f23a6f3a9c41ca0041525508ca336a16e2edf59883469639bced868042ba483a52ed345b4c2d881621b5b03a74b8564ecdfbb9301d45bf0f1ec31678175b7e75d27c6f740e27d04812c297568fbab3e030edb6259ed9f05b5aa113325101581fc659bb65874a0b1e1abd4c8d64d36e71dd00bd02bb1048693cfc4fa7cc2bad2cb9b24fd850fcca91e1a6773dc2b20f2453234c754ea1667f8623ab19fbeaad6861a3039e0a8bfade64c36ee73153974c1a9e7f92d48ad7188ec7eb7c884960e02519f7efcbfd8bf19a46801c64edd0efa0c44bca477d598844903b169e173e2179b4ebdc658b975c4420e890c96981a66b1d1a3c6cac8ced46ab8e61537bf2180cb88ceb831d755892d3a74d56a40a6ab1896a8dcb7f1812dec649b051353b6e22d2a0d4c7bd4f914cf81bca2f5e519f537cba2db7f02be06312e391b165eccb9c63795293f067bbcee43f444c0a4042d98139732718bb4b9ea4c38466251af1119f2890da4fda4397b2eea2cb32c6db874bcddf1a67a32109bf4f2d176634807418e43108f71f16de108553cba1ebaa1ee2ff0d76a1fd101716e1d5fc15c0d7946ba00409db7529dceceb510dd6a7b05d4404e9ed3cee6f30d530fdd649ffffb75da6d6e42838b70e8cf9e906e71a7cb2204d757eee0795599f7aef646585a871d6fa025b72c6bbe02896649f88408e434af3fdc9da506ca2fe5a4f3a31e857f6aa682fce2e7e68869ea19b66a324b6e554b6435cf94fd8f2941c84ee6236696d311d92ca5ce9c3bb17ad1c83c8aa920606240491424e59fa88bfe848056fe402c4b7ecce28ab1f95e843c4b0b11bd93a3f5c9a29ebb9b0a42120efd5c6ad428d48cbd5b4e1190cade3bd8db7c03bfddf0737abd7607987311e43315d136d19b8cb970a0c928dd4d6c9e9b3e57db5028c3d590176b7f62dd9f4989cbf4a17ce168e66fd3556fa1fe2be6d6180aff5f1c55a913eee0a26cfdaf01f3c5265f66e0a18b99c23f85b092c8d62a5d144cbdcf0645061e73c9165a35e34c604a403c42f02089e72497ff93bc0dd3da17399e8cbce4c38b3b1f24cdf8b32825f4cf0b23146d8fe79b4a8b52001d59b92c17e02e6664d3cba95370d30720b29d4c79359d0ed447230e8eada1f72a07172bf41d73db8fb650013e53e63f63e4b33b1ea2446e1d2899028ae827ae3197941c9abdaf12cf114894b15f1cb1459a730a2d91881b71aefb79f445c945b7e7783d0315ecbe7c68744cd03e7d2f7940eb2f33e6ed08fdbff6926f1c68f4ce8728fbeb2c08662e94f0a2872f0e7ca5bab29c2394175f58fecf1ee73c5120938e4970f8cf14f5ff18e15f0a288c4a632d3869ba10790edeb7b8eb85dce82b992da7f29318da9c7f7c403d71954b86bba7a0c15c54ff5e4956958f6436f8638b1f067f04e22b71e0f8f407f6997101d96c943625b3e547bd2561438ebdf39caec4068f70d5df64630c63b6823e99a610fabe582c125609d4d2164e34c358a2a5b0210ff34457a1e62c360487e44798a6214e6f857c3be27cb56d7d6cfd5670a5acdc374403d6f3aef9c63f0854180d53253ab3a119275594ccf4307b3ac807cafb04a5569ce6d37fa77d8f77846f0a0e05cd9ca49ae9fe97a80e43e90cf0f700427c75d853464f4947d41b770fc4f3f352077ff92b5854e5fa777a54818d93b8f1c6c35ab6380c29fa9d8bb9f27e632f90ebb44420a3a1b25b67f3efd407c8223faa3c299701ec899c2dc084f8eecd5faeffdec32fa4940d1f45691abe02ea22f9fe7b118417d4ef61c215f241d542ec5614a8fce54b11e1b34d63a9f4c457d8f277949641088f5bab0503b08c6cf48f74ea66f550766afd264be966140770d06e0e0b16fc199c10f245e0658ff93bef06fb614c3634772bcd50ce", 0x1000}, {&(0x7f00000031c0)="546c8138870e11381fa507f18da23af50a98caa1ac4368174483969511cb5b5535670c515294d0808b295f7647a04e41e8ba68487edaf3abbb1ba3b60c3d187c99112530c2ba177579b4e8a94c97d04b53dcb37e9b171dc26378e2495e049fbef68a876fa23ca83d28662e8f28da7133d32d2cfcf454e2d2a9ba257492d18238354ba8cdeeca31df1f0a27a837326d0381080e6fdd22179fffac802e9ddcecedbc5487a9ea0acc95d328fec2cc98283ba8a4d496211028e470d2bf7faa52436269d036c60c7710da4a29c212578c363f2884105c31a50f50e74713978ae099b8052236667d7ed0edf5e63e63bc7eb19bc217702f6b5f155a62f3a582a9175ef2845bf586ff4377a815701fd54767751c7bc101b85d3bf459f545074b804a95d6a4ce9f5a118122cc7b50e74c18506501653025657d65eada545d3faeaa0bf8f1e699db773cc2329491e752a73df085b122bb5f95b53ef5f9f12e2265164aee40f000b9ebc29eee11715d3f2152b31cac121bc53b11bc63fed2f45a5e0a62a279fdcf32d152913bb6515137b4eb16408d473b19447288b32f76c8186b9143226503c3858448316967e846809ca6ada1dfe00f5c06a21563217bcea079174e26bbf4996a98f0d748350d6b704a399cd0a791f9bbea0a2d1bb28da590b6022c94fe62682e4d85c9a6fcd98475d31b82ce6617b321142aac2364fb152ca77d7b819cbdbc16eb41f077e94ac4b5ba74eaeca0dfda6f9e82e58e8889c8bd837e3c2cccf46d39954f9f4484b4a04a0afb0db68a6518b9065062f78dcaa19cd0b32d57d5d2d43f307b7a7e87ea47a320133a0434e0ed953dc372f7aabf5f3820ab5891da1da4f3e7a4c777159ff920b0075040f8d9bba1652e2ab6329407f251edae0852131f6d17cfe23cef27316aa2fe59a38b336617b0ac453cf6d2f50743f20492da9e6d6bdbff8afe2ce45f726502628e7541b641219c65f3ccdfcb90dfa0466c986a687efe434b538b88a95dc8538881f9e820955eecd3a9f2ef32df021cbcd506f239c7aab43b0c3bbcb44ec8e86f2f150770d70c709d69a6a85ab312b0086f8bbb9f5d0b1ff642f68df9d7f83fa6b62940925238fc69d4e7bc09435f0cb84d567115a07c1593c0d9b14cdb150fb57b555105c96a3a5eef2ccbc737d4eb94c6bbad9c7e37852050ed740805584f64c81aed4203ab8f91d5e07a90c94d37712c8890d67394803b1a0c1adf347f8820750c9b1e5c512398206d5aa645a1fa9d26e4c77815b3e651f731827c530aa152b06e833984eb7cb9bc914d67e015adf74a8a250fde5373dfdacddd249c453478b6b595fd03211af584f05b07c588aff0a27f75faa104bf8a7665291fede392bdf27eb330a38fbba64a257fe307672bf5027fc81bf2e8ef2889fb4327e7cb185c491c420c7e3933676b8303d51fdf0b0ad533d88cf51f3dd90452ec29f659c052e84f9a17a500218218bdc52d73ef466561aac3aa2a4310449ee2522c547dfcdd5fde4f2dffabaa30454d7f4202de41a3b3ddbd80534f34e15bc9b0409b5357bafadd6fcfb0a8e3a8844b03a0af83d4d10086d7032e449b067a1fa42f4b3e3824120c630074f6790fc3a4d5d862b3bbb4ed6a79d5b4abf0671cd40ea5b140aeb0278cfc807e6515dedec1d31e4d0638f9288242c2690065fa41a7d9f087f44fb22c2a78ba4ca2c66a899a2c1544489ec552d35989e5a7e9920a23ea7bb7cdd9efe97b3a1760d02f76bc0b6c1c70da919b10069d20477272f7957257ea8506c0cf8035e5e0cc9e2e2b1e5cf14b6bdacfab37e789ade77dc432934fe2763b22429a8016ea1aae918531a5e41d7d08979f2dea53b71916e94b740da06722f6c678c85f4acb59091716ba368e14322e7039d1e4521816d7b4e7b66b0101cd0aea4e71b9ba4e958cc3ec9d87032363524b5cc646b67ccddbd09f269f1145db99ef298bfb41182a3b2aae6fee3728e88f57f6857a8321047c898939e975f1b1ee716837093e704340ef0adf93e89c467a9dd5746cd5297ab7038665cc53c9d8779c6b001415c5466df9913adbbb37a33ebf657c3abc00ec4ecddde076a4796195cc6914d2eef2b5da084009ff65ca2f1db16a00d3b0f450ca472126a73f87bf26122d420a933f220cc42c2e89e3da37ff32fd0b5aa644c3343f7e08f9fc808e919f528560cce58ccf02724822ee56a7feea13e419f6118c1e6e1bfb96cf030b609b5592ab9e835ba9d18f969a8d836e8a21bc7a472865bd41f940a0b67ab6fcfd47cd82ee265e97500b1b523a6fd721ad16f523a5914743b5ca9cf1ef742c1abc139e4416e0cd22cdfc52b7e4643eb8cae0558b36beec436d4c6f4d5140637d658c355664c9b021af27bace8769b8f38f2f151b14c7bfc39274d165a843283799d157d052dca4da229bac0ab1cff4795c4c6d6c86ec18f38b09000c5980eb83e176e377889ebc75e2c8dda0854b7cdb145081567f4bc3a761ca705dde0d0b7c70cc62928dcf3173b6e02600e77b5ed4c65f0c55c44d55a92371bf6dd662d3612b4ee42936d2609065faa907a22512c5d62f65a459ba55cb34b8957d6c0d6a0d74d7dafc5f530d715c4ee4d70702eb74e5f237659949bfcbcd1bc92508f17709744bf13daf2c08325c6f255efda7c621d6cdf2046a78d44614143dafa11de51243efb0753a90acf5d43afc41d60df135b15c408997cefae40b19715f584b87347e42a8b4d50117f55a8406a5db667392ed9e5d1aa87ce088d596dd26d08836c2dedda1ced5625c4c867f115969cca67b83f5989d86cfa97faac2c24c1cf6aa8e6985d768ad9f16541e3978ee4482697bdbd8fb5dfbaaa239fe6b02c61676fc6a4d7d878b95ef8f03966ba903457a5385194541cf67b64ae8763c46f253b153d671325f206a8a93c3a3b5ac9b290e05112191cb1fe636beae5d43db1fac1b86a792404437924c6f30d374c294e3363c88bfdfd8aeac54a4d8b97d748c178fc21287133441f8d96ccb90f94a5308e229763b72564be3f4f03c71da781e5b7d3557c1295353d14f05a348875c609df8c5e4fd56d4c96b4b1ccb63ef359211da1852d107efec271b29a3b69baf0cecdcba11563bbcefdc3bbe59ef9b25bc20916370dabb214c4106133193f0e81896a7a9e4d8d40147601ca61117227001cd96e6638e213aae7e54f2777cfc7aa6b15bae756ebe100d279ae284a08d86ca2fa8ffcf07102e5f27accb5260b93a892fce6a8c9a62999c5255b2217767d152476db2ed56711593ab0b906d842347f7c2482bb022df9ee60d837d1ecca3c1051c1491e788040953bda3aba0773be4606b29f69bf81496c38355f3d1fa43d2a0a2eeb3ad542171657edec75ab9df7e5c07756489719368f98e4e828f3d4f6720b5dc4455c5209c8c1e438556371ae21a446d430c8727cdac0d271a3a5cdd05c86d080639bcd752341d79bd791947c73c95fc4efd44086c8835e7e6f6bf80c1b7fe64e52e5c47786c1ce56d1ac914fa2263e6b33a3eccbf8bc4154d2845d1a08a357cb9ecd489493bd70c127a4b1364460ebfcb98c0cfabd27c7838fd90ee5cd2f238902db71772e60e3f8f3d09a6336231a23aed6d652bd6dc0734a0e83ee00a12669149693c316effafa139a189c03b1eeee835e3ee0f9b63558b3a2f466f64ed6dd69535f9474c8523d89c584592068885906cbf836104fd60dcaa0c7a01fad768934419809f2cb212588a3da447171bf673cdf295f0d91bc8c73e97ffd1d20e5a4bd5bbd1b4d38322122544e9eb902fbbee65e7904082c3ddf1e399123a8e36cb15d64ccb5e60f97d57eeae1e72e8ffaa90c5199486ff88c15277f78ed3decb580fd511794a6561a1b376f009d3ca9927da21a1b3935b610d21def4413355a0983d7563911f91dbcab996afa2323e83fa60b643a852b587f3d7756a81a5762126119c9fafbbd2eda51cef9940fa49afac49e76873074f22cd987fd82e6353f4941314a88fb16cddf038c891d15676b2bb4b6a1d6a83928ba5c1b85c118b8ed1055177571e9d8df055cc0836a9ed21c09ce2445346076ee767a87829de10c2ae8854977dede389b0c9b23d64460331c941f42ea7b21cf2816534d0f20ef78e85cee3ca3f08289ce5ab354b61dff6941a3a0a6db45ab7c1560141dfc906ef07a5c0a27669f0e4fe266f7e691e7d73a6b72c670deae38fe2b6ed4e523181bf14d6b358e5e78bf904dd4f1c0b5675eada532fe180697972d9b4e431f0c6572a89a6dd7da0413d3fb29ee66358f9d65b77c3e3a5c59c313e2cb8f5041673b56ba04689341c8e95dc6f2f456cf0bd31be3a726f2455a50c38f1bad49cdb6f5bf8f8ad94dba62fe0e023348fe76193d250c639a7ce51e1681a76822a187e9a315c8cf26ca81ff367a65b9e9d200dcbc058994d9d9d124603f0190628535df6927cdf5950c9995cc52d16ae77a4b11f5d414164e976c2fca8c4c090e56a9b7c445016985a8b5e6bd8211ca1239fd559b249167c6d03c7b84ea48bf170e56592d143e301f0cf4067fca73ce42e9e99245b0c778c352d62facbf5e25e021a8ae320784a0e4b71808d890f42f40f778bf77898db0b4a804a7ad76415cda48db40a2847f9359f059d511d4df6fbc60975d9b1e859449543643082c0038f90cafd6b34659143d9baf191fb9137a910e4b334e69d6b4bd74e4db11495643181bc647e91108a92824535ceef7199936d4b8ce54225912088b57c59c23c4130556edca3c627f15f771d32e201faf5403cc1c821cc70df875223ebc8451d2d4f76138b8e713679c05e393dc202d6debf2318ec9ef1db2b8ca338310d63154fe346f67cdf83b035d678fe1e51ae15a2b0c9aefb6dd3ba03d1e3c4a9c9ef6aacc162dbfbe7e5411b1bcee55be556dc94e1be781c0f7ff2037fe43522876f6b8ea48da7c878351dba00e1cdaa50de54a6ab11407ed0e751418c037a1832aa7b91a729df699aee071da9ee14c053a37449c003f0ef9300bc6133400db9f809dfa3f83da6d37bc8b88e1ae70bac541580e6720df9e97bdedb1cbeaae6a4d420de4824f8631534f4fb731fa3bc36d9ab1973b44d8c12d9696c64ba7402afaf41c8257ec45d11e40fcbcc6f9e28f7ba9974da2894ae68b3fe3eebd4043db963202db2eb4552357d8d6cb669bb6fb281a4b54c72bc67d1bd4daca9e9e5b4df49faf490b35bff874796e989bf674a6712ed8749dfcba8894f3049eadca5c9df876c2497cdc947482dc95fad6f7a03b8106f4a094ae270a7bc407e8eb8b9e02c5ed66fe3bd341c6faf8b5f4c54497e91e8b4851905483ec725b97782a476a3ca53149ee58b15acbcc321fdea9c1761e5f053c61db447fe391ce404848badb6cd0ef72f65baa66882c0d7e4bd51038174b69f45c4d296d7cb2f884045c4484a06784af7dfe98d98dd09f328e9682f2a742ee362d3579b845a8ecdcf06be9fee360d3dc0e6184101973a2063a203bf1154cdfc38c4ec873a37c2cd691061b30259797a9d036bf2911a9c189081c48ef5ceb5f558d7c3cff8871b1bf8b78eb80921c61709e6ce2e20e663cdd73f2b2f1b82ceba9488fdfee8e4ca6d280a1175e4a4294e2fb79f4da74b507721a962fad8ace0816265d38e9169159da9e6009366cbfe2e9d99805e6dff19f3b93fedf2f6a32f34b52f06d521ba608ab6ebef8c7b8cf4fd046860fcc51d4ad5ee4efaa295f57868b64fae3a11198f7e25cfce60c02ad45b0088809042e51e5dff1f5271099b23ea8c102433c37702b3da64a2872608e3212eea517a", 0x1000}, {&(0x7f00000041c0)="4d43402791f29ae4cdf0a2f0290b68c45b34b4ece2475d1fa9740afc36051e4896eb78f5d26041da818681e908319598f68296e31079095eaca03001925bb6007b5b83f86d5f576efa610f1165dc0cf878354f2bab33caef933d7ccf26e52d7b178f175a4aeee2cce08abd345a41f950cf3191b32edecbc496e0124d5b0fcdf4953997a9396d9e3d9e29574c4eb65a4a8e62f6ad9fb33bcc0e344dab25c30ff6815412a27045e770b37b0f56e82f2a4cc59ca324a1d13f9d23c5688b065c69504a14765239f38d7a7c46e3340985144d94bfcbf4c4821c619d008318f6823fe3ef2b9549d119d1991f654b6bf037fe259decb8d9339d677293cd494440a2720261ff2fad20180ebd693a34328f42830978cfe7b6cb5b46ae83b27cb89de6ce8ac145d0cc4ec738b0e5c72851fa7021034d1a7725ab9f6e3909e74127528bf26c7cb4d49a64852fa9a47073c6d95d8a3e40c11fcb4373d8a265d94a9da942e5ff21619d7f562061ad52669418548074fa4a1d4db74881fb1f8cc6a3ff36f27b1ab3713551c583abc7fc5bcd9a8792d29a5ea69b4aab92e719dba2944add685373db102784a36e693125e6f81da4acde2aee39e3caab910cff799a493e76cf92f82404c8d340249ffa32abc26673eb26d6785525ec37dd1ddca933e631db54d68b6f3d22c6cc70639ec303d312aa5f97dc8cd52b28af9d17ff36b9e6a9d8f051f1dfdcd9aacfd6cc9c27c2d41e65fa03fdb94cefbc28ac0d0cc2d29b30f8ac8d59f8c6ca894bc0d4ae65d261b6c9b7754caf9113318c789c94b06e47b994e08e7f036d6de82e47c259c5190b74ebca8da547e0565bc06d6951d88ec1ed25285ed78181e8b0bedd58a69208c973a812074034d64e80c7b33f0b225c62cb1e72c90ae5c3131f178a5c7da60eb0ac30cc8a729c4a5446cacfe158682d5d5ff53d924ef5e29f09aa0300e17aeab3f926ea61cba92a3cd2b86d5dfc6ea2b61f03d128f5b906942eb88e5dec8a37cfa47f701f6229b6b8f7b10be836da44f91d7641dfbc1010fe5e59d61bbb05008034e7369f64ee65ebc179083c71d311aef9d5b95619319f779b6d970ecb7a460fced9033c168e83017a7b0f74f0618f4dda7bce4b4e11309f28afb6268953a506a4b60dfa2119c4ba8e0c682271aee9eb5739099a647844dae54b5d11bcfafbd938f192052b6bbb46a08596b955260e5e4c175dcdefa5768d7774cf2bd28c0dc0512fa932d6a76838b30c058cdb580ec1675a779dc98605a29d48006425d24bae5d3b3f7616255ce9bebe86c36565e83602372238062770e4b9ccfa7985c8dbf436bd807cd30f14aee27c83a566bac5885d3c0bea832d47a992f2191baf6303ba0a9f77cc721306bedcafb4aeeab22d360696fb8ad3d45f077e7b5dd2e591a8df81b048db3d63ab5baaf141eff65d994b5d9c3aaa7a7515e98e2fe3396158cc2f52a6b4e444521469232d79978765c384869d6cfb611b5756419e1b09a69c24f6c1c5a2a5c4a3361cd706cd92cfbd39d6e2f98c99695f3b8a86fe6f07e67482fb95b7d1e5273aa46d8a83625d4875e0a5b1284284e508446515775233e118fa2dc3471a5a863c9433b62381dbeda5273db9fdbd022b9c71f28374e0b3f1adbac58b1ecfc44d5a9a372f15e59414931a04423dcabe79839245180681df887e715c21ccc5c880e77ecba527354b51138ac8195f1c57fd54f7c56cc0d429386f8439306f434c1f597bc7704632243d0cc6cfd97d6982b1362625d5670b3255f863d967d2206e261d29a5d24d5cb53a12ef07d5be4397d01f02b406adf2226ae111937148fd0553a4b1e8a2fc8ce0a8030eeb3224ceaa9d4be74222b18a6521bf356704f6bdcf2517d44e084c8751e4eb95426c02a55eb5d5a19575ad218897d03d6dbe1898f187ce4afc048e3be1daf8237cd14f0dea17c6b13fda22912dd78e85af7fb5655913680abee124ec42957065d5a89293686bb6dbbde26c4a0b2f93abcbf4c6f8df1cf057fffeec965262db9812fe94b9343d913480828d27a18f106c52f5d543f62934c933cbaebfd70596dcbe747e99b46ef675f53f745208d85ed4dbf8c391f2ff668dabd2714cb0824630eb93a80c0cd324fc191070aa57f789ba230a19f37fa70e1fe5e45b2a71983d2f66118a0b27959602e272cdc6e27e160625c5553b16a6e5cde5318a5359dd2f696ecf7d3280329a4e44dabb173c43acbe198ba9f041bda409c4f2d65f75184ef53bfe008090a3841f52c9661f6ce38cca16f2b5dde3c161314b87b69d18e6311c9b0af8c212679db8d92ce8c89d39a72775228533523d2b30d46c54b919939b130b4debb0c6746abe4b5dfc2e92dfb966279a4a37570ca1d2b3c3b0fe1ac969698dc58160623e577addfe6df37dc7e5d72ecacf7ae06ee1ffbf04e5ea6f1670b61e7b385a28fe6e9adfab1de2a1ef00c4a0058ed820f0022a2b19c1503fadff9c8ed9b6c5bd8f7059101fb3253e5d3c0bbb0a626d59666e5c2b2ef505beea118efd60d5d76c033a5437eb663ab2f009995033d6528b0e1362a709a71918f608de2084e2ad396b9eab3aa506b48bc862689ade12ca51daae62bf8a0de055480a7b9896f42ca277e4cadf2bfe09b46e7c285d0e1e6ea7aecc2af1a0261b5a7fd2949fd5354cae02c41537f979d907faf7c58ee408fe16b718855ad5b9c870a148925999f130d19d246e5286f7b9dad8c80318010abad5de49b9c798e54e127e74fcd32a3fa9ed2dad374860e53896eb06d728a65d73e83089547f6c394fce75ea61a87dd7b991a72020d9e19512c1fe9b1f35d4e0916e90082d7c049760771155d56c3398f744d7ccbf0c9764cc7fd259cb9155d195e1ade67057fdb6068819f64f0950c397aaeb9aeedfb8559694cf576484d3a3cb01a1cc6d1fe5ab3d4049cdc70dcfcc8ac0828409a11b5cb0f176cbe3d7e316d5ac9ff8497dacf1b636d2f84efc43ea1e9e76d7c772303464d7de032d86b18a74d3b096c9af3a556fa1f19de239e71946033db0af9cbf67099a7085f85af4104cf393d0aa47c24cd2b7376365940b168930b0065c6016ecf50c1c60621d038932ed75a7e86029e56cd229ce040118829b5e5afd9c832db852329f488bef8807226b4e5ef9befffdfe1ec807a2e1206870da85e962806734d688759d60832eb12af7bcd7f58d2d9aafa65d12a66d2184a706d84f548a79322a3f31787d70b76bf003e6a97f83bc967e95e93ce79012b533d33928c46ec5f033cd6df12519d9caa3058bea59f2c4a3c5ad058576dfbc2eccca703cac183cc84c2d410d6dcd9ca7ed7bc3acaf23636c9c5ef11259bc8da8d3641cf8096931d2301473ddb4585eb044850cd302f66735f34fe86d018e5b89f7770e05cdb51575085fab8bed150f39a45517a058b944d87f00a24fa57c3ca249b7913f0b4f4d76d89b19a0fe43a7d66863df12c5e66df6423e1697f8f8112f2ca9d24086135e329adb4e512b12208729492b85ef3caa4912d10533e86024d4b6252f6496f338d905f8168d9586ea1e7f28f30b4438392fa478d108f6fa745e83c81c2a2a7b85e775886e602ba878dc5a854f9216ec70c745a8b42d4ba7b060581db11df2df69f52d699cc0648dee869d645d8da730a814bfa9b8ce99a2f1935b4a26acc43b88d764c44824bb4ac04d9c5cd39db8b0b09d3f5e82177aa16694ecc44783b947872feb6fb8bca4ae8e228a804b8d50061f375b4a0ac2e7041bf65b3020fbb2bb4bfecac3a74cf1d432268b99447b24b36053b6522c7299bde29afa27d920427415f5c9f5cb86278892114ee9b0dbbdb84104adaa94689c412ec674df3aa785f51bd2cd2042441ea9838503dc409befc169ced48b78318a122c668a67fadb22aea4b4e38356fd8edd7171c84af6daab58400a903d5c7c22a19d734f2f2e4f6b5a242f3cc1d83325fa84a74cf96f048b5461f2ba9e567361442b133ab582eb1643a4c2fae4f13f1cd3afd3cba77cabdbf2dd6714f5703ea285f65e60234ebf0e0f647f9d35471852c8541b8a18221b3af2d5387dc2d7ef92dccf675474ab272831e3dadd71d6ff87310c5698d26ec70676dd05c5d5ab9f4db664c2f6c4a90ffc16f75305c83b2fdcc0cfbffbe71b7aee765e11abcf491d2cad02fef1fbd5f094617bad80f7609a403665cf15bed38843a5e0b253ba082543b43165766ae2b945ee8b7218208849c0fbf2734b81b23d9dec2b0e21b68d43d279327afd11e20d510537722d7f1766469a4cd1bba2085294668623b486d2fc79ca7fbb295a890229f9cf18a6aadd5ac0ca7706d72f42f436d951666d5259d02c3729b0501e39f618e987fbcd09ef828582cb555d663a7128c08cb793ff18daa041a865f9fb0b129e13cbe25f2a8305c58ca47587542e92f7483f09f76e3d3d13c726d7e4a6434d96bfd94bc0eb2203980ab82aeca307c21498f92883929e22a63891657449ef61a6706b0a6e6195102c3b3d012753515140a42bb7fdbd97d5d2cd542a0a2193dfb5764ec3d6f3f40468ecfb9f5bc4988ea144febb0b030fda3ba6ca51945d418cd0cad4cc210c77acd4d1d7bce6c2f833c06426e6bc22e36f4ddbf14da36b7d65f9e9ebf6d2c8037f1805a0bd13418d06c1b158edc55af2b023283447f895c24ac7aa5b5019800df9850cdccda5d93646bb6bfd7cc23a127a9bee91ece511d6c7e951ab1e87af967779afbd2c8d91ba28b782b85b87453a7a94b2e856bc57415c20cc74703aeafda6b712b271b0efd5b76bde1e5c20bba7a6a763fff3a5b5a39aed1c777bcbd0a26337976e73d053abcea1f8b194e9165f8447c31df3df6f8f1d05b95af30d74d2bbf6560b5d0cf1f5cb5384d78000dfa0379522999e2575136060a524c9ec44d6ea9d26e9de422c3dced18bafcb85aee387e138534f1306ebc0c0841fdc2ce202970c48fd632302244803add09aa1ccabc4633994ce8090d1f44ab8b82baff752bf301c9bed34bee56bdc58fa96c51be62f2d1b0391b9e93122673d5fd8e525f432e788f84a05cc1d06efa75caf0b22a550aeb771523888937b3546dd159c4a83d3758e62dd6e984f73b41560cdd415f369f1ac29ba3e6f9e0b2eeef4e5da9eac8114e183a4f8c4aad5c3a7f028f60de7767137cedccb39f2ffb13af6c407fd1667701e69d623e7a9da733e83e5cd24a0ce9a6147bf92094ac3b828f37f9dd999e50612187a5919e1b8dd9270eef3254e72fc9ebb0458180493df1f6737ab83e566c4399720f253080ba89fae1c372982e9b1c4fecd85857ad48dabd66fb7a8b17b919a623ff31bc90059b9aca26ecb04a9cf9ead72ac1363cbb86eb83efb37ddd7ffa03bbb22d2e11299756fb5e846cc258d8447a50fc89e9be22a1bd18aba1f4f1b28ba5e565177d26666f96adcf40030d8b2da8ca84658edd1c4747dbc82ce7a228673581530bb54e05b2c993880bad1af67db0549ebfd485c9f0b3296d7950b6e916a3dfccc7560bd86dcb93fcc4fcfaa49287b39bb0f71801ff709a803076c834d0473b60180ad6baeb7b9ff1977b156010b4fe8f9af932c1f5d0b95649c1a7d588ed4504c32014570837bc4d8542e97ef69d5d29a7601855202abd8f0cc0685af0f6cf42ed06f72fe7b87f352298cc9c42d3cd696edf6281f1a7aecda8cba801f38ce2130541bcc3f3fbf86162cf83faf8d41ae8338ceb9b3adb9164086fa00dbfbba63a2dfb64f8fefb91e9c6f73fa993e6031353241b7bd3e5cfabf316a4b76638ad24c966f2691f5a17f6d4100876f78ce654112", 0x1000}, {&(0x7f00000051c0)="43254cde8b0c78d615fd8fcd8e5b9ba25e154a674732b3b654f4e8e624060d9887dc918b40ebee4a5410c42f56daa15736d14e7d07c227712323262eeedd9d1d5fc1df34ff3758a2942d4757c2fe18dccf032b4e54b623f4a03dfb497cb6f348c4530382eced3fb8df7ae7386c64a88dec322188cd8dc6a712cd44ef5860f03a555e19715969", 0x86}, {&(0x7f0000005280)="619a7c7039a8757bf9b9bf673d3d538bdba5e62d81aa68c3838509b99aab329b502480706034ab05e89e8ca8271bc7decad86bf40c44c0bedd991ffb320b582ae75b903b16602aa1a1df65b38399bbe054d36735bfd6b7c79a3d030233ac92b931b33941dae166da76867ca8e22f4a43e80f4c20241afc00ac4930e9d39ae9af6ce92e426cf10328b1f151885bab2648c211f2", 0x93}, {&(0x7f0000005340)="54e0594c283f46d3ee7277c6c9f9be7b7c4e70235eb0cd6f35ef63d862ca3904bd28c08b6dcc23eae1d079759d00554396873bb5df64d8e9322f3c73a04594c28c5a8b85fac9763c974db56db79e5d1220e2fdd4bd549b541bbd2865e581c904b3c0830ab6943b1e31e40e99b94f16e7ccf3952b694103b33796cd1da9edf058a07f24fdc02cea8a42c742dc269398306121c29cfdba0f9cb782844ad4139c8092b69a4d3aa7257fa99c2e160b6d3a7cc83b83b5ed4d9222752efc82d191c06863d57a92ab6b3832a927", 0xca}, {&(0x7f0000005440)="d7a7bd523ebaec668fccf7dace90c7a03069fafce0c65013362801671964196468ec635abb86c376292982282b5eef22fdfb1f9fbd3ff2774b8836a6e1ab64f0a9e8d6b90efef6bb9b39df124ea3acf90bb07bbad9482f54c8fb43d3bfc1b06fd2f0caf95ea72dcd6e549263b036bb87d558db86bcd41a41ecddaefe30be0a02fce13620a2a5f2cc2d7c2d918c369c92bdabf69afc748814a842e5a92c8257bcc02220", 0xa3}], 0xa, 0x0, 0x0, 0x810}}, {{&(0x7f00000055c0)=@abs={0x0, 0x0, 0x4e22}, 0x6e, &(0x7f00000057c0)=[{&(0x7f0000005640)="06cd27a3aa72517650df2b7fc28c59dd87e1f4b5254589eafac87b316abcb738bc2a6cc4d8231ac76ecc9276e01d6f6b5d74d22655f40e565cadb5d6c979f20a3a36e35c8f39fae8a88cbe84cdbab024811080d5c3c3a6013aff932bf3103701651400e47f53f93a51f0e031f1cf0d70acad223755a6bea93581ad0f86ee2b395e26c1409ca4a5fae54416fab41399b0809f9e544b02f8ef48cb994301ddedd4ec1756315fc5d736", 0xa8}, {&(0x7f0000005700)="bccf0ed093edeccaa6a8d817a0093e41cf9964fdf3c75b0338ad26a39c9703f6c041b1a249c736177aefcd3113006ba00853ff95503928440a1fd238e21878d50d05e421f5c4df49fa107bcd34639d7dbbc9a73ddddb84bb8143b22e0389ccd584d87f69736a9328b229a53cc8b3e72de1ec7a2ab6efa7c4f18ae39a253f1685a3964f3e803c6f", 0x87}], 0x2, &(0x7f00000059c0)=[@rights={{0x20, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, r3, r5]}}, @cred={{0x1c, 0x1, 0x2, {r4}}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0x0, 0xffffffffffffffff}}}, @cred={{0x1c, 0x1, 0x2, {r4}}}], 0x80, 0xc885}}, {{&(0x7f0000005a40)=@file={0x1, './bus\x00'}, 0x6e, &(0x7f0000007e40)=[{&(0x7f0000005ac0)="aaab01a2cb7a013e3f07d6b208c3874f32e634d405c2b50de8b0467d1477ea617d62fac07beaaa1880a9974ac11eb532866152c84e53d16490f44313e38d898a499c0b16a9ee4e4101ab855fc7bbdc2443c91891a09a78ed09fa8623c9b5a610fdb69b1615125b68fedf442934e7ab944943fb23380e4e9a97cff096", 0x7c}, {&(0x7f0000005b40)="0b4115598ef529e1e24436b2867011614832cbc7f4a1585615b1929250f726856af66f3fe1f84d76a8717653858dc2b5bf2875faa34279723316a848c296c928bbc2df1e9f2424362e3b83eb08892b317c1d9fc272b242a4292da17b4378ff8c9cc8fcc72e5078f81758f766fd44b4b910bc18dbfab3903c65bdf88a685621c1cfd39eeeeb19cd1d3ae530741e8977efcffb72d9fdf0dcdbefe7b036ea326d3c879f17", 0xa3}, {&(0x7f0000005c00)="adbfdf3a39dae5809e8491cae8491038d1d97b8a6581ecf5440afbbc37cfff6c95cc8847b7b07758b228d5e1c1117eb65423a98148676e4044a0a541a40c382a166fc8d302695cb84977dff8e101564eb9cde462ab037a4348d6d0c68df7a97db6eeb7692bcc9960562e313513f2e52265f60df3988590ef3a8e66a9d985f4b495d71985b3e9554916dcfd191dc78420215b9be08a9c0c557808a978a2619cb78dbe363a45d8b302424815e9b18b8f921c6c5f5c25f314de86cf165de0d082b54dc799f376b0115c042a8632394f328bf6bd337a4e7606509dc845f7738db67626e1e185ae51f63777000e9c49dc180f6a3d6b7aa6bada92d4013c5f3b8924930bc88775db63c43c7bde0f143c2e6edc273607cd07dd3d2fca1cfbc8785d522120870519632eebefc59b9945a3b373310eaa677f500c28de572ed281e364ddf8b79363b158fa6f32c894d28c757811fbe023587919807ed4a2abf542f3a17d41f8d14d8df9f5c499f97a5c31185645fd4e1a7eabad3faf26e9e178ce41299cd370a6f7b878f84d4ccc5fd230c16a258f2d83e0130cd7b30bf026dab4b434dc967c8a5a7a24b3d0f4010d51ed74c69aaa062855052bdcb758a64d892b423f81b974ffb0960fac63263fcf01e124d572da0b63792c86c6a738e26f20f5711b477f019f2fa9cdd303c9065cf1baf116cf30e959f789ce71e8bf6033c2eebae9003d459978ee65af4405c4501edb22ae3c673834f529f01fdcc3c818a70bdc6a7ee7d53f8fff340521f1e9dbd913a47211e25e8545fea3cc840db0956f38338ecd404e488f97f46e969fcd262a445ae155b9d3a77a13e7432ddd6f4f34e9227087bfbbbf5e9154ff001c583375de8b03da4e1a735cb30ee5eb09a3f537940118c2dbc9d762365b2497614fbfc239e0bfdff0f71a283f20e73891ec72a1763dfa943cfef556e37c688ffd83cf1fbbb50b83966461ec057e9ff719cbd1d3dfe41e435098bd9280d2c43c0e87d7839c1d2761e6af81f2491b9f9b9eb4a678da67198a08b224e82c15db10be15e0883ebcf53b69db9c7fb946da297cd1afd5941c8ece5dee1f943d6281742a07761c73794a7c1da9a5f59ee2798dcbd5daadffaca563892ed2286cda027ce0ee4e4ae05b0ef574a408b9dd753b56beb92ed24da15be937c43f0bf44f9903fc0dbf31b8154c9e387eb9c23652ce016aa1098666ce7f7460815b1c5577ab7fa8bb7e647017914daef6c28d656f912ecb3953fced3bde24fad6208dc0e1fad5b0a53d3adb477449d0863057b3428403ef902140a69ebdb796835bcb803a8f1a0026befe17ef4ff67560576f7063fb3c32a87812125d324c7c68b1eee6fb4338f0932803ec352a1b916b176840bf81eb26f0ffa5c4c5bafbd28da73a6a4169eb68fe87d73a458da9b78c9237f404c9e700e5ef943d72998cb8f43517a36c16ce2b89239c4a5ab738d4854325bf191ada1a7891a15fb3fb03f01c5a3b044a459fcd9ad6bcd2d51f806feda8feae33823a5e500e44bbfba28ef713d3b287b179045c1babe9c463708bd291bcc9d9653859642fd0adeca11689e3d1f6a827e696d4c5bbc0e5a9140ae6ad9577840c75536f48c1638a41db967822ee85c1c16b908217a61367a15f4dc1837f1c1e318c6608864614756e6915b5981916c84b22d824d116ba669b87f3768a3dfd6fb3c3676c89505aa82188760eb134bee9c36f641894651d569e15378166f0c465fdcce64cdce5cbbc0404f706e469ce4dc46457e33be5b2398583a5abf3ecb5e75a5279fad7da9ffe1535dac9a8ade276b45d93c66ad004ab4a48f52ff019e03a9543642f99fd5c0281689d08d19217c4f784562962f1fb2ebf8615e2b3720fa357a4e6e4547412b123ec5f283294d6d4148a4340503fd94c00b0370c6993938df861dbf5d60bf03f055231cd79f125f92c5bda6361da4c4427361e333388c7948aa17461a9a069c0924e7894157fbde45e0ff1345d970b44e550d00b1d2ba76236fcc14f3c46796008fc488485c38b106eca8f62164577cd8bba074d3351db4c1a192343c6db9d21341bfc53f8e55a53e65f43102808b5cac0b2d5250474c12458559e2f51e8620a927c3a3257877d8446f8a197f21920a604794ec78c14c0818f486847745c2659d8423a3b2f4eb73621ea6c7a2196d8b7ed642b4f29ff1d52daaf99c66ee3e216087c947197a208c735d87c54c3c2004938ac832f73e8fb578479707c196297c0f47982e76f5aac7ae5c08f4ee2db4c4df6b09517b4c5cbcad9dd7244253fd316bf9a3def009eab37f90e30067ffaa83a99bc8b0653bd17e5134736f4dbf27babf7223a0e508dc4cbdfd04041fc7f5d3b95b1cee781bd7d6c17e14a50846cdbc73f88dec71ff1dd2e13b0011d6ae72f3ec479871b16418d6476a724f492e6f3646fa144eb1e29fa0332b1ede9fe86c046353f01a9e8706a67c93ace8cd28b92f6a5562bf7138a35838fe8d8b5d5654f0369df3ebeb273a5ae10ac0028dd068f8f10192ee7e0a2dc0ba3686d395e2fc3c1e0cbb9c5792dbd6bfa8957f6ca7b3efa3f6473dd84e8e8e1c23ec72e2b8b3a802c40fdfb615b0706931c25583a8e7e054d2fb267984235bfbcdc5cab62cc9c1c44992575d3254207cc5ebb672882d96182d07a3ec5973b80286da3dc1429ea1d5eb4ca2d09e1d9407a5d3eca03dcfd29a237c45d996b810e6a697098e5d7213a320c04ee805f311b70c6b495b60f318128f5da017b579292f75b219a8f5db9dc787794485bb27ed590eea6d7295b273491f647010c3b3bb9c0500a85cede2a1a9b8dd47774e5be84a4a713968a67475394add31728a654c976ba6f2b23ddcf774776614823baec6c7f513815fc4fc65800b264c3813d841479a00f176d55d31a4918676139bceff725c7ab3315fb50f7dcdd1fb1abd381a4ca3e9a7ffe7f46fead14897751450c4036606e19178e96cdfd67725582dee04efe34b317725b35827e9cf63e7c58c4c5082523d1088825745f7fd454c48b5b63f239d9dcfe0139c7c5ae20a43de2e91630c23312c0f740f39af32661d011a80f19f7b2018c032535d52566384694c30688dae58afb7c9815b4b4f474482cd916dcff149671025c2732be0d8ec647226b6f699f47d962747876b56795e606e978e3c1f525d1d195c1f11cfc9abe24214e01f644e6784a89223dd59b240438b19e54e5e80f16e7a2dc04639555d4a6126baac00af497fea40f00253e813900e9001c806ea3fd2b8d8ad188cd7a050ea2fbbb9d94a1fd61b942bb8d03858b33c022a913b1a9b9d6428537de860821153a4adf98ca6c0b9176eb55d80c9d0187c89c290f16447f6692ffad3b2525c9288df0fbff5d901e01ea459cac84d7e15964682e755f8100cb4a064018444e8182f656ed492fa3583cfc782b388ba48c25c4ac55f7f05e9efa776d3398ee88bdd8173b2b3e4fed900b097364878dff7b7b5380e2e48648569799dcaed92ac8998a34a57598673d194a63def8acfcd32502c74ad81345b471c380d22d40e37076c04764d5228cf802cefa38f8b67a95063f328bb7728f2abe9984bb2f42c31b8435542164087b9f1e4768cbd2de6411ac673909c7cb5a995250da1c87956d9933b7d57aefc25898fe245f1e801989dab640c8624cc522637f287b54cf9004776b4ab865c9bcaa3b100029d7330af6afaf76deb0044ec4ed4adb09bd62b7212f57eef448ed6224129345bf92b211ffa6624e3d06910a16cae5f21c345d030dbd93d0508a2fd9a8747d51c327e45fcaef210226c19487c92e239e3ba98cb5b0ddea9966fa0cc31107ed34c775d4a6ed71679d261670de56c148c58e87105bc609573f415ba505b68fd07c0cf85b832eef54f5ee26de4e74653f5212298d18503ab50f18f70c0b2605abb1b61bc554a2b3821fd0615b882419fc2804d05e5fefc02ac945ba669dfc8ba756ae397023b60c485d4c3121799feca17b6f9a89e06d2b58cfd2a973661233fcc6c951d2ee2a54a01d30b93be4e8296994e5513b7db347fed88ec95891ac9aad094ab92a6bb509b01ce80c4ab2ccc022b3dd2e3ac95fca56c2e188700e425bebefeb09e3a0385b2f41ee10c85c05213d20d0911b808c04b50449f9a425ab142b9f34d7c1608999f053f2f99de083624ac0d7fa066b68ec055c4c06595ef4d4bf998a91829952b264b23590092307916e7f3474b0f9cbb79af48e2215cd6f74c3330a2a349432a762bca76fd10587b75a1a834c10a0d1af714a4bdb700ef2cca23bca3e6119bddd6079bb6deffd6ac400231eeab3b4dc5f8c995afba0ab75b424059b6858eb5e6a3c7d49279fede5532240335d139beb50977c03c2c989b7b836055a684786b3922d2019abbdb81a83f77c99f692b55fa115e88206dbc7dceaf864cdde07b513ba873164453be8bb6a3431c479fbee86393f053e4d15c551eb088a7fb00d9fdb0c328fcca854cba894acc60b729e513a6c1304bbded321f404459d3e50aaa45a43457d6796bfc6882b3ca7f40467c6d8f4e3a8b9bcb6481b936373970b05fc1a1762e30c51541d4b3eb0c957ec48a4c8aaa058fb23f22e359bd72e12e686b0a02e05d8fb1f2c2b985566df67682d4252c678b346d649797905081e4268acdb90f2b2980bdf63393d156bdee557f312f6a776c674c831010557f9c898f390a12643fdb3afcbdaf66dbe7ab28dacc31ff5b6a97dd9ef2d567cb5d02f388fe0418a404685a3e1103deff60a492ee78097c069a2461826b7e3bec535ad975f4a3469e1c0e549de8effe0d812fc352b3ef7753d83cceccae2387362c1e26b359cb2face968b3660c6b4b2f366782509907aca34db04393f0f67fea45b7618de61c9a6db8a43bdf6c2bb4a5d992bee79ce5eeb591bd346c0276b61353486611e6f1dcf8911cbb5036e82083e4741a2d2d464c771d9436c7d5f9779362d9bd23a8d81fff8eb8f69c47ff84f73bba7bf2d6712b455334fd19f45d840c4f49bb729c9b7db421a6aace4b7ccdcc4c5df1848d314c7954fff9e653d570dfdaff56f68f145c45b5aab567eeb389273d72d3d49ed5c58c0378bd5c5984a6b30f185dcc141f5c6587350edabf4b50dd7d0547b492fb2f1fc8a916113f0030a9232d58790003e7520e35eb4082421a8bfe854984b132694f57a1ae1e98a04b405deae658d179c61b1bacdf48bb7c78b96a3f4407ed18803914b994dffe97e6de9f8c0e06c8f440df854f5b0f6f72aebf521f46caa93c06abbc30d4999be9fa643c2660af62fe118728a7f1982a8e3d69567f9005d0cf6560f8e4f18cbc9bf6e11c8c6f1af71af71f901a5ecc048082b26fd390e718bc7ee12fda66d3de574fc9510faf86ad2c156f9d29ae69066cd037c6ce9a01fefa1abbeebd326632cd3603f385dea1e44ee2c29785b50f2838995bec606e1b80cbaf065b455ce49ac21d36aa2ea14c3f98d8a5e9833ab01f0319fd21058ed0a0393bc3e0bba2737256ebb15f512bc2824bfa5a3949671c54c2e187570172d7aa3f7e5ebe75726e5092979a187814829ec396a92a82ae5bce0f7c22eb76b5a28ac0c530b2f94bd22e2347d5cc5db8421c05cc84917ef7b5e3dd874783227a8600450adaf3e6d1b67d9b6ef21a3b953b7dffca12aa10decd7989f77b940f79248eda41e9c3f764afcba1b469778d32f9d1007c5ec9ac4b0df807bb3d589eecf82293be44cfd3ae4fc2847ac869c15176f3a31a37855bb9d30f830d296c1ff74c6c8be1a71cd195a0dfbc7033703cd07103cbf2abc8a", 0x1000}, {&(0x7f0000006c00)}, {&(0x7f0000006c40)="a880da2fbe830b5f056de5d9b089fdbfc35a99416f390bb2dbf41e194e41fc948f1161177bd6aee2bdae6ad2f0da30f5946ec781b6c1dfd6d6a9b89edf04013280f40e5a8f3cec54f4a332fcaf1c5a2bc76be0801ec067533f973dd6121e9c9d51cfc4ca358545faa11e7def7e064c28b4b3942c9b1e7364c65c1d3fb2d8ef0b4eb04125b3d3b15853db79036c62486aa74eb9b8a89f7970900ef2753f898175d8753b0466de74f21c4582f776dc4da45567a584a9e54f56d96a340201c445b2e98cb951002513991086e8c4995eed64ac95695a5fc636333941ae30dc26133dcd7b09bfab2fa4ed66869e545ccf9f7394fdcbf5a3a8e131a4f1e69b02f1d15d6b30032a140692ceb90ca36ca1555447da6f7289a16ef40461aa5aa622b8b523bdfc680acd36271db082625bfec23e92a58a0acbe93d2ca8b55894fa38bdddad617d0ee671586d9dc1a9d01bcbb264406adede2c9f7d6815cd4ff4257f38b219f2ce4d988cd8b0cd089466868333f2063f3be488c4c210a493d4c97fe0afa61e380ca19f302edab26f8183546420930401606c694a727854edea4d3e4f9a7abedbbe7b345ba0846457e834d87f690323fd59be64f1a048069a462b3fd76e9e7b5cc1c2ce31b5385a866e2857e43641a177c510da115cee5db10001470272d26597d33dca5eaf74e672a65d150a931634e086cec09fa7d1cf8e747276edfc4658b48c8f13e348c67e701b3be3551e3769d63e60a03b1ccb7e697dbc82ec1d0829d1c83ef4b2dd5340029b8f56ce69653cc0d214d844ffdaa0726b2092542e94d453a4fed194a7589e76ceb2a2f500c115b02f851f2231832a276380650101c30dc1440d9dafaadd6e82b329a4af7cf875738b0fbcd2978b8cc127aeb4c780c88218a153605e72a5ce53fda7b95911a53b8cff8e58601005b15b281f6359665214f90fbbfca636c76cf81fe6fc5baac64229bb3e9af5c3f4c4fb95bf46f61b0654f3c124f3ea379bea241836aa452396522ff0ee5eeda41affb6a4adda2fd3419052b9eac4adc3b542382a036da94add7ab4518ce669d81f05f4651c9d9f8c09eeaa1c8b359f139aed14116be9523aa09cc0591038f9329f9fe8a51d3ca79bd121f68f9060c64eb5dc05524256e1da82b4bf3a239ebbe9118c82b0cc6b7ce2a732b7c992bf08e9ec402611c07c61f3a229d11e9aa27975d8fd8f5d6ab593c75e2c46b35a9a25b5ff3c36cad021ba56489e7c33ceae0ca3af3e19dc594b5d65a0b572dc95ddf3fab53b0e2382ac7706126d0c236c3c9d8b1b5b26e7f8e07737be06b99be6ffb0ceadc65a2c43eb15bda6bdf2d73b5b7a0f4b95bcec4566340ec3b8117654cb73a690fc58621c427ae822468fd749e8b6fadc2fbfee981659ec42cf5fd1901e8dc8578a803af912fac2d842f1bf2235372618a22c856953082409b8382f86e887ee3c77ed293d9b06a2b0064868807cd6e71a343440504357f1b6fd5d832842ee318c250d11fc0273e93d48e60669a2bcb4ac66dd069a44c8b3401988fd05814d2fd08332e0c6d6ff931787b9868a3166d9b87bb59987ae78a84c56b561327eeb40f34918ca40bfd4ca30346ba65395b6f13469b9f34dbc3ec27f1966ba27818c5fe4b1daa83328b5c2a2618886b4dadccd9a27a72fb6d7db0cda65110bf501e4f529912ad989ede0384c6f353eba093133f8d52adb9245ecd9ca68020075eb05577dce48e691f5e32d83374421332762fe3252240716e3c3426a3be7e237a85b5bc92f2d66a7f128fe27cfcfee29f12e9279b2b2a09d52784dd6d152adbbc96bfe9210c11382c4fdce67327477c97bac7bb2380cad7033b70df6a3c76c5c6bb471d23e4d6aea9667ed44e6ee4be215e7093143c9bbeb2cd6b4798f02d1cb176571f7e591e074448fa52ef46a14e46f596d34c5e84e7d65630881c1a444bb2a4501c7cd8c2082d9e919450db0c69a2bb08ae0dcef3607e75ba5ec26c4fb061ae36cce39bbfc492e97c0773f548958e36a9deb6762a614b00a5cf5592b1a45bcc3c80ec13868ac17cb7e35ac84acad6e76bdf2b9ee948e1db53e65932290d9e0be306f2fa0fafd4c9b3577469bd0af818fb59696aba231ee5a83e2f613dafe2621173a4176a6b48ee9d5af775f541fd43377b7ef1625461f29e605e06ab5edd9bfdc59d4dff68cb20f1f0bc9a98e0836d8b7944ffc0779b7d2c18778a9c9433c223d780b9b28f0eb1cda54867a1155126590a1912ce5814482a9bda3b77e6a6fde3e93b27dc2cee6eeaef76a4e2406023d7d13246bfa337c68985e6623f0fd6b5d96e422ef25e98407130eca2a25c191115f36fb0edc64d9cb9f16a391d808885d3db0eeedec387ad098eed22d2e9dc3cf90d3ab3f564012e2d7daff3c590ba6123b201e47287d134321e4afdfb54cac967c43c35ac01624bf17d4ea0db72a99ae6a070b832e5463e7e673d039762590d2f39a2922eeb73c0f1b4fdd01c3513be17366703fdecae6b1fce46a7dc8b4daf3bb3fe2712c7d8f9ac43bc182545504ca5d08e1c8a013275776553b1f25bf1e0db7b284af713b788bda880dc91f790e8d5585dc358dfc5ce456f9cc99ddf0a53b548f9c12b10cb32d87153c69b1b9b06e2fc0cef8d4d7a943a9788c91e06f990257f146521a144734c58049170aed7201d08dd538edbf314bcfcbd2deed6ca9e710cff1cf5f59a192feb6d63686907603e49e8365f872ccc70f8505ef73eef0928e807aa9d9180e2f4a28f0a4f9450235c675648cb49ad0b810cb451420c965134701086cc48ee01bc5e388f49bdf91ad5d4acfe4dc9aff3e042585b1a7e3db248f46f6418b16af08d40d38cc409009fca12c56266c1d4efd865aa3675aa7bcd8cddac816538ed443a7561084c28478a2017c784a1d44480dd070c06e30c3ccc2bd16f77557bdc866bd0978cbf8057e4f7de6527eadbed7ae032123de78a108c323ec307e677c56e0c64d0da6980311bd75960643c640f688ddfe75918886ed27251ed6f43ff3008f4889e3427fba2e765c2bd03cdecd24673f8f29d81f40c629951f8addb1a492f3d348759c212a8ee7601c6a19bf4b757be68430e78b98f607a475cb69e73cf47684b33d8359e3cc2e2641fd3d78bf07bc27b47715aafb828049ebe05fbf3002681677ef36128c27fcf769f02e564895f32a8f0dadb62cf1f1e35858ac48b6659f55a8b65eba304018d47d34e27905e748f6a63a6669046099d04c6cac677f0025d78696fd7200b9f8f8eb22f19367d2f6275736c5d16f1bf5e6c5d73861410360e2bb7d7798c97237c9c89a26c9baa5aeda8e43eff088d871eaa7094035e9cdf2fde123e72fb4827c29932b0f494e2e53c531cad55b72f7cdfd580732c156dbbac49f80c9e78d504a3006e77707664b76e583a808019ec8e628e0db42785758ffef4d5848512dce1baf725518d90e88e8ed9fe2528cc765e376fd2e1c267278fc9123ede1a13c0625c7736d9f4090809eee11441df3f3e524206c931852bff4cd3d71cb81031cfc520e1f23cd1ff17cd233e956dda2bc7337cce8395087f7db93aa00c5933d2c30d58f67be511f147d74255a972a4caac2cf994e270dfb88353170e74a33ac6c39260e35d82046373711f11c9bb6c6d81400f90157e67f748397d9af4bd1a5631d7840b6a9b3d260800886676c245a73ed017ec009253d79c379bb125a8380f985799d40cd765e84e6544ca0487d8eec8c4f57f2aa7f9e1d91d5aad5b68d5ad415f94975a225760a64ab2b840db18cb34f0d61277c3f34cfcd09805e4fa10e7fee45cd7a5e88004f065c21132bd1e95af1f207e0f1bc9430ef4f35fa457a569d85db7a7d41f55d1cfb56fb06b476688e632c439e67ac934120c827d253c4d821694250f0a972e57726345c6649ebc2c946927298fcd572b1e44f1ba985780730a3d4533602f89bfd73c118dae8512c3333d54b5bd0a58e148a022762def00d19d8e810978c9fcd02445ce5e7fcf52f2eed8312ee949850499f4e88e152ad42edd40b6aea30ae2f1568ad26e75c01fe975401d19863f26a3800d5b03dc526549b8cc27eb2a3822b24c1ba20f679c388e09255c509ec34f55eaabedbe29dbb7e48e4853a79e43ee67014b82ce09b87fc75c9fbbe21ae03677a6b4666a9fca67bfeea19d5fb4e46f9da7ea797c34d3f29e6f0d8edd6bb9471ce41033d44fa5b856cd71b8633ef3a0ac384b58000cfa0ec4d6a823382af024c38d7bff57ccf9b03b8d994332b156f13deb8054cd0da5463a00891222c3321ca3e761581b5af9b1990e5f505c7b1d6e4fa99d1eefdfb11406c141ad18253296b14f904e505bc898d3359fb48b9fb10360eb279136c7fd1e4f33ef855a4afde5ec2cf82cdb169ff122c81fba335bcb489cd1bd337dfbef569b625a0f4a33bb7a60ba912adec7b9a2e2e6de4688fea8206e7ac2530476712d0176b2611a5c09e0a615531a16a2a2530c207a18a9e29336c2c6f9bda769964949249de87926063b26908ed6778b241ea19ed09b267d58164e783f1aed2cd561a68ff68dadf218bbfbd543abaf147cd39af5f8e18bb4d191958228da486c2894712bb2e0d30b28e589b992e8b368d29740246b4f8d6a7260cb0e30344032d5c4f53c63abcaf6a4a3fe0e738649b71e8d451e6d50c81b43370d09a9828ad8699f50a83edd6f6834506d349cfcc347852afc5488e971378b045676af50a997b2418f1609d99b0668e5256d6d94c663157f34d368ee9fe16955585f62ce8179c2bc858bff4949f0a2e656e1c377dbd58c5260d8b79d7f79cd6b419cdc1ed953ea7ce6203b8403835789691e9d4870e38752ca9ff7bbd9d448ea14fbd3b189d605a541d45198f1f367a7c0b7af87c2d24dc52689eb3c8b74190781a172fd4c47ab1d93f1abea215593fb965bd342e74f822f2a72b7e1b7e614daf8077743033b5cfadcc05249705f04277c316fe70424241d22b97f6a8f26e98ff6c54c60f26bd899e3efd05d5a7da0ea178f649ac40a9a85b396d9b360af56425bd877efcb1db9bcfc52ad3acc7162601b1d3d8dd23080c06cd250920c6318e098a89cacf9bd4649f19487b104715c4e91d276071da347fddf18593c8af20796d0a5c23aa27bb94f8fbdf58ba1d1fe0d3cc9b77e198b2b6bcad4ec4bb4575ef29ff400b3479cf98313a275dfb2b2008ebae1db2c6a91fcbdb275d4c723b496b86480bfd4107e01d696ba255206d7ba35071d18bec819d7286d619e84e4bd4c04798dfb2d73a228e9377099357036fe79b212dc51b4f5fa8df4623834e8c976026668aee7c9687c93a5dcd3c23db1c6cae05b118df5b58e591b46d90c3c1385c6fe65ff1750aa6d6d41b0a1e8908552102075abb3ec168a8a38c48b06cab283ff62569a51c7a97c3115ba2477a5895b42179f74170447e154a2e53428ff9e02f7f243f775fa0ad4f1ec2fb333ad2548929a2b914005cc44967e6ce4152b86e2274cc216b639f3783d2a32c414232f95f5a5443c0bf1b0f90e6ded0ebda6f508fb06e64c4246832a8c03f9b24bb3f8b7cc272ce0c3faccb7e5e7ac9be7074db666f55a3284b42ce37bd3bc4f7fdd8c99bc25d225764725fd36a9ff98c533602d128469dbaa289ad65cb45caad88597a392f64cf5c703000499b1ef0e08af4da230168e31a5b59f72e0ae3ff63bb83042ef2103a12fcb50bb37339d98ad9686abebc6b40cab63fb5ac03d7cdfdb0fa3bb468eadfdc1e99e6f83f73cfd2d6ca99ce3c1a362f80b87241e7be4bebc5c6eae1a4b3599819159d", 0x1000}, {&(0x7f0000007c40)="d9bec5dca5453598ed287525132ce24f53ea487f3c58f39522afb9a2e1807bb6b8a425a96b53f67d68c83abee6638864eba3e82cc60f9a6b16cdac0d", 0x3c}, {&(0x7f0000007c80)="3f3f634c38971e1ce2d33f719bb6de5510b27cb3f0965241844742e82c743875e549bbeaeccd94074b3d9ea813116a98a7f5da058538c58497b615037fc1ac2942ce8da61d5136a61e81cc7e200758ce4af7b4a97217d69ec4be7f53543f6913190a85f2fe48a3386f6f04d53fc93284c27bec0babfcc5d21f1aa9c47a25d2556830719e05ef8b77fd0e7c1addd2751e158ff9f7550cba308ef72d4c53b23b831cc01c4984ba834c479db71741277a70480627d645b234f069df527fe0", 0xbd}, {&(0x7f0000007d40)="0b4299785d2711482fa1d52ea0ded7e73879fd9ae249534ae7b1cc83cd0ba5e150df16ab80dbac3f528797b96078b69b85d542ad7bca6e5b5039a68aa2668af0d115584f116bbc340410324844d159ee6086babbe2edb89714234483f0b1000da85241769420167680fba6e2957c93fa7119838e3f76f736c05f3dfb6d5d785166e9479273a8ac91", 0x88}, {&(0x7f0000007e00)="b43a039350568411c0a07cab8be9df40e88eb0ed369f35d124", 0x19}], 0x9, &(0x7f0000007f00)=[@rights={{0x24, 0x1, 0x1, [0xffffffffffffffff, r1, 0xffffffffffffffff, 0xffffffffffffffff, r1]}}], 0x28, 0x20008006}}, {{0x0, 0x0, &(0x7f0000008140)=[{&(0x7f0000007f40)="3aa17a5fe6441fcf9e9fc69e01af490ba7f914874516a4fb058226cbacfe577bd83273448af2ed3967cb6759ee1d6b8524579884ebad2a6d5555d3ec0b8587cb1cb851fa795a835a2540cb5ca1eb67ec19cdebca186b3f7f3daddba8e36a37bfc61b6f4176329cf01a45cdd234e344929d7c900fdd23ab8b313831f271e1fd57eb00baf1df987777cce5190a3339c77ab882435fe4307420d55c08ddc83f2649a2382efb915e7ab34806a87a833937a5717c30887a6b65257abb7dd796de20377ad09707cd26513787c2a368423d04287d2cc0fa05ef42", 0xd7}, {&(0x7f0000008040)="dbcbd7980a5f7344e64ffde9502b8ca96ba102bd1b746a761b8c112888774124e30f642e01cebd639963bcf7479bb7fefa0c55f8b1d67c82bbff8627dfd976ec523d9e5e0336ee35d9320376f6e1b43835550b40ca68477cc6e8276ba447090b48d1b2ab6fd76e21eeb672ca59cb74faec4e7ecc436aedc6de74967887e26ab61c58c0718c386d8722af9f56a8320fbe96926ec19ec9590aacf8c831d6b198a49694f8852f9f01a83cfe7907f040e206a5bc981cbe050033fae6c0cc24ace2a26f09a38616e85c977512037d62f3cd5b5eaa8cac5a7d1137ee0372f00478feee6957c4", 0xe3}], 0x2, &(0x7f0000008180)=[@rights={{0x2c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, r1, r3]}}], 0x30}}, {{&(0x7f00000081c0)=@file={0x0, './file0\x00'}, 0x6e, &(0x7f0000009680)=[{&(0x7f0000008240)="5230472629645c2a83bf49daf9a2eb4d24fa6591f37d205f3f4684d8674379ccfec41ddc2fa43dc3d73a825174420c9894e70ff98df704a9a9c2335db8efad9b7d2fa7fe8c4295351456", 0x4a}, {&(0x7f00000082c0)="42c7b67244b28701a620f51508503c7517ab924034c8c0f2ce3504b30149e3680afd56c9799e8e77ef6301ffd5b0814cb16175c6dd37daf792b8de6a1e0e8c099a520327447f3ac1ed356cdaf078652d51fc14f4952f", 0x56}, {&(0x7f0000008340)="5126fc44c251566681ab77cfbd7349b1e3ca11eec60598bc007e2312ba4fb71b0a6b9ea333160d86697d3063000fbebb7c44", 0x32}, {&(0x7f0000008380)="d7fbe62dbb02af7aa987a94556eb049ec8e1763932411784e96ab24dc8ac374a5cc0e889eb9dec56c1252c66820b129c3320080fa94b353c8eb18b60c38a7969aeab8dc46d17eb539fd3fb77fc46abdecb3fcd3119b8694ae44b7a25b4d7832f28146936ea1e3936ce018fee8e21cc4c0b5bdfedd93dd0b6070f3c32ef57e8f06a24144d9e3ddbf4061a73e81ad5df1f8b822372d33cb3ee5ffd3c5bef35474ab7c7abcb475a9d2d8c521ddbb4a8e2ada1f738dff6d6ccb44bc8d6b5acbb16ba5127052570b187209d14fbb4e7ae51c645c8ae00942af52f6028f8ed5e70050f5e968b2296398e4294259bc3af8ff0b11c8c8e7c293386004abb35e85fdd36fd72f5f7cb89441a93f5cf726f68a4396d708573435292acc570be3f81e94a69d1ac4b36fbedf93857c628a6742413bb5a6d26d5d2eeb965654ee66dba11e8ee67421bd63fc9d7b3d5b2910fcabc89d8513c6a22d4b023e45ca1aee29a8afa78399f7f40e069efa86a6795ce997ffb425f7a17160da766fa6cfa4e6055bffb5307bc74742a3f0984f6e06b6c66b6afa0c3e90c10627199a26de7843bd328615ab886cefbf0709759901e033a00322ab798bffad3435f2e6a96bb8457c68476db3f6691a5d35d257dca408d5e0cc90230081193efbc97b4640e224334f1caf0fe8d3b5d734040c9f3b6222f5efca15fb9e9776993e2eb10d81cba83889cc3844072fecdee0442066b60f7dc7314527debc3070d48faf3cdc35554e304de49591c9f9bc2828738e8c111c2a30f667d2d0dba2713cce173bdb6aca0780b718612d9c0f2292754f50073b41d69f1d858b41c0575c884546f2dd8c2936d0e54a59339af4d2297ded65f9d8de34af338868f99401a16b97321817491d41ae39645b6459f2062a101ab94bdbb9226b5e261d2988728c4831d76754612a76bcc2ff030184f6e77d17d7a5cec4140e3fc3719d33f26f754ff14a8dae23edb9828efd7b65adfac2930bd62996438984a72e5e851c2e79b457e7e102ddc84da7dc04e63b1f39b2d25e08ef973a96a29962c4ec7a90f89105ecf477cf4b852b35f8a4d31e8a971b02235da3d893e656fd85e3c45a532e16936ade4da0fbbb629ce911fcf68383ceb0d32b8ab7bee60694f97eb8c9b1f626749c316b22d18223abb916ed6833c6b50b335631a02ff4ad13b3bba0177c4f64c81a551887c01be6f535150b58eb28ffa6d940d988ac0cd9105dc77f9de01a935c066ea7183250e4c23cbdc83ef61458b5012a66d5ad83ab97b8f07a90110b2c6f5348fbb10fa0ba2ffe0c7cb5039daa2fe044df4294af8a4b73688b8c88155b9914b81a15fb98df0227d8632910cdfa53835690451444ad4a932a7ea1a16d4f7c337d8245c065e87f9a032e13b587e5c0f6fbe889523bdef46e476fd0474dca83d8852279ce090ee656955af216295580b4e3fded684d656ee5fbd78e981696b84669409a720f9e9c69ee3b220e498720f0a0a0a58d9fb4387da5a22007149cfdac9ca6d0f8a10a49e4162db8a295bbfdb8a03e0a6e43b5198b832cd906cb4d5e4962173f21ebace5ad8ff3f41e9c2c43b86e857f3ddf99ae367a4cea151b99c436787da5be015b095e426d0157e9d6cb7489ed33295e7b15b89490a90a9885858318563230679b3c5ed151983c103dced492a902fc5177593d8387be855afa32752747accebde65b30cdb1cf278cf77517022e13fed9dd8e35b0416cbd226f55fac56ea78e21864b740775e30b9363798c5e26ce11799853ddc01047ac28143df2de533cea8cb29bb76d5a61653e35379bb03af13de2173ea9c8328ef475aea5820f71ac115606f7ede3773d2c92e929b42c82e6de0b9445cac8635750880def18d1b37e6dcb37903d53e0c159c9e6fb068c33d167ab4a7d0ed080ceb1439b98e2307f898f9989adbe6ea1b77021dd70abfd3abb2578e922d961da4722353f9711f61f812a906c72b03370c06dd3cc6cffb1303c8bc4a64488171c1f078e5e72fcefaccec54cfa342c960cd47fcfa3c8dbc4c87636ed8b5ef7fee8cdd790e85823ed2a691ed356ac7e38ec72e78501d3734ebff3b9a7de4422a05ba1d9cad8fde3be1a6064e39c0a4c0dff377105e7707051ab1c2b39c93f3beea796ee37f2c6c2781f366edba986604a7513e54657f482d220f7ec64c835f442f9d286b0d759ffb5d6268a0ce44f171cf1435ceed931fc124485e0be90aa126c85189a6c0f1c973662434cc68b2e48e8dc28df3648f4db015b15ba3ccfa5d7ad24381f245dcf8038f601ea7691910259d296e806c4408ce02dd7d6f4f87f9985ed39ce06da13d9fc87bcbab41543111493e890a9662037b2ab9d10eed8da28625377e50ad16909969238ed960e9a6aa5dfcea4b38c17133aea0b027a6685b7597f139fcd1ded2af2f3ea61e3c328deebf30759f3d490b6b96c5848a8718d16bb12f19e8149384bf0f46e0504b13c969fb1b38ba0864d77c0f143beeff954aedcb6f9d0069b6a88d693db83b66618109d76d3a72bf6d7696b8b0b97d624d719f8090a7edf88cd2bda8effb5d2cff8f3a612116f8e35ee5c1dd9c500578b2a0f6889ae65cc44c4076ab9d2b7770a04b1984f90bc0dd59b7ace0483ccd52a58ee59208850f3744bc33e4e45927cc88703221e9976545bf97fbb2a23e401b54b5934e8c70c86bc56400e8c3f3dddfce65310c309cca7209e405cd355b85f09d01b846bf4609e988f01fb310968588f163e0933bd41cc05e7f53d77f9d428030d6aeb648102405c6e4782b479949c1814e45900ef357d3db9ea55ae29634b06ac9ab933254c898ae696d63a96f8a52b31b0878b80c56aee38f98c2d8022ab594953a2aec931ea13733d248fb680a92425fabba126c973cf772f514ccab90f056e16f95b5e748f742ac483d499eeee82a31ff67ae08f70a2fc1bdbce38978416f2a94f57ebec387c19ac767e4ea89c61c737fe9ffab44d3cc515a276e51c80b645f3592f3dc8bec4981389f4736f766b8a93637d05dea8f7f72de4362aaa6aa2ccc9fd04a54a4dae4baf55e1b430d840dc585a8845b5e5c8a86894947cfdce880f42d8396d75dbc3c7d4a2a0202c437d52b8f7ad4b3ab99373805d10eb4627fe66b3624142d19f9b8610eb3f627075b915673d725c97d680e95e656a9b6e9d0bb1aad192cef61f8107b6621268ed889e27b13e91c3dea2b9c2a932635b85c18f43a4140f708b96d3f7df8bb50b162145b3ef2361537cbe0136ae173f9230f72edb7f69cf40f3d760fa6a234bbeae8c37e44a1a00b54249103ad430dc1d42507ba96e32e80961d8b8feed0049c34d58c0ad826af2e39c6285f3ea9dba2d3ea1e100a3eef870014fb7c59ba97dfaab82a8c6d37a3cd669cf962e039e858c59945d75829c6debe5577613c1acd3ec0d7a639662dc0e7423702bfa69891ae21bcc025034e1f8ee01faa9c00322674be407d339a79268e56b5b673e85d9367d05469c5bbbe9700e3eaf0566a1ce92a3681eaf0198d1fbb7973d891b413b1f236425b1124a40048ee3442cd0e7daa498695b735ec27deb5f7626add16489c7cab7e758a9ac1d2302626731bbcdea4bdbb414d7bd5cd7d1413c817ec92547859933293ea09f53a46393d92c48b96290d43e490c1334705904be21914b50185caef9b528d29d7d3f4d3edd3fb7111ed7d4c26d923c20e9c3bd645011b27b1a907c7ea6921450212434ddbfe5c3287a544ad652d7dbbc5515b1f3c0c6e716e8743709b0e0bfb03ec8a155edea5ab1e838647adc376d7bfd8cfd6c984381ff9fe57b60246d0ce5cac7fabcaf99d870e7c7c38e7d933a4ed4dcbd3b4ebfcf628a1783dc9a4dd682d6d031942ff38ab88a5c95f370d13fcf28ef4ea726a6235ae7f94d0e0adb78fead7735f54589386132ff400bb502196cc285ba64abfc95657c479266f16ac636fbdb512b39ee727414b9e41e253a119159585dcc05dab218dec591f3b27b9b2f9e2ab2e0d8179fa464b9f60eec3e95ee11b04c3a24b27abe23fe0f613a0ab6f4c74f4f144f2957bd62713a3797dcda012f410dfff8afe8e9846a6d9641a13650305a4f544847e14e2025a6adc45a8137b184a0e2dee693ea581c8532053e57458b96099954cb211a529712b341952ad9c0e41afa7618ce9b9e057ac4f67595a053f6eec615873092496332c430c1ef77e8be645d42a374662b1506756f8e37294744ee0cf3145b78e084b30675512140cfad39f13a5df7194e16a62a40f653cc2d04d4962d4a77d03ec3f6c761a14e550d119ab6214ff2c17c150b1c0e0536fb65b097b51e6c0fc7dcc83b9a3a2b1258afe136ac9278645bba91bf3aba80f60b1157970cc16c8c80bb823da092b4046d2b45c1e069e358cac3981e2bbffe88e5f2a0938066f5aa5552bc676ad498cd34d016b565b2109de1753d2911904188f73431b36521a46dc335502e727e0efe1e218196d0d3017d38c3c958dfec64f9e4ec25288a0f27aff67b2c4ace4e2862c79e80542b3aa01b49670190d7dc1422a8090e22f83a2d39ed7362d7d86732a68f64116b4ed7c8024b22b5e1d9664512109c1d8c144305cbeeca65fb594d4b4a8c3f0938bec3ea2b33ed178e63e735115019710317eb951fef41b2818251ae6241592a616ce9bf3a07b5aa341b247e97191cf7ce4a4ff9b0ea894f9388af38541bd812fbd674ddde89df50a4c5e800bdf928d18566901d30eeb85085301bea501efa500ebda2f4b7648a0890388c0ba2b1d4614b0779a2448bca0393c32dd96b5b7bad053f7d0c5b26acf51358d59acfc9003141ff443494b29b694b5e5bb1e2d25f91fdb94fd3cd4c98c743d0fe092e8c38e4626ef862b5e1e2c9c8351e72531b95286f4d4c89e5c3f47a9d84c9051d2a16ed94a354925d7dba913938a4b62551f916fe1b981316be47d0f919899d82e6d9b365a396c9063270d953a633f78cd3a54d005b0ad6e013fb4fa7f0879480c62238a29d79f4f48dcb0fcad009120ee234346b7930aa20adf4cc778807f74ec64847e086f41a41837ae87e64ed13f67fc7815500edc46fdbff9fb50306e6519b60b61ffefac046bf0e92671a2709517da652c2bfc497367ef55e7ac6266fb67d23cef62bf82ac4e62880c001e9ca60bfc37f176c476c63c0a0c52f91d864c4c11c0362139b7cc427eed89f5d83e7f37faa36ede477b8905f445aa3f5ef41bcf439e69ecf15cc6478cec667e685027649d1fad4dc52413d797a00f58833976845bc28b8c632e6df48805bd5621d9639fd40dc4356b3f273d2aae3b2d97a2dad6993ac8c1fc005e64c0e6653772877bbb468708438a50401d9fbc9b9301b2ddc78f8cdc70f82badd5b40361de618fa6c1f567663ed4d853e6b9f6bd7a6f43bba07e0572ca5a66a879400cc94debaae76b2d7a386c85ef66574395cc1e4ba0f24828d43a59806b9a32a41eae9024e416290a4a964e3d9160433c69d064e4f48596aeea97aae44d486882186e0dc7498b10f97952bdfdb32228a906c9be47070d38da791c96765f856fd00444dceda2c809cd407e9d6f17a06a388839e776e41e11c513fad8df1a8a748afd98abfd03f60a754389441b3dd30ee715f0ef3f237b44aab1d024e8e96dcf78d0dd42351aef2e3f2c15835c29e0d7c3da3b4ab0ced6f3a2e82db979b58a50f4bf6321e8b6d0ffcfb8155cbf38d427f13524741704703e498daef8c9b6ae5e4a3b40ec7b26e4961a1580b1399688ec1d5ddbae6eb3614730ceb29c87fab02e90cd8948c5d299da32ede62b4c8c", 0x1000}, {&(0x7f0000009380)="4f9e61e7c3d9550663d571d816528d65d9cf2f5dc36e2d9df8d9ea06ef6ddae69e9eb7096df1794d94736eed8dda3df33917d0f604e2a8d9f5a22ab5875728b44a90ee8c3c35ef947881c1fea2cc5ad731ec188f866e09b0efca2a72bc5d4468cc55754a52bc7e152f3f6d4a738290535efadc570bfbf877f23ef622538179c971aafb12f96bc84664a649c6c88c3696f4150e8be52e787c9c28949bae2678dbcacafac9816600ee754e4f3b296c5fc54cd014892f05d09711c7743502ba7e969efec2150385139d38a507b98680611458b38cc43e690e5ef6db731cdc8d46ff5993c425f2ab3f59a5a2e4dfa78a11f2dab4fd88d15236", 0xf7}, {&(0x7f0000009480)="1edbae38", 0x4}, {&(0x7f00000094c0)="fa21ea9fa83215faafe22caaf092745c8710e9627f1fdd0fa760c21833f24a006dd1e23a8bfdb97a69d115b3c421dd487d0046b02fe6e1b3d2484641749433b1b38613b1a560ae4bbffd905e0197357e987c9974a7636acde407b165fa0fefa34f37b982cf97ddea484b950def0263175c7959617bc6c8ac7d7dffaab7bffa23c3ded0dda2aae30e9d23436abb0492387f71449d0965429921a4fde9f0363c60b25d15991d08f198339ef4201ef77c20a7b79c918b34416d13bd66db93a4e8ff3446f8a741cbe491e9a68ebf", 0xcc}, {&(0x7f00000095c0)="2e4afcc60c0efb56277cc0458d9467760447f2b0408314bf2e1bc35d8aab0617dc9bc9de1520ea6b6f29fe0dc07f4deb2e2564cb5ec5f51f82af7dd366ff2c9941ede2d7ba9f77eb2b576f1b00d2e2c798d19e155aa1c8ad8b07701671777e2d8bece9f7c6d1a5123a2ba3689ea0e17eb9f6ebb4a8f85fb593505a42", 0x7c}, {&(0x7f0000009640)="61bdf978", 0x4}], 0x9, &(0x7f0000009900)=[@cred={{0x1c, 0x1, 0x2, {0x0, 0xee01, 0xee00}}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0x0, 0xffffffffffffffff}}}, @rights={{0x34, 0x1, 0x1, [r1, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, r2, 0xffffffffffffffff, 0xffffffffffffffff]}}, @rights={{0x14, 0x1, 0x1, [r1]}}, @cred={{0x1c, 0x1, 0x2, {0xffffffffffffffff, 0xffffffffffffffff}}}], 0xb0, 0x4004040}}, {{&(0x7f00000099c0)=@file={0x0, './file0\x00'}, 0x6e, &(0x7f0000009b40)=[{&(0x7f0000009a40)="86ec966bec18af884aee9d10683a00f752643935ddc234bc4f0d68661fbe39805a08323df00da135876acda8d9b5551944d056699d36d65dea108eb3f29bd87464a5bebfa4aa5711570d8a84a7f662d76da465647794ce294e50d6bcd90becd664c372a47a9d7830bf7e50797b0fa23d291b0a017cae2a9ef6afc9e781ecc6332d4958e467003fd6d870d486759b4c9ed9e9503f8667ff13bf2209638fee37e9a9ed00aa00cc78c11633a6d91662c47c8916eefa81db3fbdebd2cb29f43597ebd7d5608804b61fd1edd396c47fd5194edce40b609fbbdfd2ef34125a263fc7113896aa1ec8c524274b749b91711389ae97a7", 0xf2}], 0x1, &(0x7f000000a000)=[@cred={{0x1c, 0x1, 0x2, {0x0, 0x0, 0xee01}}}, @cred={{0x1c, 0x1, 0x2, {r4, 0xffffffffffffffff, 0xee00}}}, @cred={{0x1c}}, @cred={{0x1c, 0x1, 0x2, {r4, 0x0, 0xffffffffffffffff}}}, @rights={{0x2c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, r2, 0xffffffffffffffff, 0xffffffffffffffff, r2, r3]}}, @cred={{0x1c, 0x1, 0x2, {r4}}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0x0, r7}}}, @cred={{0x1c, 0x1, 0x2, {r4, r6, r8}}}, @rights={{0x18, 0x1, 0x1, [0xffffffffffffffff, r5]}}], 0x128, 0x20004080}}], 0x7, 0x4000000) sendfile(r1, r5, 0x0, 0x10000) 05:11:54 executing program 4: r0 = fsopen(&(0x7f0000000040)='afs\x00', 0x0) fsconfig$FSCONFIG_SET_STRING(r0, 0x1, &(0x7f0000000000)='source', &(0x7f00000000c0)='%(,:', 0x0) fsconfig$FSCONFIG_CMD_CREATE(r0, 0x6, 0x0, 0x2, 0x0) [ 535.110316][T13870] loop2: detected capacity change from 0 to 512 [ 535.116864][T13870] ext2: Unknown parameter 'ÑC`ŽÔ%÷«À¨A7A' [ 535.142858][T13873] loop1: detected capacity change from 0 to 2328 05:11:54 executing program 4: r0 = fsopen(&(0x7f0000000040)='afs\x00', 0x0) fsconfig$FSCONFIG_SET_STRING(r0, 0x1, &(0x7f0000000000)='source', &(0x7f00000000c0)='%(,:', 0x0) fsconfig$FSCONFIG_CMD_CREATE(r0, 0x6, 0x0, 0x3, 0x0) 05:11:55 executing program 2: syz_mount_image$tmpfs(0x0, &(0x7f0000000080)='./file0\x00', 0x0, 0x0, &(0x7f0000000000), 0x184021, &(0x7f0000000280)={[{@nr_inodes}]}, 0x0) mount(0x0, &(0x7f0000000000)='./file0\x00', &(0x7f0000000040)='hugetlbfs\x00', 0x0, &(0x7f0000000280)) r0 = open(&(0x7f00000000c0)='./file0/../file0/file0\x00', 0x428081, 0x9ba6b3214f153428) umount2(&(0x7f0000000100)='./file0/../file0\x00', 0x0) r1 = openat$cgroup(r0, &(0x7f0000000140)='syz1\x00', 0x200002, 0x0) write$binfmt_script(r1, &(0x7f0000000180)={'#! ', './file0', [{0x20, '.'}, {0x20, '-]#]\''}, {0x20, '#_%/(\']'}, {0x20, 'hugetlbfs\x00'}, {0x20, '-\xbd'}, {0x20, 'hugetlbfs\x00'}, {0x20, 'hugetlbfs\x00'}, {0x20, '*/]'}, {0x20, '$,'}], 0xa, "70e884efa9ace6de"}, 0x4e) [ 535.193157][T13873] ntfs: volume version 3.1. [ 535.203357][T13873] syz-executor.1: attempt to access beyond end of device [ 535.203357][T13873] loop1: rw=0, sector=2328, nr_sectors = 8 limit=2328 05:11:55 executing program 4: r0 = fsopen(&(0x7f0000000040)='afs\x00', 0x0) fsconfig$FSCONFIG_SET_STRING(r0, 0x1, &(0x7f0000000000)='source', &(0x7f00000000c0)='%(,:', 0x0) fsconfig$FSCONFIG_CMD_CREATE(r0, 0x6, 0x0, 0x4, 0x0) [ 535.261753][T13890] general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN [ 535.273520][T13890] KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007] [ 535.281945][T13890] CPU: 1 PID: 13890 Comm: syz-executor.2 Not tainted 6.1.0-rc1-next-20221021-syzkaller #0 [ 535.291862][T13890] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/11/2022 [ 535.301935][T13890] RIP: 0010:hugetlbfs_parse_param+0x721/0x8e0 [ 535.308049][T13890] Code: 00 fc ff df 48 89 fa 48 c1 ea 03 80 3c 02 00 0f 85 8b 01 00 00 48 b8 00 00 00 00 00 fc ff df 4d 8b 65 10 4c 89 e2 48 c1 ea 03 <0f> b6 04 02 4c 89 e2 83 e2 07 38 d0 7f 0c 84 c0 74 08 4c 89 e7 e8 [ 535.327683][T13890] RSP: 0018:ffffc9000ce3fb48 EFLAGS: 00010246 [ 535.333775][T13890] RAX: dffffc0000000000 RBX: 1ffff920019c7f6b RCX: ffffc900044f4000 [ 535.341772][T13890] RDX: 0000000000000000 RSI: ffffffff823517bd RDI: ffffc9000ce3fc78 [ 535.349774][T13890] RBP: ffff8880771f8c00 R08: 0000000000000005 R09: 0000000000000006 [ 535.357772][T13890] R10: 0000000000000003 R11: 000000000008c001 R12: 0000000000000000 [ 535.365781][T13890] R13: ffffc9000ce3fc68 R14: ffff8880765e0600 R15: ffff8880771f8cd0 [ 535.373783][T13890] FS: 00007fb7497bd700(0000) GS:ffff8880b9b00000(0000) knlGS:0000000000000000 [ 535.382742][T13890] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 535.389352][T13890] CR2: 0000000020001000 CR3: 000000005c9cd000 CR4: 00000000003506e0 [ 535.397353][T13890] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 05:11:55 executing program 4: r0 = fsopen(&(0x7f0000000040)='afs\x00', 0x0) fsconfig$FSCONFIG_SET_STRING(r0, 0x1, &(0x7f0000000000)='source', &(0x7f00000000c0)='%(,:', 0x0) fsconfig$FSCONFIG_CMD_CREATE(r0, 0x6, 0x0, 0x5, 0x0) [ 535.405343][T13890] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 535.413333][T13890] Call Trace: [ 535.416626][T13890] [ 535.419593][T13890] ? lock_release+0x5cb/0x810 [ 535.424291][T13890] ? rcu_read_lock_sched_held+0xd/0x70 [ 535.429787][T13890] ? hugetlbfs_parse_param+0x0/0x8e0 [ 535.435111][T13890] ? rcu_read_lock_sched_held+0xd/0x70 [ 535.440608][T13890] ? lock_acquire+0x4fc/0x630 [ 535.445312][T13890] ? bpf_lsm_sb_alloc_security-0xb/0x10 [ 535.450883][T13890] ? hugetlbfs_parse_param+0x0/0x8e0 [ 535.456200][T13890] vfs_parse_fs_param+0x1f9/0x3c0 [ 535.461248][T13890] vfs_parse_fs_string+0xdb/0x170 [ 535.466297][T13890] ? vfs_parse_fs_string+0x0/0x170 [ 535.471438][T13890] ? __kmem_cache_alloc_node+0x1df/0x3e0 [ 535.477104][T13890] ? hugetlbfs_init_fs_context+0x41/0x420 [ 535.482857][T13890] ? bpf_lsm_sb_mnt_opts_compat-0xb/0x10 [ 535.488518][T13890] generic_parse_monolithic+0x16f/0x1f0 [ 535.494091][T13890] ? generic_parse_monolithic+0x0/0x1f0 [ 535.499660][T13890] ? hugetlbfs_init_fs_context+0x0/0x420 [ 535.505320][T13890] ? alloc_fs_context+0x5cb/0xa00 [ 535.510375][T13890] path_mount+0x12de/0x1e20 [ 535.514899][T13890] ? kmem_cache_free+0xea/0x5b0 [ 535.519784][T13890] ? path_mount+0x0/0x1e20 [ 535.524235][T13890] ? putname+0xfe/0x140 [ 535.528415][T13890] __x64_sys_mount+0x27f/0x300 [ 535.533214][T13890] ? __x64_sys_mount+0x0/0x300 [ 535.533247][T13890] ? syscall_enter_from_user_mode+0x22/0xb0 [ 535.533275][T13890] ? trace_hardirqs_on+0x2d/0x180 [ 535.533301][T13890] do_syscall_64+0x35/0xb0 [ 535.533333][T13890] entry_SYSCALL_64_after_hwframe+0x63/0xcd [ 535.533369][T13890] RIP: 0033:0x7fb748a8b5a9 [ 535.533388][T13890] Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48 [ 535.533413][T13890] RSP: 002b:00007fb7497bd168 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5 [ 535.533437][T13890] RAX: ffffffffffffffda RBX: 00007fb748babf80 RCX: 00007fb748a8b5a9 [ 535.533453][T13890] RDX: 0000000020000040 RSI: 0000000020000000 RDI: 0000000000000000 [ 535.533469][T13890] RBP: 00007fb748ae67b0 R08: 0000000020000280 R09: 0000000000000000 [ 535.533485][T13890] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 [ 535.533500][T13890] R13: 00007ffe5b57c24f R14: 00007fb7497bd300 R15: 0000000000022000 [ 535.533524][T13890] [ 535.533532][T13890] Modules linked in: [ 535.545581][T13890] ---[ end trace 0000000000000000 ]--- [ 535.545598][T13890] RIP: 0010:hugetlbfs_parse_param+0x721/0x8e0 [ 535.545641][T13890] Code: 00 fc ff df 48 89 fa 48 c1 ea 03 80 3c 02 00 0f 85 8b 01 00 00 48 b8 00 00 00 00 00 fc ff df 4d 8b 65 10 4c 89 e2 48 c1 ea 03 <0f> b6 04 02 4c 89 e2 83 e2 07 38 d0 7f 0c 84 c0 74 08 4c 89 e7 e8 [ 535.545666][T13890] RSP: 0018:ffffc9000ce3fb48 EFLAGS: 00010246 [ 535.545688][T13890] RAX: dffffc0000000000 RBX: 1ffff920019c7f6b RCX: ffffc900044f4000 [ 535.545706][T13890] RDX: 0000000000000000 RSI: ffffffff823517bd RDI: ffffc9000ce3fc78 [ 535.545722][T13890] RBP: ffff8880771f8c00 R08: 0000000000000005 R09: 0000000000000006 [ 535.545738][T13890] R10: 0000000000000003 R11: 000000000008c001 R12: 0000000000000000 [ 535.545754][T13890] R13: ffffc9000ce3fc68 R14: ffff8880765e0600 R15: ffff8880771f8cd0 [ 535.545771][T13890] FS: 00007fb7497bd700(0000) GS:ffff8880b9b00000(0000) knlGS:0000000000000000 [ 535.545806][T13890] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 535.545824][T13890] CR2: 00007fb74979c718 CR3: 000000005c9cd000 CR4: 00000000003506e0 [ 535.545915][T13890] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 535.545931][T13890] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 535.545949][T13890] Kernel panic - not syncing: Fatal exception [ 535.546111][T13890] Kernel Offset: disabled [ 535.777436][T13890] Rebooting in 86400 seconds..