Transfer USDC/DAI without changing their contract


I read in this thread Sample code to transfer USDT without ETH that OpenGSN would work with contract like DAI/USDC with permit() function, do we have code example for that(i.e. sending USDC from one wallet to another wallet without gas through OpenGSN)? The one we found in the tutorial require changing the target smartcontrat.