/** * Utilities for the quality of service module mod_qos. * * See http://mod-qos.sourceforge.net/ for further * details. * * Copyright (C) 2023 Pascal Buchbinder * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ #define S_W_MAX 6 #define S_H_MAX 7 static int s_0[S_H_MAX][S_W_MAX] = { { 0,1,1,1,0,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 0,1,1,1,0,0}, { 0,0,0,0,0,0} }; static int s_1[S_H_MAX][S_W_MAX] = { { 0,0,0,1,0,0}, { 0,0,1,1,0,0}, { 0,1,0,1,0,0}, { 0,0,0,1,0,0}, { 0,0,0,1,0,0}, { 0,0,0,1,0,0}, { 0,0,0,0,0,0} }; static int s_2[S_H_MAX][S_W_MAX] = { { 0,1,1,1,0,0}, { 1,0,0,0,1,0}, { 0,0,0,1,0,0}, { 0,0,1,0,0,0}, { 0,1,0,0,0,0}, { 1,1,1,1,1,0}, { 0,0,0,0,0,0} }; static int s_3[S_H_MAX][S_W_MAX] = { { 0,1,1,1,0,0}, { 1,0,0,0,1,0}, { 0,0,1,1,0,0}, { 0,0,0,0,1,0}, { 1,0,0,0,1,0}, { 0,1,1,1,0,0}, { 0,0,0,0,0,0} }; static int s_4[S_H_MAX][S_W_MAX] = { { 0,0,0,1,0,0}, { 0,0,1,0,0,0}, { 0,1,0,0,0,0}, { 1,0,0,1,0,0}, { 1,1,1,1,1,0}, { 0,0,0,1,0,0}, { 0,0,0,0,0,0} }; static int s_5[S_H_MAX][S_W_MAX] = { { 1,1,1,1,1,0}, { 1,0,0,0,0,0}, { 1,1,1,1,0,0}, { 0,0,0,0,1,0}, { 0,0,0,0,1,0}, { 1,1,1,1,0,0}, { 0,0,0,0,0,0} }; static int s_6[S_H_MAX][S_W_MAX] = { { 0,1,1,1,0,0}, { 1,0,0,0,0,0}, { 1,0,1,1,0,0}, { 1,1,0,0,1,0}, { 1,0,0,0,1,0}, { 0,1,1,1,0,0}, { 0,0,0,0,0,0} }; static int s_7[S_H_MAX][S_W_MAX] = { { 1,1,1,1,1,0}, { 0,0,0,0,1,0}, { 0,0,0,1,0,0}, { 0,0,1,0,0,0}, { 0,1,0,0,0,0}, { 0,1,0,0,0,0}, { 0,0,0,0,0,0} }; static int s_8[S_H_MAX][S_W_MAX] = { { 0,1,1,1,0,0}, { 1,0,0,0,1,0}, { 0,1,1,1,0,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 0,1,1,1,0,0}, { 0,0,0,0,0,0} }; static int s_9[S_H_MAX][S_W_MAX] = { { 0,1,1,1,0,0}, { 1,0,0,0,1,0}, { 0,1,1,1,1,0}, { 0,0,0,0,1,0}, { 0,0,0,0,1,0}, { 0,1,1,1,0,0}, { 0,0,0,0,0,0} }; /* ----------------------------------------------- */ static int s_a[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 0,1,1,1,0,0}, { 0,0,0,0,1,0}, { 0,1,1,1,1,0}, { 1,0,0,0,1,0}, { 0,1,1,1,1,0}, { 0,0,0,0,0,0} }; static int s_b[S_H_MAX][S_W_MAX] = { { 1,0,0,0,0,0}, { 1,0,0,0,0,0}, { 1,1,1,1,0,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 1,1,1,1,0,0}, { 0,0,0,0,0,0} }; static int s_c[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 0,1,1,1,0,0}, { 1,0,0,0,1,0}, { 1,0,0,0,0,0}, { 1,0,0,0,1,0}, { 0,1,1,1,0,0}, { 0,0,0,0,0,0} }; static int s_d[S_H_MAX][S_W_MAX] = { { 0,0,0,0,1,0}, { 0,0,0,0,1,0}, { 0,1,1,1,1,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 0,1,1,1,1,0}, { 0,0,0,0,0,0} }; static int s_e[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 0,1,1,1,0,0}, { 1,0,0,0,1,0}, { 1,1,1,1,1,0}, { 1,0,0,0,0,0}, { 0,1,1,1,0,0}, { 0,0,0,0,0,0} }; static int s_f[S_H_MAX][S_W_MAX] = { { 0,0,1,1,0,0}, { 0,1,0,0,0,0}, { 1,1,1,0,0,0}, { 0,1,0,0,0,0}, { 0,1,0,0,0,0}, { 0,1,0,0,0,0}, { 0,0,0,0,0,0} }; static int s_g[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 0,1,1,1,1,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 0,1,1,1,1,0}, { 0,0,0,0,1,0}, { 0,1,1,1,0,0} }; static int s_h[S_H_MAX][S_W_MAX] = { { 1,0,0,0,0,0}, { 1,0,0,0,0,0}, { 1,0,1,1,0,0}, { 1,1,0,0,1,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 0,0,0,0,0,0} }; static int s_i[S_H_MAX][S_W_MAX] = { { 0,0,1,0,0,0}, { 0,0,0,0,0,0}, { 0,1,1,0,0,0}, { 0,0,1,0,0,0}, { 0,0,1,0,0,0}, { 0,1,1,1,0,0}, { 0,0,0,0,0,0} }; static int s_j[S_H_MAX][S_W_MAX] = { { 0,0,0,0,1,0}, { 0,0,0,0,0,0}, { 0,0,0,1,1,0}, { 0,0,0,0,1,0}, { 0,0,0,0,1,0}, { 0,0,0,0,1,0}, { 0,0,1,1,0,0} }; static int s_k[S_H_MAX][S_W_MAX] = { { 1,0,0,0,0,0}, { 1,0,0,0,0,0}, { 1,0,1,1,0,0}, { 1,1,0,0,0,0}, { 1,0,1,0,0,0}, { 1,0,0,1,0,0}, { 0,0,0,0,0,0} }; static int s_l[S_H_MAX][S_W_MAX] = { { 0,1,1,0,0,0}, { 0,0,1,0,0,0}, { 0,0,1,0,0,0}, { 0,0,1,0,0,0}, { 0,0,1,0,0,0}, { 0,0,1,0,0,0}, { 0,0,0,0,0,0} }; static int s_m[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 1,1,0,1,0,0}, { 1,0,1,0,1,0}, { 1,0,1,0,1,0}, { 1,0,1,0,1,0}, { 1,0,1,0,1,0}, { 0,0,0,0,0,0} }; static int s_n[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 1,0,1,1,0,0}, { 1,1,0,0,1,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 0,0,0,0,0,0} }; static int s_o[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 0,1,1,1,0,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 0,1,1,1,0,0}, { 0,0,0,0,0,0} }; static int s_p[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 1,1,1,1,0,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 1,1,1,1,0,0}, { 1,0,0,0,0,0}, { 1,0,0,0,0,0} }; static int s_q[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 0,1,1,1,1,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 0,1,1,1,1,0}, { 0,0,0,0,1,0}, { 0,0,0,0,1,0} }; static int s_r[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 1,0,1,1,0,0}, { 1,1,0,0,1,0}, { 1,0,0,0,0,0}, { 1,0,0,0,0,0}, { 1,0,0,0,0,0}, { 0,0,0,0,0,0} }; static int s_s[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 0,1,1,1,1,0}, { 1,0,0,0,0,0}, { 0,1,1,1,0,0}, { 0,0,0,0,1,0}, { 1,1,1,1,0,0}, { 0,0,0,0,0,0} }; static int s_t[S_H_MAX][S_W_MAX] = { { 0,0,1,0,0,0}, { 0,1,1,1,0,0}, { 0,0,1,0,0,0}, { 0,0,1,0,0,0}, { 0,0,1,0,1,0}, { 0,0,0,1,0,0}, { 0,0,0,0,0,0} }; static int s_u[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 0,1,1,1,1,0}, { 0,0,0,0,0,0} }; static int s_v[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 0,1,0,1,0,0}, { 0,0,1,0,0,0}, { 0,0,0,0,0,0} }; static int s_w[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 1,0,1,0,1,0}, { 1,1,0,1,1,0}, { 1,0,0,0,1,0}, { 0,0,0,0,0,0} }; static int s_x[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 1,0,0,0,1,0}, { 0,1,0,1,0,0}, { 0,0,1,0,0,0}, { 0,1,0,1,0,0}, { 1,0,0,0,1,0}, { 0,0,0,0,0,0} }; static int s_y[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 0,1,1,1,1,0}, { 0,0,0,0,1,0}, { 1,1,1,1,0,0} }; static int s_z[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 1,1,1,1,1,0}, { 0,0,0,1,1,0}, { 0,0,1,0,0,0}, { 1,1,0,0,0,0}, { 1,1,1,1,1,0}, { 0,0,0,0,0,0} }; static int s_BRO[S_H_MAX][S_W_MAX] = { { 0,0,0,1,0,0}, { 0,0,1,0,0,0}, { 0,1,0,0,0,0}, { 0,1,0,0,0,0}, { 0,0,1,0,0,0}, { 0,0,0,1,0,0}, { 0,0,0,0,0,0} }; static int s_BRC[S_H_MAX][S_W_MAX] = { { 0,0,1,0,0,0}, { 0,0,0,1,0,0}, { 0,0,0,0,1,0}, { 0,0,0,0,1,0}, { 0,0,0,1,0,0}, { 0,0,1,0,0,0}, { 0,0,0,0,0,0} }; static int s_MI[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 1,1,1,1,1,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0} }; static int s_LT[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 0,0,0,1,0,0}, { 0,1,1,0,0,0}, { 1,0,0,0,0,0}, { 0,1,1,0,0,0}, { 0,0,0,1,0,0}, { 0,0,0,0,0,0} }; static int s_GT[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 0,1,0,0,0,0}, { 0,0,1,1,0,0}, { 0,0,0,0,1,0}, { 0,0,1,1,0,0}, { 0,1,0,0,0,0}, { 0,0,0,0,0,0} }; static int s_SP[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0} }; static int s_US[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 1,1,1,1,1,0}, { 0,0,0,0,0,0} }; static int s_M[S_H_MAX][S_W_MAX] = { { 1,0,0,0,1,0}, { 1,1,0,1,1,0}, { 1,0,1,0,1,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 1,0,0,0,1,0}, { 0,0,0,0,0,0} }; static int s_DT[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,1,0,0,0,0}, { 0,0,0,0,0,0} }; static int s_CM[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,1,0,0,0}, { 0,1,0,0,0,0} }; static int s_SC[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,1,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,1,0,0,0}, { 0,1,0,0,0,0} }; static int s_CO[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,1,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,1,0,0,0}, { 0,0,0,0,0,0} }; static int s_SL[S_H_MAX][S_W_MAX] = { { 0,0,0,0,0,1}, { 0,0,0,0,1,0}, { 0,0,0,1,0,0}, { 0,0,1,0,0,0}, { 0,1,0,0,0,0}, { 1,0,0,0,0,0}, { 0,0,0,0,0,0} }; static int s_SQ[S_H_MAX][S_W_MAX] = { { 0,0,1,0,0,0}, { 0,0,1,0,0,0}, { 0,0,1,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0}, { 0,0,0,0,0,0} }; static int s_X[S_H_MAX][S_W_MAX] = { { 1,1,1,1,1,0}, { 1,1,1,1,1,0}, { 1,1,1,1,1,0}, { 1,1,1,1,1,0}, { 1,1,1,1,1,0}, { 1,1,1,1,1,0}, { 0,0,0,0,0,0} };