150000 300000 khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*l*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*l*hlkhlk**khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkh*khlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hl*hlkhlkhlkhl*hlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlk*lkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkh*k*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhl*hlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlk*lkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk**khlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlk*lkhlk*lkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlk*lkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl**lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlk*lkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*l*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk**khlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkh*khlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhl*hl*hlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkh*kh*khlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlk*lkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlk*lkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*h*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkh*khlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlk*lkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkh*kh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlk*lk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhl*hlkhlkhlkh*khlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlk*l*hlkhlkhlkhlkhlkhlkhlk*lkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*k*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhl*hl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkh*khlk*lkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkh*khlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lk*lkhlkhlkhl*hlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlk*lkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlk*lkhlkhlkhlkhlkh*khlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh**hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlk*lkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlk*lkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkh*khlkhlkhlkhlkhlkhl*hlk*lkhlkhlkhlkhlkh*khlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhl*hlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*kh*khlkhlkhlkhlkhlkhlkh*khlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhl*hlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlk*lkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlk*lkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl**lkhl*hlkh*khlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlk**khlkhl*hlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkh*khlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkh**hlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhl*hlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhl*hlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkh*khlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlk*lkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkh*khlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkh*kh*khlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk**khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlk*lkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkh**hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhl*hlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*kh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhl*hlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkh*khl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhl*hlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlk*lkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkh*khlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhlkhl