#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdio>
using namespace std;
const int num=1e9+7;
int prim[100100];
int ans=1;
void judge(int N,int flag)
{
    int i=flag+1;
    for(int j=flag;j<N;j++)
    {
        if(prim[j]==prim[++j]&&prim[j]==i)
        {
            ans*=2;
            ans%=num;
            i+=2;
        }
        else
        {
            ans=0;
            return;
        }
    }
    return ;
}
int main()
{
    int N;
    scanf("%d",&N);
    for(int i=0;i<N;i++)
        scanf("%d",&prim[i]);
    sort(prim,prim+N);
    //for(int i=0;i<N;i++)
       // printf("%d ",prim[i]);
    //cout<<endl;
    if(N%2==1&&prim[0]==0)
    {
        judge(N,1);
    }
    else if(N%2==1)
    {
        printf("0\n");
    }
    else
    {
        judge(N,0);
    }
        printf("%d\n",ans);
        return 0;
}
