#include<iostream>
#include<climits>
#include<math.h>
#include<vector>
#include<algorithm>
#include<cstdio>
#include <string>
#include <complex>
#include <functional>
using namespace std;
typedef pair<int,int> P;
double dat[100][100];
int dp[6][1010];//動的計画法
int prime[10000001];
char str[1010][1010];
vector<pair<int,int> > pc[100001];
int ABS(int a){return max(a,-a);}
int main(){
   int n,no;
   int item[10][7]={{0,1,1,1,1,1,1},
    {0,0,0,0,1,1,0},
    {1,0,1,1,0,1,1},
    {1,0,0,1,1,1,1},
    {1,1,0,0,1,1,0},
    {1,1,0,1,1,0,1},
    {1,1,1,1,1,0,1},
    {0,1,0,0,1,1,1},
    {1,1,1,1,1,1,1},
    {1,1,0,1,1,1,1}};
   while(cin>>n){
       if(n==-1) break;
       int be[]={0,0,0,0,0,0,0};
       for(int i=0;i<n;i++){
          cin>>no;
          for(int j=0;j<7;j++){
              int tmp=be[j]^item[no][j];
              cout<<tmp;
              be[j]=item[no][j];
          }
          cout<<endl;
       }
   }
    return 0;
}
