给一个长度为 nnn的序列 S,S ,S,以及四个数a,b,c,da,b,c,da,b,c,d ,,,询问满足:
a≤(SL and SL+1 and ... and SR)≤ba≤(S_L\ and\ S_{L+1}\ and\ ...\ and\ S_R)≤ba≤(SL and SL+1 and ... and SR)≤b且c≤(SL or SL+1 or ... or SR)≤d c≤(S_L\ or\ S_{L+1}\ or\ ...\ or\ S_R)≤dc≤(SL or SL+1 or ... or SR)≤d的区间有多少个。and、orand、orand、or为位运算的与和或。
为了避免646464位整数输出,请将答案对 109+710^9+7109+7取模。
对于 100%100\%100% 的数据,满足 1≤n≤105,0≤a≤b≤106,0≤c≤d≤106,0≤Si≤1061≤n≤10^5,0≤a≤b≤10^6,0≤c≤d≤10^6,0≤Si≤10^61≤n≤105,0≤a≤b≤106,0≤c≤d≤106,0≤Si≤106。