#696 A;
思路:贪心模拟;
#include<stdio.h>
int ai[100010];
char ci[100010];
int bi[100010];
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int n;
		scanf("%d",&n);
		scanf("%s",ci);
		for(int i=0;i<n;i++)
		{
			if(ci[i]=='1')bi[i+1]=1;
			else bi[i+1]=0;
		}
		ai[1]=1;
		for(int i=2;i<=n;i++)
		{
			int x=ai[i-1]+bi[i-1];
			if(x==0)ai[i]=1;
			else
			{
				x-=bi[i];
				if(x==2)ai[i]=1;
				else
				if(x==0)ai[i]=1;
				else ai[i]=0;
			}
		}
		for(int i=1;i<=n;i++)
		{
			printf("%d",ai[i]);
		}
		printf("\n");
	}
	return 0;
}