Question: > 
> *No, not that thing in powerpoint*
> 
> 
> 

You will be given a string, and a 2D array of boolean values. The 2D array will represent a picture.

You will be creating art out of it.

Let me show you how.

The steps to art
================

First, you create a square which fits the 2d array, with the string.

Like if the string is 'PPCG', and the picture is 4x3, the square should be like this.

```
PPCG
PCGP
CGPP
GPPC

```

Now in the square, erase all characters which the corresponding boolean is 0, or the corresponding boolean doesn't exist.

Let me show you. If the 2D array is

```
1001
0110
1001

```

And the square is same to the above (above this one), the result should be like:

```
P  G
 CG 
C  P

```

Now output the result.

Test data is not made yet. Will add ASAP.
=========================================

Rules
=====

* General [code-golf](/questions/tagged/code-golf "show questions tagged 'code-golf'") rules apply, including loopholes.

Answer: 
Mathematica, 128 bytes
======================

```
(c=Column;g=Length[x=Characters@#]-1;If[g==0,#,c@{#,c@Table[""<>{x[[i]],""<>Table[" ",g-1],x[[-i]]},{i,2,g}],StringReverse@#}])&

```
[C# (.NET Core)](https://www.microsoft.com/net/core/platform), ~~179~~ 161 bytes
================================================================================

*-18 bytes thanks to [TheLethalCoder](https://codegolf.stackexchange.com/users/38550/thelethalcoder)*

```cs
using System.Linq;
s=>{int l=s.Length-1,i=1;var d=s.Reverse().ToArray();while(i<l)s+="\n"+s[i]+new string(' ',l-1)+d[i++];if(l>1)s+="\n"+new string(d);return s;};

```

[Try it online!](https://tio.run/##TVA9b8IwEJ2bX3FlwZaTSJlNkFClqgNdaKUOlMGKL3CSsVufCUKI354GaClvuM@np3fXcNGEiL03W@Qv0yC8HTjhNjtmMGDH5NcwJ/@tL33jDDPMLvWVcQYnk6iBLpCFV0NeyNvqn3TG8843E05xEM3hmqfQQt1zPT2ST@BqLufo12lTVDnVle5MBDsMF9hhZBSyfA@zGM1BSL3fkENBEydZ1aNPP1K8pJXyuP/VFmMY566opLJLUmqlqRVuWt3od0wrdcS0ix5Yn3T/cHb7FDwHh@VHpISiFX/9Ao0dXjKYkVLf7jtl13jqX9C5kMM@RGcffwA "C# (.NET Core) – Try It Online")

~~I'm not sure about the rules, if this is needed to byte count or not:~~

```cs
using System.Linq;

```

Someone please correct me about this.

Ungolfed:

```cs
s =>
{
    int l = s.Length - 1, i = 1;
    var d = s.Reverse().ToArray();
    while (i < l)
        s += "\n" + s[i] + new string(' ', l - 1) + d[i++];
    if (l > 1)
        s += "\n" + new string(d);
    return s;
};

```