This is a mashup of Curve Data and Double Choco - Each shape can be stretched as per regular Curve Data rules.
Additionally, each shape can be rotated and/or reflected. Each shape that shows up in white must have a matching shape (up to rotation/reflection/regular Curve Data stretching) in grey, and vice-versa.
The white and grey versions of each shape must be orthogonally adjacent at at least one grid square.
All shapes have been given.